Aktualizacja routera TP-LINK WDR3600 przez terminal SSH
Cuprins:
- Expediere port local
- Redirecționarea portului de la distanță
- Transmiterea porturilor dinamice
- Configurați tunelul SSH în Windows
- Concluzie
Tunelarea SSH sau redirecționarea porturilor SSH este o metodă de creare a unei conexiuni SSH criptate între un client și o mașină server prin care pot fi transmise porturile de servicii.
Redirecționarea SSH este utilă pentru transportul datelor de rețea a serviciilor care utilizează un protocol necriptat, cum ar fi VNC sau FTP, accesarea conținutului geo-restricționat sau ocolirea firewall-urilor intermediare. Practic, puteți trimite orice port TCP și tunel traficul printr-o conexiune securizată SSH.
Există trei tipuri de expediere port SSH:
- Expediere port local. - Redirecționează o conexiune de la gazda client la gazda serverului SSH și apoi la portul gazdă de destinație.Remandați Port Transmiterea. - Transmite un port de la serverul gazdă către gazda client și apoi către portul gazdă de destinație. Transmiterea portului dinamic. - Creează un server proxy SOCKS care permite comunicarea într-o gamă de porturi.
, vom vorbi despre modul de configurare a tunelurilor SSH criptate locale, de la distanță și dinamice.
Expediere port local
Redirecționarea portului local vă permite să redirecționați un port de pe mașina locală (client ssh) către un port de pe mașina de la distanță (server ssh), care este apoi transmisă către un port de pe mașina de destinație.
În acest tip de redirecționare a clientului SSH ascultă un port dat și tunelează orice conexiune cu acel port la portul specificat de pe serverul SSH de la distanță, care apoi se conectează la un port al mașinii de destinație. Mașina de destinație poate fi serverul SSH de la distanță sau orice altă mașină.
Redirecționarea porturilor locale este utilizată mai ales pentru a vă conecta la un serviciu la distanță dintr-o rețea internă, cum ar fi o bază de date sau un server VNC.
În Linux, macOS și alte sisteme Unix pentru a crea o redirecționare a portului local trece opțiunea
-L
către clientul
ssh
:
ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Opțiunile utilizate sunt următoarele:
-
LOCAL_PORT
- IP-ul mașinii locale și numărul de port. CândLOCAL_IP
este omisă, clientul ssh se leagă de localhost.DESTINATION:DESTINATION_PORT
- IP-ul sau numele gazdă și portul mașinii de destinație.SERVER_IP
- Adresa IP a utilizatorului și serverului SSH de la distanță.
Puteți utiliza orice număr de port mai mare de
1024
ca
LOCAL_PORT
. Numerele de porturi mai mici de
1024
sunt porturi privilegiate și pot fi utilizate numai de către root. Dacă serverul dvs. SSH ascultă pe un alt port decât 22 (implicit), utilizați opțiunea
-p
.
Numele gazdă de destinație trebuie rezolvat de pe serverul SSH.
Să zicem că aveți un server de baze de date MySQL care rulează pe mașina
db001.host
pe o rețea internă (privată), pe portul 3306 accesibil de la mașina
pub001.host
și doriți să vă conectați folosind mașina locală clientul
mysql
la serverul de baze de date. Pentru a face acest lucru, puteți redirecționa conexiunea astfel:
ssh -L 3336:db001.host:3306 [email protected]
După ce executați comanda, vi se va solicita să introduceți parola de utilizator SSH de la distanță. După introducerea acestuia, veți fi conectat la serverul de la distanță și va fi stabilit tunelul SSH. Este o idee bună să configurați o autentificare bazată pe cheie SSH și să vă conectați la server fără a introduce o parolă.
Acum, dacă îți
db001.host:3306
clientul bazei de date a mașinii locale către
127.0.0.1:3336
, conexiunea va fi transmisă către serverul MySQL
db001.host:3306
prin intermediul aparatului
pub001.host
care va acționa ca un server intermediar.
Puteți trimite mai multe porturi către mai multe destinații într-o singură comandă ssh. De exemplu, aveți un alt server de bază de date MySQL care rulează pe mașina
db002.host
și doriți să vă conectați la ambele servere de la clientul local pe care l-ați rula:
ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]
Pentru a vă conecta la al doilea server, utilizați
127.0.0.1:3337
.
Când gazda de destinație este aceeași cu serverul SSH, în loc să specificați IP-ul sau gazda de destinație, puteți utiliza
localhost
.
Spuneți că trebuie să vă conectați la o mașină de la distanță prin VNC care rulează pe același server și că nu este accesibil din exterior. Comanda pe care o veți folosi este:
ssh -L 5901:127.0.0.1:5901 -N -f [email protected]
Opțiunea
-f
spune ca comanda
ssh
să ruleze în fundal și
-N
să nu execute o comandă de la distanță. Folosim
localhost
deoarece VNC și serverul SSH rulează pe aceeași gazdă.
Redirecționarea portului de la distanță
Redirecționarea de la distanță a porturilor este opusă redirecționării portului local. Vă permite să redirecționați un port de pe mașina de la distanță (server ssh) către un port de pe mașina locală (client ssh), care este apoi transmisă către un port pe mașina de destinație.
În acest tip de redirecționare a serverului SSH ascultă un port dat și tunelează orice conexiune cu acel port la portul specificat din clientul SSH local, care apoi se conectează la un port de pe mașina de destinație. Mașina de destinație poate fi locală sau orice altă mașină.
În Linux, macOS și alte sisteme Unix pentru a crea o redirecționare a unui port la distanță treceți opțiunea
-R
către clientul
ssh
:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Opțiunile utilizate sunt următoarele:
-
REMOTE_PORT
- IP-ul și numărul portului pe serverul SSH de la distanță. OREMOTE
goală înseamnă că serverul SSH de la distanță se va lega de toate interfețele.DESTINATION:DESTINATION_PORT
- IP-ul sau numele gazdă și portul mașinii de destinație.SERVER_IP
- Adresa IP a utilizatorului și serverului SSH de la distanță.
Expedierea porturilor locale este utilizată mai ales pentru a da acces la un serviciu intern cuiva din exterior.
Să zicem că dezvoltați o aplicație web pe mașina dvs. locală și doriți să arătați o previzualizare colegilor dumneavoastră de dezvoltatori. Nu aveți un IP public, astfel încât celălalt dezvoltator nu poate accesa aplicația prin Internet.
ssh -L 8080:127.0.0.1:3000 -N -f [email protected]
Comanda de mai sus va face ca serverul ssh să asculte pe portul
8080
și să tuneleze tot traficul din acest port către mașina dvs. locală pe portul
3000
.
Acum, colegul tău dezvoltator poate tasta
the_ssh_server_ip:8080
în browserul său și previzualiza aplicația ta minunată.
Transmiterea porturilor dinamice
Redirecționarea dinamică a porturilor vă permite să creați o priză pe mașina locală (client ssh) care acționează ca un server proxy SOCKS. Când un client se conectează la acest port, conexiunea este transmisă la mașina de la distanță (server ssh), care este apoi transmisă către un port dinamic de pe mașina de destinație.
În acest fel, toate aplicațiile care utilizează proxy-ul SOCKS se vor conecta la serverul SSH și serverul va transmite tot traficul către destinația sa reală.
În Linux, macOS și alte sisteme Unix pentru a crea o redirecționare dinamică a porturilor (SOCKS) trec opțiunea
-D
către clientul
ssh
:
ssh -D LOCAL_PORT SSH_SERVER
Opțiunile utilizate sunt următoarele:
-
LOCAL_PORT
- IP-ul mașinii locale și numărul de port. CândLOCAL_IP
este omisă, clientul ssh se leagă de localhost.SERVER_IP
- Adresa IP a utilizatorului și serverului SSH de la distanță.
Un exemplu tipic de redirecționare dinamică a porturilor este tunelarea traficului browserului web printr-un server SSH.
Următoarea comandă va crea un tunel SOCKS în portul
9090
:
ssh -D 9090 -N -f [email protected]
Odată stabilit tunelul, puteți configura aplicația pentru a o utiliza. Acest articol explică modul de configurare a browserului Firefox și Google Chrome pentru a utiliza proxy-ul SOCKS.
Expedierea porturilor trebuie configurată separat pentru fiecare aplicație pe care doriți să o tunelați în trafic.
Configurați tunelul SSH în Windows
Utilizatorii Windows pot crea tuneluri SSH folosind clientul SST PuTTY. Puteți descărca PuTTY aici.
-
Lansați Putty și introduceți adresa IP a serverului SSH în câmpul
Host name (or IP address)
.Va apărea o nouă fereastră care vă va cere numele de utilizator și parola. După ce introduceți numele de utilizator și parola, veți fi conectat la serverul dvs. și va fi pornit tunelul SSH.
Configurarea autentificării cheii publice vă va permite să vă conectați la serverul dvs. fără să introduceți o parolă.
Concluzie
V-am arătat cum să configurați tuneluri SSH și să transmiteți traficul printr-o conexiune securizată SSH. Pentru o utilizare mai ușoară, puteți defini tunelul SSH în fișierul dvs. de configurare SSH sau puteți crea un alias Bash care va configura tunelul SSH.
securitate sshCum să configurați tunelul ssh pentru a ocoli un firewall
Un firewall este un lucru bun, dar dacă te împiedică să faci ceva, atunci SSH Tunneling este o opțiune bună pentru a explora.
Cum să configurați tunelul de șosete ssh pentru navigare privată
Acest tutorial vă va parcurge procesul de creare a unui tunel SSH criptat și configurarea browserelor Firefox și Google Chrome pentru a utiliza proxy SOCKS.
Cum să vă conectați la mysql prin tunelul ssh
În acest ghid, vă vom explica cum să creați un tunel SSH și să vă conectați la serverul MySQL de la clienți la distanță.