Kako postaviti SSH Jump poslužitelj u Linuxu


Jump host (također poznat kao jump server) je posrednički host ili SSH pristupnik udaljenoj mreži, preko kojeg se može uspostaviti veza s drugim hostom u drugu sigurnosnu zonu, na primjer, demilitariziranu zonu (DMZ). Premošćuje dvije različite sigurnosne zone i nudi kontrolirani pristup između njih.

Jump host treba biti visoko osiguran i nadgledan, posebno kada se proteže kroz privatnu mrežu i DMZ s poslužiteljima koji pružaju usluge korisnicima na internetu.

Klasičan scenarij je povezivanje s vašeg stolnog računala ili prijenosnog računala unutar interne mreže vaše tvrtke, koja je visoko zaštićena vatrozidom na DMZ. Kako biste jednostavno upravljali poslužiteljem u DMZ-u, možete mu pristupiti putem jump hosta.

Ukratko, SSH Jump poslužitelj je Linux poslužitelj koji se koristi kao pristupnik drugim Linux poslužiteljima na privatnoj mreži preko SSH protokola.

U ovom ćemo članku pokazati kako pristupiti udaljenom Linux poslužitelju putem jump hosta, a također ćemo konfigurirati potrebne postavke u vašim konfiguracijama SSH klijenta po korisniku.

Postavljanje SSH Jump poslužitelja

Razmotrite sljedeći scenarij.

Radi veće jasnoće, u nastavku je jednostavno postavljanje koje demonstrira ulogu SSH Jump poslužitelja.

Razlozi za konfiguriranje SSH Jump poslužitelja

Jump poslužitelj pruža pristupnik vašoj infrastrukturi i smanjuje potencijalnu površinu napada na vaše resurse. Također pruža transparentno upravljanje uređajima kao i jedinstvenu točku ulaska u vaše resurse.

Imajte na umu da dok uključujete jump server u svoju infrastrukturu, provjerite je li poslužitelj ojačan, inače bi bilo dobro da ga ne koristite. Na ovo ćemo se vratiti kasnije u ovom vodiču.

Kako stvoriti jednostavan SSH Jump Server

Usredotočimo se sada na to kako možete stvoriti jednostavan SSH Jump poslužitelj. Evo naše jednostavne postavke.

  • Izvorni IP: 105.68.76.85.
  • Jump Server IP (ovo ćemo nazvati host-jump): 173.82.232.55.
  • Odredišni IP (ovo ćemo nazvati host_destination): 173.82.227.89.

U gornjem scenariju, želite se povezati na HOST 2 (173.82.227.89), ali morate proći kroz HOST 1 (173.82.232.55), zbog vatrozida, usmjeravanje i privilegije pristupa. Postoji niz valjanih razloga zašto su hostovi skoka potrebni.

Dinamički Jumphost popis

Najjednostavniji način povezivanja s ciljnim poslužiteljem putem jump hosta je korištenje oznaka -A i -J iz retka za naredbe. Ovo govori ssh-u da uspostavi vezu sa hostom za skok i zatim uspostavi TCP prosljeđivanje na ciljni poslužitelj, odatle (provjerite imate li SSH prijavu bez lozinke između strojeva).

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

Na primjer, u našim postavkama imamo korisnika pod nazivom james konfiguriran na Jump Server i tecmint konfiguriran na odredišnom ili ciljnom sustavu.

Naredba će izgledati kako slijedi prema izvornom IP-u.

ssh -A -J [email  [email 

Naredba će od vas zatražiti korisničku lozinku poslužitelja skoka, nakon koje slijedi lozinka ciljnog sustava na temelju koje će vam biti odobren pristup ciljnom sustavu.

Ako se korisnička imena ili priključci na strojevima razlikuju, navedite ih na terminalu kao što je prikazano.

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

Popis više Jumphostova

Ista se sintaksa može koristiti za preskakanje više poslužitelja.

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

Statički Jumphost popis

Statički popis jumphostova znači da znate jumphost ili jumphostove koje trebate za spajanje stroja. Stoga morate dodati sljedeće statično jumphost 'usmjeravanje' u ~/.ssh/config datoteci i navesti pseudonime hosta kao što je prikazano.

### 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

Sada se pokušajte spojiti na ciljni poslužitelj putem jump hosta kao što je prikazano.

ssh -J vps1 contabo

Druga metoda je korištenje opcije ProxyCommand za dodavanje konfiguracije jumphosta u vaš ~.ssh/config ili $HOME/. ssh/config datoteku kao što je prikazano.

U ovom primjeru, ciljni host je contabo, a jumphost je 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

Spremite promjene i izađite iz datoteke. Za primjenu promjena ponovno pokrenite SSH demon.

sudo systemctl restart ssh

Istražimo opcije koje se koriste u konfiguracijskoj datoteci:

  • -q – Ovo označava tihi način rada. Potiskuje upozorenja i dijagnostičke poruke.
  • -W – Zahtijeva da se standardni ulaz i izlaz na klijentu proslijedi HOST-u na PORT-u preko sigurnog kanala.
  • %h – Određuje host za povezivanje.
  • %p – Naveden je port za povezivanje na udaljenom hostu.

Za ‘skok’ na odredišni sustav sa svoje Izvorne IP adrese preko Jump Servera, samo pokrenite sljedeću naredbu:

ssh contabo

Gornja naredba prvo će otvoriti ssh vezu s vps1 u pozadini na koju utječe ProxyCommand, a nakon toga pokrenuti ssh sesiju na ciljnom poslužitelju contabo.

Izrada SSH Jump poslužitelja sigurnijim

Jedan od načina da se ova postavka učini sigurnijom je kopiranje javnog SSH ključa s izvornog sustava na Jump Server, a zatim konačno na ciljni sustav, a zatim onemogućavanje provjere autentičnosti lozinke. Pogledajte naš vodič o tome kako omogućiti SSH autentifikaciju bez lozinke.

Osim toga, pogledajte savjete za jačanje SSH poslužitelja.

Također, osigurajte da se nikakvi osjetljivi podaci ne nalaze unutar Jump poslužitelja jer bi to moglo dovesti do curenja pristupnih vjerodajnica kao što su korisnička imena i lozinke što bi dovelo do povrede sustava.

Za više informacija pogledajte ssh man stranicu ili pogledajte: OpenSSH/Cookbxook/Proxies and Jump Hosts.

To je sve za sada! U ovom smo članku pokazali kako pristupiti udaljenom poslužitelju putem skok hosta. Upotrijebite obrazac za povratne informacije u nastavku da biste postavili bilo kakva pitanja ili podijelili svoje mišljenje s nama.