Weboldal keresés

SSH Jump szerver beállítása Linux alatt


A jump host (más néven jump szerver) egy közvetítő gazdagép vagy egy távoli hálózat SSH-átjárója, amelyen keresztül egy másik gazdagéphez lehet kapcsolatot létesíteni. különböző biztonsági zóna, például egy demilitarizált zóna (DMZ). Két különböző biztonsági zónát hidal át, és szabályozott hozzáférést biztosít közöttük.

Az ugrógépnek fokozottan védettnek és felügyeltnek kell lennie, különösen akkor, ha magánhálózaton és DMZ-n csatlakozik, ahol kiszolgálók nyújtanak szolgáltatásokat az interneten a felhasználóknak.

Klasszikus forgatókönyv szerint az asztali számítógépről vagy laptopról a vállalat belső, tűzfalakkal védett hálózatán belülről csatlakozik a DMZ-hez. A DMZ-ben lévő szerver egyszerű kezelése érdekében hozzáférhet egy jump host-on keresztül.

Dióhéjban az SSH Jump szerver egy Linux-szerver, amelyet átjáróként használnak más Linux-szerverekhez egy magánhálózaton az SSH-protokollon keresztül.

Ebben a cikkben bemutatjuk, hogyan lehet hozzáférni egy távoli Linux-kiszolgálóhoz egy jump hoston keresztül, és konfiguráljuk a szükséges beállításokat a felhasználónkénti SSH-kliens konfigurációkban.

SSH Jump szerver beállítása

Vegye figyelembe a következő forgatókönyvet.

Az egyértelműség kedvéért az alábbiakban egy egyszerű beállítást mutatunk be, amely bemutatja az SSH Jump szerver szerepét.

Az SSH Jump Server konfigurálásának okai

A Jump szerver átjárót biztosít az infrastruktúrához, és csökkenti az erőforrások lehetséges támadási felületét. Ezenkívül az eszközök átlátható kezelését, valamint az erőforrások egyetlen belépési pontját biztosítja.

Ne feledje, hogy amikor egy ugrásszervert épít be az infrastruktúrájába, győződjön meg arról, hogy a szerver keményített, különben jó lenne, ha nem használna ilyet. Erre később ebben az oktatóanyagban visszatérünk.

Hogyan hozzunk létre egy egyszerű SSH Jump szervert

Most koncentráljunk arra, hogyan hozhat létre egy egyszerű SSH Jump szervert. Íme az egyszerű beállításunk.

  • Eredeti IP: 105.68.76.85.
  • Jump Server IP (ezt host-ugrásnak nevezzük): 173.82.232.55.
  • A cél IP-címe (ezt host_destination-nek nevezzük): 173.82.227.89.

A fenti forgatókönyv szerint a HOST 2-höz (173.82.227.89) szeretne csatlakozni, de át kell mennie a HOST 1-en (173.82.232.55) a tűzfal miatt, útválasztás és hozzáférési jogosultságok. Számos érvényes oka van annak, hogy miért van szükség ugrógépekre.

Dinamikus Jumphost lista

A legegyszerűbb módja annak, hogy egy jump gazdagépen keresztül csatlakozzon a célkiszolgálóhoz, a -A és a -J jelzők használata a parancssorból. Ez arra utasítja az ssh-t, hogy csatlakozzon a jump gazdagéphez, majd onnan hozzon létre egy TCP-továbbítást a célkiszolgálóhoz (győződjön meg arról, hogy jelszó nélküli SSH-bejelentkezés van a gépek között).

ssh -A -J user@jump-server  user@destination server

Beállításunkban például a james nevű felhasználót a Jump Server-en, a tecmint pedig a cél- vagy célrendszeren konfiguráltuk.

A parancs a következőképpen fog kinézni az eredeti IP-címtől.

ssh -A -J [email  [email 

A parancs bekéri az ugrásszerver felhasználói jelszavát, majd a célrendszer jelszavát, amely alapján hozzáférést kap a célrendszerhez.

Ha a felhasználónevek vagy a portok a gépeken eltérnek, adja meg őket a terminálon az ábra szerint.

ssh -J username@host1:port username@host2:port	  

Több Jumphost lista

Ugyanaz a szintaxis használható több kiszolgálón való átugráshoz.

ssh -J username@host1:port,username@host2:port username@host3:port

Statikus Jumphost lista

A statikus jumphost lista azt jelenti, hogy ismeri azokat a jumphost vagy jumphost, amelyekre szüksége van egy gép csatlakoztatásához. Ezért hozzá kell adnia a következő statikus jumphost „útválasztást” a ~/.ssh/config fájlban, és meg kell adnia a gazdagép álneveket az ábrán látható módon.

### First jumphost. Directly reachable
Host vps1
  HostName vps1.example.org

### Host to jump to via jumphost1.example.org
Host contabo
  HostName contabo.example.org
  ProxyJump vps1

Most próbáljon meg csatlakozni egy célszerverhez egy ugrógépen keresztül, az ábrán látható módon.

ssh -J vps1 contabo

A második módszer a ProxyCommand opció használata a jumphost konfiguráció hozzáadásához a ~.ssh/config vagy a $HOME/ fájlhoz. ssh/config fájlt az ábra szerint.

Ebben a példában a célgazda contabo, a jumphost pedig vps1.

Host vps1
	HostName vps1.example.org
	IdentityFile ~/.ssh/vps1.pem
	User ec2-user

Host contabo
	HostName contabo.example.org	
	IdentityFile ~/.ssh/contabovps
	Port 22
	User admin	
	Proxy Command ssh -q -W %h:%p vps1

Mentse el a változtatásokat, és lépjen ki a fájlból. A változtatások alkalmazásához indítsa újra az SSH-démont.

sudo systemctl restart ssh

Nézzük meg a konfigurációs fájlban használt opciókat:

  • -q – Ez a csendes módot jelenti. Elnyomja a figyelmeztetéseket és a diagnosztikai üzeneteket.
  • -W – Azt kéri, hogy a kliens szabványos be- és kimenetét a biztonságos csatornán keresztül továbbítsák a HOST on PORT-ra.
  • %h – Megadja azt a gazdagépet, amelyhez csatlakozni kell.
  • %p – Meghatározta a portot, amelyhez csatlakozni kell a távoli gazdagépen.

Ha a kiindulási IP-címedről a Jump szerveren keresztül a célrendszerre 'ugrani' szeretne, futtassa a következő parancsot:

ssh contabo

A fenti parancs először megnyit egy ssh-kapcsolatot a vps1-hez a ProxyCommand által érintett háttérben, majd elindítja az ssh-munkamenetet a célkiszolgálón contabo.

Az SSH Jump Server biztonságosabbá tétele

A beállítás biztonságosabbá tételének egyik módja a nyilvános SSH-kulcs átmásolása az eredeti rendszerről a Jump Serverre, majd végül a célrendszerre, majd letiltja a jelszavas hitelesítést. Tekintse meg útmutatónkat az SSH jelszó nélküli hitelesítés engedélyezéséről.

Ezenkívül tekintse meg az SSH-kiszolgálók keményítésére vonatkozó tippeket.

Gondoskodjon arról is, hogy a Jump szerveren ne legyenek kényes adatok, mivel ez hozzáférési hitelesítő adatok, például felhasználónevek és jelszavak kiszivárgásához vezethet, ami rendszerszintű incidenshez vezethet.

További információkért tekintse meg az ssh kézikönyvoldalát, vagy tekintse meg a következőt: OpenSSH/Cookbxook/Proxies and Jump Hosts.

Ez minden most! Ebben a cikkben bemutattuk, hogyan lehet távoli kiszolgálót elérni egy jump gazdagépen keresztül. Az alábbi visszajelzési űrlap segítségével kérdéseket tehet fel, vagy megoszthatja velünk gondolatait.