Cum să configurați un server SSH Jump în Linux
O gazdă de salt (cunoscută și ca server de salt) este o gazdă intermediară sau o poartă SSH către o rețea la distanță, prin care se poate realiza o conexiune la o altă gazdă într-o zonă de securitate diferită, de exemplu, o zonă demilitarizată (DMZ). Unește două zone de securitate diferite și oferă acces controlat între ele.
O gazdă de salt ar trebui să fie foarte securizată și monitorizată, mai ales atunci când se întinde pe o rețea privată și o DMZ cu servere care oferă servicii utilizatorilor de pe internet.
Un scenariu clasic este conectarea de pe desktop sau laptop din interiorul rețelei interne a companiei, care este foarte securizată cu firewall-uri la un DMZ. Pentru a gestiona cu ușurință un server într-un DMZ, îl puteți accesa printr-o gazdă de salt.
Pe scurt, un server SSH Jump este un server Linux care este folosit ca o poartă către alte servere Linux dintr-o rețea privată prin protocolul SSH.
În acest articol, vom demonstra cum să accesați un server Linux la distanță printr-o gazdă de salt și, de asemenea, vom configura setările necesare în configurațiile clientului SSH per utilizator.
Configurare SSH Jump Server
Luați în considerare următorul scenariu.
Pentru mai multă claritate, mai jos este o configurare simplă care demonstrează rolul unui server SSH Jump.
Motive pentru configurarea unui server SSH Jump
Un server Jump oferă o poartă către infrastructura dvs. și reduce suprafața potențială de atac la resursele dvs. De asemenea, oferă o gestionare transparentă a dispozitivelor, precum și un singur punct de intrare pentru resursele dvs.
Rețineți că, pe măsură ce încorporați un server jump în infrastructura dvs., asigurați-vă că serverul este întărit, altfel ar fi la fel de bine ca să nu folosiți unul. Vom reveni la asta mai târziu în acest tutorial.
Cum se creează un server SSH Jump simplu
Să ne concentrăm acum asupra modului în care puteți crea un server simplu SSH Jump. Iată configurația noastră simplă.
- IP de origine: 105.68.76.85.
- Jump Server IP (vom numi acest host-jump): 173.82.232.55.
- IP de destinație (vom numi acest host_destination): 173.82.227.89.
În scenariul de mai sus, doriți să vă conectați la HOST 2 (173.82.227.89), dar trebuie să treceți prin HOST 1 (173.82.232.55), din cauza firewall-ului, rutare și privilegii de acces. Există o serie de motive valide pentru care sunt necesare gazde de salt.
Lista dinamică Jumphost
Cea mai simplă modalitate de a vă conecta la un server țintă printr-o gazdă de salt este să utilizați semnalizatoarele -A
și -J
din linia de comandă. Acest lucru îi spune lui ssh să facă o conexiune la gazda de salt și apoi să stabilească o redirecționare TCP către serverul țintă, de acolo (asigurați-vă că aveți autentificare SSH fără parolă între mașini).
ssh -A -J user@jump-server user@destination server
De exemplu, în configurația noastră, avem utilizatorul numit james configurat pe Jump Server și tecmint configurat pe sistemul destinație sau țintă.
Comanda va arăta după cum urmează de la IP-ul de origine.
ssh -A -J [email [email
Comanda vă va solicita parola de utilizator a serverului de salt, urmată de parola sistemului țintă cu ajutorul căreia vi se va acorda acces la sistemul țintă.
Dacă numele de utilizator sau porturile de pe mașini diferă, specificați-le pe terminal, așa cum se arată.
ssh -J username@host1:port username@host2:port
Lista cu mai multe Jumphosts
Aceeași sintaxă poate fi folosită pentru a face salturi peste mai multe servere.
ssh -J username@host1:port,username@host2:port username@host3:port
Lista Jumphost statică
Lista statică de jumphost înseamnă că știți jumphost sau jumphosts de care aveți nevoie pentru a conecta o mașină. Prin urmare, trebuie să adăugați următorul „routing” static Jumphost în fișierul ~/.ssh/config
și să specificați aliasurile gazdei așa cum se arată.
### 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
Acum încercați să vă conectați la un server țintă printr-o gazdă de salt, așa cum se arată.
ssh -J vps1 contabo
A doua metodă este să utilizați opțiunea ProxyCommand pentru a adăuga configurația jumphost în ~.ssh/config
sau $HOME/. ssh/config
după cum se arată.
În acest exemplu, gazda țintă este contabo, iar jumphost este 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
Salvați modificările și părăsiți fișierul. Pentru a aplica modificările, reporniți demonul SSH.
sudo systemctl restart ssh
Să explorăm opțiunile utilizate în fișierul de configurare:
-q
– Aceasta înseamnă modul silențios. Suprimă avertismentele și mesajele de diagnosticare.-W
– Solicită ca intrarea și ieșirea standard de pe client să fie redirecționate către HOST pe PORT prin canalul securizat.%h
– Specifică gazda la care să se conecteze.%p
– a specificat portul la care să se conecteze pe gazda de la distanță.
Pentru a „sări” la sistemul de destinație de la IP-ul de origine prin Jump Server, trebuie doar să rulați următoarea comandă:
ssh contabo
Comanda de mai sus va deschide mai întâi o conexiune ssh la vps1 în fundal afectat de ProxyCommand, iar apoi, porniți sesiunea ssh la serverul țintă contabo puternic>.
Faceți serverul SSH Jump mai sigur
Una dintre modalitățile de a face această configurare mai sigură este prin copierea cheii SSH publică din sistemul de origine pe Serverul Jump, apoi în sistemul țintă și apoi dezactivarea autentificării parolei. Consultați ghidul nostru despre cum să activați autentificarea SSH fără parolă.
În plus, consultați sfaturile de întărire a serverului SSH.
De asemenea, asigurați-vă că în serverul Jump nu sunt găzduite date sensibile, deoarece acest lucru ar putea duce la scurgerea acreditărilor de acces, cum ar fi numele de utilizator și parolele, ceea ce duce la o încălcare la nivel de sistem.
Pentru mai multe informații, consultați pagina de manual ssh sau consultați: OpenSSH/Cookbxook/Proxies și Jump Hosts.
Asta este tot pentru acum! În acest articol, am demonstrat cum să accesăm un server la distanță printr-o gazdă jump. Utilizați formularul de feedback de mai jos pentru a pune întrebări sau pentru a ne împărtăși părerile dvs.