/ / Cum se utilizează tunelarea SSH pentru a accesa servere restricționate și a naviga în siguranță

Cum să utilizați tunelul SSH pentru a accesa serverele restricționate și răsfoiți în siguranță

Un client SSH se conectează la un server Secure Shell,care vă permite să rulați comenzi de terminal ca și cum ați fi așezat în fața altui computer. Dar un client SSH vă permite, de asemenea, să „tunelați” un port între sistemul dvs. local și un server SSH la distanță.

Există trei tipuri diferite de tunelare SSH,și toate sunt utilizate în scopuri diferite. Fiecare implică utilizarea unui server SSH pentru a redirecționa traficul de la un port de rețea la altul. Traficul este trimis prin conexiunea SSH criptată, deci nu poate fi monitorizat sau modificat în tranzit.

Puteți face acest lucru cu ssh comandă inclusă pe Linux, macOS și alteleSisteme de operare asemănătoare UNIX. Pe Windows, care nu include o comandă ssh încorporată, vă recomandăm instrumentul gratuit PuTTY pentru a vă conecta la serverele SSH. Suportă și tunelarea SSH.

Redirecționare de port local: faceți resursele la distanță accesibile pe sistemul dvs. local

„Redirecționarea porturilor locale” vă permite să accesațiresurse de rețea locală care nu sunt expuse la internet. De exemplu, să presupunem că doriți să accesați un server de baze de date la biroul dvs. de acasă. Din motive de securitate, acel server de baze de date este configurat numai pentru a accepta conexiuni din rețeaua de birouri locale. Dar dacă aveți acces la un server SSH la birou și acel server SSH permite conexiuni din afara rețelei de birou, atunci vă puteți conecta la acel server SSH de acasă și puteți accesa serverul bazei de date ca și cum ați fi fost la birou. Acesta este adesea cazul, deoarece este mai ușor să securizați un singur server SSH împotriva atacurilor decât să asigurați o varietate de resurse de rețea diferite.

Pentru a face acest lucru, stabiliți o conexiune SSH cupe serverul SSH și spuneți clientului să redirecționeze traficul de la un anumit port de pe computerul dvs. local - de exemplu, portul 1234 - la adresa serverului bazei de date și a portului său din rețeaua de birou. Deci, când încercați să accesați serverul de baze de date de la portul 1234 al computerului dvs. curent, „localhost”, traficul respectiv este „tunelat” automat prin conexiunea SSH și trimis la serverul bazei de date. Serverul SSH se află în mijloc, redirecționând traficul înainte și înapoi. Puteți utiliza orice linie de comandă sau instrument grafic pentru a accesa serverul bazei de date ca și cum ar fi rulat pe computerul dvs. local.

Pentru a utiliza redirecționarea locală, conectați-vă la serverul SSH în mod normal, dar furnizați și -L argument. Sintaxa este:

ssh -L local_port:remote_address:remote_port username@server.com

De exemplu, să presupunem că serverul de baze de date de la biroul dvs. se află la 192.168.1.111 din rețeaua de birouri. Aveți acces la serverul SSH al biroului la ssh.youroffice.com , iar contul dvs. de utilizator de pe serverul SSH este bob . În acest caz, comanda dvs. ar arăta astfel:

ssh -L 8888:192.168.1.111:1234 bob@ssh.youroffice.com

După executarea acelei comenzi, veți puteaaccesați serverul bazei de date la portul 8888 de la localhost. Deci, dacă serverul de baze de date oferea acces web, puteți conecta http: // localhost: 8888 în browserul dvs. web pentru a-l accesa. Dacă aveați un instrument de linie de comandă care are nevoie de adresa de rețea a unei baze de date, îl veți îndrepta către localhost: 8888. Tot traficul trimis în portul 8888 de pe computerul dvs. va fi tunelat la 192.168.1.111:1234 în rețeaua dvs. de birou.

Este ceva mai confuz dacă vreiconectați-vă la o aplicație server care rulează pe același sistem ca serverul SSH în sine. De exemplu, să presupunem că aveți un server SSH care rulează la portul 22 de pe computerul dvs. de birou, dar aveți și un server de baze de date care rulează la portul 1234 pe același sistem la aceeași adresă. Doriți să accesați serverul de baze de date de acasă, dar sistemul acceptă doar conexiuni SSH pe portul 22, iar firewall-ul său nu permite alte conexiuni externe.

În acest caz, puteți rula o comandă precum următoarea:

ssh -L 8888:localhost:1234 bob@ssh.youroffice.com

Când încercați să accesați serverul de baze de date laportul 8888 de pe computerul curent, traficul va fi trimis prin conexiunea SSH. Când ajunge pe sistemul care rulează serverul SSH, serverul SSH îl va trimite la portul 1234 pe „localhost”, care este același PC care rulează serverul SSH în sine. Deci, „localhost” din comanda de mai sus înseamnă „localhost” din perspectiva serverului la distanță.

Pentru a face acest lucru în aplicația PuTTY de pe Windows,selectați Conexiune> SSH> Tunele. Selectați opțiunea „Local”. Pentru „Port sursă”, introduceți portul local. Pentru „Destinație”, introduceți adresa de destinație și portul în formularul remote_address: remote_port.

De exemplu, dacă doriți să configurați același tunel SSH ca mai sus, ați intra 8888 ca port sursă și localhost:1234 ca destinație. Faceți clic pe „Adăugare” după care faceți clic pe „Deschidere” pentru a deschide conexiunea SSH. De asemenea, va trebui să introduceți adresa și portul serverului SSH însuși pe ecranul principal „Sesiune” înainte de conectare, desigur.

Redirecționare port la distanță: faceți resursele locale accesibile pe un sistem la distanță

„Redirecționarea portului la distanță” este opusul localredirecționare și nu este utilizat la fel de des. Vă permite să faceți disponibilă o resursă pe computerul dvs. local pe serverul SSH. De exemplu, să presupunem că rulați un server web pe computerul local în care stați în față. Dar computerul dvs. se află în spatele unui firewall care nu permite traficul de intrare către software-ul server.

Presupunând că puteți accesa un server SSH la distanță, dvs.se poate conecta la acel server SSH și poate utiliza redirecționarea porturilor la distanță. Clientul dvs. SSH îi va spune serverului să redirecționeze un anumit port - să zicem, portul 1234 - pe serverul SSH la o anumită adresă și port de pe computerul curent sau din rețeaua locală. Când cineva accesează portul 1234 de pe serverul SSH, traficul respectiv va fi automat „tunelat” prin conexiunea SSH. Oricine are acces la serverul SSH va putea accesa serverul web care rulează pe computerul dvs. Acesta este efectiv un mod de a tunela prin firewall-uri.

Pentru a utiliza redirecționarea de la distanță, utilizați ssh comanda cu -R argument. Sintaxa este în mare măsură aceeași ca și redirecționarea locală:

ssh -R remote_port:local_address:local_port username@server.com

Să presupunem că doriți să faceți o aplicație server ascultând la portul 1234 de pe computerul dvs. local disponibil la portul 8888 de pe serverul SSH de la distanță. Adresa serverului SSH este ssh.youroffice.com iar numele dvs. de utilizator pe serverul SSH este bob. Ați rula următoarea comandă:

ssh -R 8888:localhost:1234 bob@ssh.youroffice.com

Cineva s-ar putea conecta apoi la serverul SSH la portul 8888 și conexiunea respectivă ar fi tunelată la aplicația server care rulează la portul 1234 de pe computerul local din care ați stabilit conexiunea.

Pentru a face acest lucru în PuTTY pe Windows, selectați Conexiune> SSH> Tunele. Selectați opțiunea „Remote”. Pentru „Port sursă”, introduceți portul la distanță. Pentru „Destinație”, introduceți adresa de destinație și portul în formularul local_address: local_port.

De exemplu, dacă doriți să configurați exemplul de mai sus, ați introduce 8888 ca port sursă și localhost:1234 ca destinație. Faceți clic pe „Adăugare” după care faceți clic pe „Deschidere” pentru a deschide conexiunea SSH. De asemenea, va trebui să introduceți adresa și portul serverului SSH însuși pe ecranul principal „Sesiune” înainte de conectare, desigur.

Oamenii s-ar putea conecta apoi la portul 8888 de pe serverul SSH și traficul lor ar fi tunelat la portul 1234 de pe sistemul dvs. local.

În mod implicit, serverul SSH la distanță va funcționa numaiascultați conexiuni de la aceeași gazdă. Cu alte cuvinte, numai persoanele de pe același sistem ca serverul SSH în sine se vor putea conecta. Acest lucru este din motive de securitate. Va trebui să activați opțiunea „GatewayPorts” în sshd_config pe serverul SSH de la distanță dacă doriți să înlocuiți acest comportament.

Redirecționare dinamică a porturilor: utilizați serverul SSH ca proxy

LEGATE DE: Care este diferența dintre un VPN și un proxy?

Există, de asemenea, „redirecționare dinamică a porturilor”, carefuncționează similar cu un proxy sau VPN. Clientul SSH va crea un proxy SOCKS pe care îl puteți configura aplicații. Tot traficul trimis prin proxy va fi trimis prin serverul SSH. Acest lucru este similar cu redirecționarea locală - preia traficul local trimis la un anumit port de pe computer și îl trimite prin conexiunea SSH la o locație la distanță.

LEGATE DE: De ce utilizarea unei rețele Wi-Fi publice poate fi periculoasă, chiar și atunci când accesați site-uri web criptate

De exemplu, să presupunem că folosiți un publicRețea Wi-Fi. Doriți să navigați în siguranță fără să fiți ascuns. Dacă aveți acces la un server SSH acasă, vă puteți conecta la acesta și puteți utiliza redirecționarea dinamică a porturilor. Clientul SSH va crea un proxy SOCKS pe computerul dvs. Tot traficul trimis către acel proxy va fi trimis prin conexiunea server SSH. Nimeni care monitorizează rețeaua Wi-Fi publică nu va putea să vă monitorizeze navigarea sau să cenzureze site-urile web pe care le puteți accesa. Din perspectiva oricăror site-uri web pe care le vizitați, va fi ca și cum ați fi stat în fața computerului dvs. acasă. Acest lucru înseamnă, de asemenea, că puteți utiliza acest truc pentru a accesa site-uri web numai în SUA în afara SUA - presupunând că aveți acces la un server SSH din SUA, desigur.

Ca un alt exemplu, vă recomandăm să accesați unaplicație pentru server media pe care o aveți în rețeaua dvs. de acasă. Din motive de securitate, este posibil să aveți doar un server SSH expus la Internet. Nu permiteți conexiunile primite de pe Internet la aplicația dvs. de server media. Puteți configura redirecționarea dinamică a porturilor, puteți configura un browser web pentru a utiliza proxy-ul SOCKS și apoi puteți accesa servere care rulează în rețeaua dvs. de domiciliu prin browserul web ca și cum ați sta în fața sistemului SSH de acasă. De exemplu, dacă serverul media este situat la portul 192.168.1.123 din rețeaua dvs. de acasă, puteți conecta adresa 192.168.1.123 în orice aplicație care utilizează proxy-ul SOCKS și ați accesa serverul media ca și cum ați fi în rețeaua dvs. de acasă.

Pentru a utiliza redirecționarea dinamică, rulați comanda ssh cu -D argument, așa:

ssh -D local_port username@server.com

De exemplu, să presupunem că aveți acces la un server SSH la ssh.yourhome.com iar numele dvs. de utilizator pe serverul SSH este bob . Doriți să utilizați redirecționarea dinamică pentru a deschide un proxy SOCKS la portul 8888 de pe computerul curent. Ați rula următoarea comandă:

ssh -D 8888 bob@ssh.yourhome.com

Puteți configura apoi un browser web sau o altă aplicație pentru a utiliza adresa IP locală (127.0.01) și portul 8888. Tot traficul din acea aplicație va fi redirecționat prin tunel.

Pentru a face acest lucru în PuTTY pe Windows, selectați Conexiune> SSH> Tunele. Selectați opțiunea „Dinamic”. Pentru „Port sursă”, introduceți portul local.

De exemplu, dacă doriți să creați un proxy SOCKS pe portul 8888, ați introduce 8888 ca port sursă. Faceți clic pe „Adăugare” după care faceți clic pe „Deschidere” pentru a deschide conexiunea SSH. De asemenea, va trebui să introduceți adresa și portul serverului SSH însuși pe ecranul principal „Sesiune” înainte de conectare, desigur.

Puteți configura apoi o aplicație pentru a accesa proxy-ul SOCKS de pe computerul dvs. local (adică adresa IP 127.0.0.1, care indică computerul dvs. local) și puteți specifica portul corect.

LEGATE DE: Cum să configurați un server proxy în Firefox

De exemplu, puteți configura Firefox pentru a utiliza fișierulProxy SOCKS. Acest lucru este deosebit de util, deoarece Firefox poate avea propriile setări proxy și nu trebuie să utilizeze setări proxy la nivelul întregului sistem. Firefox își va trimite traficul prin tunelul SSH, în timp ce alte aplicații vor folosi conexiunea dvs. la internet în mod normal.

Când faceți acest lucru în Firefox, selectați „Proxy manualconfigurație ”, introduceți„ 127.0.0.1 ”în caseta gazdă SOCKS și introduceți portul dinamic în caseta„ Port ”. Lăsați casetele proxy HTTP, proxy SSL și proxy FTP goale.

Tunelul va rămâne activ și deschis pentruatâta timp cât aveți conexiunea de sesiune SSH deschisă. Când terminați sesiunea SSH și vă deconectați de la un server, tunelul va fi, de asemenea, închis. Reconectați-vă cu comanda corespunzătoare (sau cu opțiunile corespunzătoare din PuTTY) pentru a redeschide tunelul.