Android

Kako postaviti ssh tuneliranje (prosljeđivanje porta)

Kako da napravim online shop za samo 1 dolar - Skoro BESPLATNO! (2020)

Kako da napravim online shop za samo 1 dolar - Skoro BESPLATNO! (2020)

Sadržaj:

Anonim

SSH tuneliranje ili prosljeđivanje SSH vrata metoda je stvaranja šifrirane SSH veze između klijenta i poslužiteljskog stroja preko koje se mogu prenijeti portovi usluga.

SSH prosljeđivanje korisno je za prijenos mrežnih podataka usluga koje koriste nešifrirani protokol, poput VNC-a ili FTP-a, pristupanje geo-ograničenom sadržaju ili zaobilaženje posrednih vatrozida. U osnovi, možete proslijediti bilo koji TCP port i tunelirati promet putem sigurne SSH veze.

Postoje tri vrste prosljeđivanja SSH priključaka:

  • Lokalno prosljeđivanje luka. - Prosljeđuje vezu s host klijenta na host SSH poslužitelja, a zatim na odredišni port host.Remote Port Forwarding. - Prosljeđuje port s glavnog računala na host klijenta, a zatim na odredišni port. Dynamic Port Forwarding. - Stvara SOCKS proxy poslužitelj koji omogućava komunikaciju kroz različite portove.

, razgovarat ćemo o tome kako postaviti lokalne, udaljene i dinamično šifrirane SSH tunele.

Lokalno prosljeđivanje luka

Preusmjeravanje lokalnog porta omogućuje vam prosljeđivanje priključka na lokalnom (ssh klijent) računalu do priključka na udaljenom (ssh server) stroju, koji se zatim prosljeđuje u ulaz na odredišnom stroju.

Kod ove vrste prosljeđivanja SSH klijent sluša na određenom portu i tunira bilo kakvu vezu s tim priključkom na specificirani port na udaljenom SSH poslužitelju, koji se zatim povezuje s portom na odredišnom stroju. Odredišni stroj može biti udaljeni SSH poslužitelj ili bilo koji drugi stroj.

Lokalno prosljeđivanje porta uglavnom se koristi za povezivanje s udaljenom uslugom na internoj mreži kao što su baza podataka ili VNC poslužitelj.

U Linuxu, macOS-u i drugim Unix sustavima za stvaranje lokalnog prosljeđivanja porta proslijedite opciju -L ssh klijentu:

ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

Korištene su mogućnosti sljedeće:

  • LOCAL_PORT - ip i priključak lokalnog stroja. Kad se LOCAL_IP propusti, ssh klijent se veže na localhost. DESTINATION:DESTINATION_PORT - IP ili naziv glavnog računala i port odredišnog stroja. SERVER_IP - IP adresa udaljenog korisnika i poslužitelja SSH.

Možete koristiti bilo koji priključak broj veći od 1024 kao LOCAL_PORT . Brojevi portova manjih od 1024 su povlašteni portovi i mogu ih koristiti samo korijeni. Ako vaš SSH poslužitelj sluša na ulazu koji nije 22 (zadano) koristite opciju -p .

Ime odredišnog računala mora biti razriješivo s SSH poslužitelja.

Recimo da imate MySQL poslužitelj baze podataka koji radi na stroju db001.host na unutarnjoj (privatnoj) mreži, na priključku 3306 koji je dostupan s stroja pub001.host i želite se povezati koristeći lokalni mysql klijent vašeg računala na poslužitelj baze podataka. Da biste to učinili, možete tako proslijediti vezu:

ssh -L 3336:db001.host:3306 [email protected]

Nakon što pokrenete naredbu, od vas će se tražiti da unesete korisničku lozinku za udaljeni SSH. Nakon što ga unesete, bit ćete prijavljeni na udaljeni poslužitelj i SSH tunel će biti uspostavljen. Dobro je postaviti SSH ključ za autentifikaciju i povezati se s poslužiteljem bez unosa lozinke.

Sada ako lokalnog klijenta baze podataka računala pokažete na 127.0.0.1:3336 , veza će se proslijediti na MySQL poslužitelj pub001.host kroz stroj pub001.host koji će djelovati kao posredni poslužitelj.

Možete slati više portova na više odredišta u jednoj naredbi ssh. Na primjer, imate drugi MySQL poslužitelj baze podataka koji radi na stroju db002.host i želite se povezati s oba poslužitelja s lokalnog klijenta koje biste pokrenuli:

ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]

Za povezivanje na drugi poslužitelj koristili biste 127.0.0.1:3337 .

Kad je odredišni host isti kao SSH poslužitelj, umjesto da odredite IP odredišnog hosta ili naziv hosta, možete koristiti localhost .

Recimo da se trebate povezati s udaljenim strojem putem VNC-a koji radi na istom poslužitelju i nije spolja dostupan. Naredba koju biste koristili je:

ssh -L 5901:127.0.0.1:5901 -N -f [email protected]

Opcija -f kaže da se ssh naredba izvodi u pozadini, a -N ne izvršava daljinsku naredbu. Koristimo localhost jer VNC i SSH poslužitelj rade na istom hostu.

Daljinsko prosljeđivanje priključaka

Daljinsko prosljeđivanje portova je suprotno lokalnom prosljeđivanju luka. Omogućuje vam prosljeđivanje priključka na udaljenom (ssh server) stroju do priključka na lokalnom (ssh klijent) računalu, koji se zatim prosljeđuje u luku odredišnog stroja.

Kod ove vrste prosljeđivanja SSH poslužitelj preslušava na određenom priključku i tunira bilo kakvu vezu s tim priključkom na specificirani port na lokalnom SSH klijentu, koji se zatim povezuje s portom na odredišnom stroju. Odredišni stroj može biti lokalni ili bilo koji drugi stroj.

U Linuxu, macOS i drugim Unix sustavima za stvaranje udaljenog prosljeđivanja vrata prosljeđuju opciju -R klijentu ssh :

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

Korištene su mogućnosti sljedeće:

  • REMOTE_PORT - IP i broj porta na udaljenom SSH poslužitelju. Prazan REMOTE znači da će se udaljeni SSH poslužitelj vezati na svim sučeljima. DESTINATION:DESTINATION_PORT - IP ili naziv glavnog računala i port odredišnog stroja. SERVER_IP - IP adresa udaljenog korisnika i poslužitelja SSH.

Lokalno prosljeđivanje porta uglavnom se koristi za pristup internoj usluzi nekome izvana.

Recimo da razvijate web aplikaciju na svom lokalnom računalu i želite prikazati pregled svom kolegi programeru. Nemate javni IP tako da drugi programer ne može pristupiti aplikaciji putem Interneta.

ssh -L 8080:127.0.0.1:3000 -N -f [email protected]

Gornja naredba učinit će ssh server za preslušavanje na porta 8080 i tunel sav promet s ovog porta na vaš lokalni stroj na luci 3000 .

Sada vaš kolega programer može upisati the_ssh_server_ip:8080 u svoj preglednik i pregledati vašu the_ssh_server_ip:8080 aplikaciju.

Dinamičko prosljeđivanje priključaka

Dinamičko prosljeđivanje priključaka omogućuje vam stvaranje utičnice na lokalnom (ssh klijentu) stroju koji djeluje kao SOCKS proxy poslužitelj. Kad se klijent poveže s ovim priključkom, veza se prosljeđuje na udaljeni (ssh server) stroj, koji se zatim prosljeđuje u dinamički port na odredišnom stroju.

Na ovaj će se način sve aplikacije koje koriste SOCKS proxy povezati na SSH poslužitelj i poslužitelj će sav promet proslijediti na svoje stvarno odredište.

U Linuxu, macOS i ostali Unix sustavi za stvaranje dinamičkog prosljeđivanja portova (SOCKS) prosljeđuju opciju -D ssh klijentu:

ssh -D LOCAL_PORT SSH_SERVER

Korištene su mogućnosti sljedeće:

  • LOCAL_PORT - ip i priključak lokalnog stroja. Kad se LOCAL_IP propusti, ssh klijent se veže na localhost. SERVER_IP - IP adresa udaljenog korisnika i poslužitelja SSH.

Tipičan primjer dinamičnog prosljeđivanja priključaka je tuneliranje web-preglednika putem SSH poslužitelja.

Sljedeća naredba stvorit će SOCKS tunel na priključku 9090 :

ssh -D 9090 -N -f [email protected]

Nakon uspostavljanja tuneliranja možete konfigurirati vašu aplikaciju za njenu upotrebu. Ovaj članak objašnjava kako konfigurirati Firefox i preglednik Google Chrome za korištenje proxy SOCKS.

Prosljeđivanje porta mora biti zasebno konfigurirano za svaku aplikaciju za koju želite da tunel promet mislili.

Postavljanje SSH tuneliranja u sustavu Windows

Korisnici sustava Windows mogu stvoriti SSH tunele pomoću PuTTY SSH klijenta. PuTTY možete preuzeti ovdje.

  1. Pokrenite Putty i unesite IP adresu SSH poslužitelja u polje Host name (or IP address) .

    Pojavit će se novi prozor koji traži vaše korisničko ime i lozinku. Nakon što unesete svoje korisničko ime i lozinku, bit ćete prijavljeni na svoj poslužitelj i SSH tunel će biti pokrenut.

    Postavljanje autentifikacije javnog ključa omogućit će vam da se povežete sa svojim poslužiteljem bez unosa lozinke.

Zaključak

Pokazali smo vam kako postaviti SSH tunele i proslijediti promet putem sigurne SSH veze. Za jednostavniju upotrebu, možete definirati SSH tunel u vašoj SSH konfiguracijskoj datoteci ili stvoriti Bash pseudonim koji će postaviti SSH tunel.

ssh sigurnost