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.