Kako postaviti SSH Jump server u Linuxu
jump host (također poznat kao jump server) je posrednički host ili SSH gateway do udaljene mreže, preko kojeg se može uspostaviti veza s drugim hostom u druga sigurnosna zona, na primjer, demilitarizirana zona (DMZ). Premošćuje dvije različite sigurnosne zone i nudi kontrolirani pristup između njih.
Host za skok bi trebao biti visoko osiguran i nadgledan, posebno kada se proteže na privatnu mrežu i DMZ sa serverima koji pružaju usluge korisnicima na internetu.
Klasičan scenario je povezivanje sa vašeg desktopa ili laptopa iz unutrašnje mreže vaše kompanije, koja je visoko zaštićena zaštitnim zidovima na DMZ. Da biste lako upravljali serverom u DMZ-u, možete mu pristupiti putem jump hosta.
Ukratko, SSH Jump server je Linux server koji se koristi kao gateway za druge Linux servere na privatnoj mreži preko SSH protokola.
U ovom članku ćemo pokazati kako pristupiti udaljenom Linux serveru putem jump hosta, a također ćemo konfigurirati potrebne postavke u vašim konfiguracijama SSH klijenta po korisniku.
SSH Jump Server Setup
Razmotrite sljedeći scenario.
Za više jasnoće, ispod je jednostavno podešavanje koje demonstrira ulogu SSH Jump servera.
Razlozi za konfiguraciju SSH Jump servera
Jump server pruža pristup vašoj infrastrukturi i smanjuje potencijalnu površinu napada na vaše resurse. Takođe pruža transparentno upravljanje uređajima kao i jedinstvenu tačku ulaska u vaše resurse.
Imajte na umu da kada ugrađujete jump server u svoju infrastrukturu, osigurajte da je server ojačan, inače bi bilo dobro kao da ga ne koristite. Na ovo ćemo se vratiti kasnije u ovom tutorijalu.
Kako napraviti jednostavan SSH Jump server
Hajde da se sada fokusiramo na to kako možete kreirati jednostavan SSH Jump server. Evo našeg jednostavnog podešavanja.
- Izvorna IP adresa: 105.68.76.85.
- Preskoči IP servera (ovo ćemo nazvati host-jump): 173.82.232.55.
- Odredišna IP adresa (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 firewall-a, rutiranje i privilegije pristupa. Postoji niz valjanih razloga zašto su jump hostovi potrebni.
Dynamic Jumphost List
Najjednostavniji način za povezivanje na ciljni server preko jump hosta je korištenje -A
i -J
zastavica iz komandne linije. Ovo govori ssh-u da uspostavi vezu sa jump hostom i zatim uspostavi TCP prosljeđivanje na ciljni server, odatle (uvjerite se da imate SSH prijavu bez lozinke između strojeva).
ssh -A -J user@jump-server user@destination server
Na primjer, u našoj postavci imamo korisnika zvanog james konfiguriranog na Jump server i tecmint konfiguriranu na odredišnom ili ciljnom sistemu.
Komanda će izgledati na sljedeći način sa izvorne IP adrese.
ssh -A -J [email [email
Naredba će od vas zatražiti korisničku lozinku jump servera, nakon čega slijedi lozinka ciljnog sistema nakon koje će vam biti odobren pristup ciljnom sistemu.
Ako se korisnička imena ili portovi na mašinama razlikuju, navedite ih na terminalu kao što je prikazano.
ssh -J username@host1:port username@host2:port
Lista višestrukih skokova
Ista sintaksa se može koristiti za skokove preko više servera.
ssh -J username@host1:port,username@host2:port username@host3:port
Static Jumphost lista
Statička jumphost lista znači da znate jumphost ili jumphost koji su vam potrebni za povezivanje mašine. Stoga morate dodati sljedeće statičko jumphost 'routing' u datoteku ~/.ssh/config
i specificirati 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 pokušajte da se povežete na ciljni server preko jump hosta kao što je prikazano.
ssh -J vps1 contabo
Druga metoda je korištenje opcije ProxyCommand za dodavanje konfiguracije jumphost u vaš ~.ssh/config
ili $HOME/. ssh/config
fajl 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
Sačuvajte promjene i izađite iz datoteke. Da biste primijenili promjene, ponovo pokrenite SSH demon.
sudo systemctl restart ssh
Hajde da istražimo opcije koje se koriste u konfiguracionoj datoteci:
-q
– Ovo je skraćenica za tihi način rada. On potiskuje upozorenja i dijagnostičke poruke.-W
– Zahtijeva da standardni ulaz i izlaz na klijentu budu proslijeđeni HOST-u na PORT-u preko sigurnog kanala.%h
– Određuje host za povezivanje.%p
– Odredio port za povezivanje na udaljenom hostu.
Da biste 'skočili' na odredišni sistem sa vašeg izvornog IP-a preko Jump servera, samo pokrenite sljedeću naredbu:
ssh contabo
Gornja komanda će prvo otvoriti ssh konekciju sa vps1 u pozadini na koju utiče ProxyCommand, a nakon toga će pokrenuti ssh sesiju na ciljnom serveru contabo jako>.
Učiniti SSH Jump server sigurnijim
Jedan od načina da ovo podešavanje učinite sigurnijim je kopiranje javnog SSH ključa sa izvornog sistema na Jump server, a zatim na ciljni sistem, a zatim onemogućavanje provjere autentičnosti lozinkom. Pogledajte naš vodič o tome kako omogućiti SSH autentifikaciju bez lozinke.
Osim toga, pogledajte savjete za jačanje SSH servera.
Također, osigurajte da se na Jump serveru ne nalaze povjerljivi podaci jer bi to moglo dovesti do curenja akreditiva za pristup kao što su korisnička imena i lozinke što bi dovelo do proboja u cijelom sistemu.
Za više informacija pogledajte ssh man stranicu ili pogledajte: OpenSSH/Cookbxook/Proxies i Jump Hosts.
To je sve za sada! U ovom članku smo demonstrirali kako pristupiti udaljenom serveru putem jump hosta. Koristite obrazac za povratne informacije ispod da postavite bilo kakva pitanja ili podijelite svoje mišljenje s nama.