If-Koubou

Kako koristiti SSH tuneliranje za pristup ograničenim poslužiteljima i pregledavati sigurno

Kako koristiti SSH tuneliranje za pristup ograničenim poslužiteljima i pregledavati sigurno (Kako da)

SSH klijent spaja se na Secure Shell poslužitelj, koji vam omogućuje da pokrenete naredbe terminala kao da sjedite ispred drugog računala. Ali SSH klijent također vam omogućuje da "tunel" luci između lokalnog sustava i udaljenog SSH poslužitelja.

Postoje tri različite vrste SSH tunela, i svi se koriste za različite svrhe. Svaki od njih uključuje korištenje SSH poslužitelja za preusmjeravanje prometa s jedne mrežne luke u drugu. Promet se šalje preko šifrirane SSH veze, tako da se ne može pratiti ili mijenjati pri tranzitu.

To možete učiniti s ssh naredba uključena u Linux, MacOS i ostale operacijske sustave poput UNIX-a. U sustavu Windows, koji ne uključuje ugrađenu ssh naredbu, preporučujemo besplatni alat PuTTY za povezivanje s SSH poslužiteljima. Ona također podržava SSH tuneliranje.

Lokalni prosljeđivanje porta: omogućite pristup udaljenim resursima na vašem lokalnom sustavu

"Local port forwarding" omogućuje vam pristup lokalnim mrežnim resursima koji nisu izloženi Internetu. Na primjer, recimo da želite pristupiti poslužitelju baze podataka u vašem uredu iz vašeg doma. Iz sigurnosnih razloga taj poslužitelj baze podataka konfiguriran je samo za prihvaćanje veze s lokalne uredske mreže. Ali ako imate pristup SSH poslužitelju u uredu i da SSH poslužitelj dopušta povezivanje izvan uredske mreže, tada se možete povezati s tim SSH poslužiteljem iz kuće i pristupiti poslužitelju baze podataka kao da ste u uredu. To je često slučaj, jer je lakše osigurati SSH poslužitelj od napada, nego osigurati različite mrežne resurse.

Da biste to učinili, uspostavljate SSH vezu s SSH poslužiteljem i obavijestite klijenta da preusmjerava promet s određenog priključka s lokalnog računala - na primjer, priključak 1234 - do adrese poslužitelja baze podataka i njegovog priključka na uredskoj mreži. Dakle, kada pokušate pristupiti poslužitelju baze podataka na priključku 1234 vašem trenutnom računalu, "localhost", taj se promet automatski "tunelizira" preko SSH veze i šalje se poslužitelju baze podataka. SSH poslužitelj sjedi u sredini, prosljeđuje promet natrag i naprijed. Možete koristiti bilo koju naredbenu retku ili grafički alat za pristup poslužitelju baze podataka kao da je pokrenut na vašem lokalnom računalu.

Da biste koristili lokalno prosljeđivanje, povežite se s SSH poslužiteljem normalno, ali također isporučujete -L argument. Sintaksa je:

ssh -L local_port: remote_address: remote_port [email protected]

Na primjer, recimo da je poslužitelj baze podataka u vašem uredu smješten na 192.168.1.111 na uredskoj mreži. Imate pristup SSH poslužitelju na adresi ssh.youroffice.com , a vaš korisnički račun na SSH poslužitelju je bob , U tom će slučaju vaša naredba izgledati ovako:

ssh-L 8888: 192.168.1.111: 1234 [email protected]

Nakon pokretanja te naredbe moći ćete pristupiti poslužitelju baze podataka na portu 8888 na localhostu. Dakle, ako poslužitelj baze podataka nudi internetski pristup, možete uključiti http: // localhost: 8888 u svoj web preglednik da biste mu pristupili. Ako ste imali alat naredbenog retka koji treba mrežnu adresu baze podataka, uputite ga na localhost: 8888. Sav promet koji se šalje u luku 8888 na vašem računalu bit će u tunelu do 192.168.1.111:1234 na vašoj uredskoj mreži.

Malo je zbunjujuće ako se želite povezati s aplikacijom poslužitelja koja radi na istom sustavu kao i sam SSH poslužitelj. Na primjer, pretpostavimo da imate SSH poslužitelj koji se izvodi u priključku 22 na vašem uredskom računalu, ali imate i poslužitelj baze podataka koji se izvodi na priključku 1234 na istom sustavu na istoj adresi. Želite pristupiti poslužitelju baze podataka od kuće, ali sustav prihvaća samo SSH veze na priključku 22, a vatrozid ne dopušta nikakve druge vanjske veze.

U ovom slučaju, možete pokrenuti naredbu poput sljedećeg:

ssh -L 8888: localhost: 1234 [email protected]

Kada pokušate pristupiti poslužitelju baze podataka na portu 8888 na vašem trenutnom računalu, promet će biti poslan preko SSH veze. Kada stigne na sustav koji pokreće SSH poslužitelj, SSH poslužitelj će ga poslati na priključak 1234 na "localhost", koji je isti računalac koji pokreće sam SSH poslužitelj. Dakle, "localhost" u naredbi iznad znači "localhost" iz perspektive udaljenog poslužitelja.

Da biste to učinili u aplikaciji PuTTY na sustavu Windows, odaberite Connection> SSH> Tunnels. Odaberite opciju "Lokalno". Za "Izvor ulaza" unesite lokalnu priključnicu. Za "Odredište" unesite odredišnu adresu i priključak u obrascu remote_address: remote_port.

Na primjer, ako želite postaviti isti SSH tunel kao gore, unijeli biste 8888 kao izvorišna luka i localhost: 1234 kao odredište. Nakon toga kliknite "Dodaj", a zatim kliknite "Otvori" da biste otvorili SSH vezu. Također ćete morati unijeti adresu i luku samog SSH poslužitelja na glavnom zaslonu "Sesija" prije spajanja, naravno.

Preusmjeravanje daljinskog porta: Omogućuje dostupnost lokalnih resursa na udaljenom sustavu

"Daljinsko prosljeđivanje porta" suprotno je lokalnom prosljeđivanju i ne koristi se onoliko često. Omogućuje vam izradu resursa na vašem lokalnom računalu dostupnom na SSH poslužitelju. Na primjer, recimo da pokrenete web poslužitelj na lokalnom računalu koji sjedi ispred. Ali računalo je iza vatrozida koji ne dopušta ulazni promet na poslužiteljski softver.

Pod pretpostavkom da možete pristupiti udaljenom SSH poslužitelju, možete se povezati s tim SSH poslužiteljem i koristiti daljinski prosljeđivanje. Vaš SSH klijent će obavijestiti poslužitelja da prosljeđuje određeni port - recimo, port 1234 - na SSH poslužitelju na određenu adresu i priključak na vašem trenutnom računalu ili lokalnoj mreži.Kada netko pristupi portu 1234 na SSH poslužitelju, taj će promet automatski biti "tuneliran" preko SSH veze. Svatko tko ima pristup SSH poslužitelju moći će pristupiti web poslužitelju koji se izvodi na vašem računalu. Ovo je učinkovito način tunela kroz vatrozide.

Da biste koristili daljinsko prosljeđivanje, upotrijebite ssh naredba s -R argument. Sintaksa je uglavnom ista kao kod lokalnog prosljeđivanja:

ssh -R udaljeno_port: local_address: local_port [email protected]

Pretpostavimo da želite da aplikacija poslužitelja sluša na priključku 1234 na vašem lokalnom računalu dostupnom na portu 8888 na udaljenom SSH poslužitelju. Adresa SSH poslužitelja je ssh.youroffice.com i vaše korisničko ime na SSH poslužitelju je bob, Pokrenite sljedeću naredbu:

ssh -R 8888: localhost: 1234 [email protected]

Netko bi se tada mogao povezati s SSH poslužiteljem na portu 8888 i da će veza biti tunelirana na poslužiteljsku aplikaciju koja se izvodi na priključku 1234 na lokalnom računalu s kojim ste uspostavili vezu.

Da biste to učinili u programu PuTTY u sustavu Windows, odaberite Connection> SSH> Tunnels. Odaberite opciju "Daljinski". Za "Izvor ulaza" unesite udaljeni ulaz. Za "Odredište" unesite odredišnu adresu i priključak u obliku local_address: local_port.

Na primjer, ako želite postaviti gore navedeni primjer, unosite ga 8888 kao izvorišna luka i localhost: 1234 kao odredište. Nakon toga kliknite "Dodaj", a zatim kliknite "Otvori" da biste otvorili SSH vezu. Također ćete morati unijeti adresu i luku samog SSH poslužitelja na glavnom zaslonu "Sesija" prije spajanja, naravno.

Ljudi bi se tada mogli povezati s portom 8888 na SSH poslužitelju, a njihov će promet biti tuneliran do priključka 1234 na vašem lokalnom sustavu.

Prema zadanim postavkama, daljinski SSH poslužitelj će slušati samo veze s istog računala. Drugim riječima, moći će se povezati samo osobe na istom sustavu kao SSH poslužitelj. Ovo je iz sigurnosnih razloga. Morat ćete omogućiti opciju "GatewayPorts" u sshd_config na udaljenom SSH poslužitelju ako želite poništiti ovo ponašanje.

Dinamičko prosljeđivanje porta: Koristite SSH poslužitelj kao proxy poslužitelj

Tu je i "dinamički port prosljeđivanje", koji radi slično kao proxy ili VPN. SSH klijent će stvoriti SOCKS proxy koji možete konfigurirati aplikacije za korištenje. Sav promet koji se šalje putem proxy poslužitelja šalje se putem SSH poslužitelja. To je slično lokalnom prosljeđivanju - potrebno je lokalni promet poslan određenom portu na vašem računalu i šalje ga putem SSH veze na udaljenu lokaciju.

Na primjer, recimo da upotrebljavate javnu Wi-Fi mrežu. Želite sigurno pregledavati, a da ne budete snooped. Ako imate pristup SSH poslužitelju kod kuće, možete se povezati s njom i koristiti dinamički port prosljeđivanje. SSH klijent će stvoriti SOCKS proxy na vašem računalu. Sav promet koji se šalje tom proxyu šalju se preko veze SSH poslužitelja. Nitko tko nadgleda javnu Wi-Fi mrežu moći će pratiti vaše pregledavanje ili cenzuru web stranica kojima možete pristupiti. Iz perspektive web stranica koje posjećujete, bit će kao da sjedite ispred računala kod kuće. To također znači da biste mogli koristiti ovaj trik za pristup web stranicama samo za SAD, a izvan SAD-a, pod pretpostavkom da imate pristup SSH poslužitelju u SAD-u, naravno.

Kao još jedan primjer, možda ćete htjeti pristupiti aplikaciji poslužitelja medija koji imate na svojoj kućnoj mreži. Iz sigurnosnih razloga, možda imate samo SSH poslužitelj koji je izložen Internetu. Ne dozvoljavate dolazne veze s interneta na aplikaciju medijskog poslužitelja. Možete postaviti dinamički port prosljeđivanje, konfigurirati web preglednik za korištenje SOCKS proxy poslužitelja, a zatim pristupiti poslužiteljima koji se prikazuju na vašoj kućnoj mreži putem web preglednika kao da sjedite ispred svog SSH sustava kod kuće. Na primjer, ako se vaš medijski poslužitelj nalazi na priključku 192.168.1.123 na kućnoj mreži, možete priključiti adresu 192.168.1.123 u bilo koju aplikaciju pomoću SOCKS proxy poslužitelja i pristupate poslužitelju medija kao da ste na kućnoj mreži.

Da biste koristili dinamičko prosljeđivanje, pokrenite ssh naredbu pomoću -D argument, tako:

ssh -D local_port [email protected]

Na primjer, recimo da imate pristup SSH poslužitelju na adresi ssh.yourhome.com i vaše korisničko ime na SSH poslužitelju je bob , Želite koristiti dinamičko prosljeđivanje da biste otvorili SOCKS proxy na priključku 8888 na trenutnom računalu. Pokrenite sljedeću naredbu:

ssh -D 8888 [email protected]

Tada možete konfigurirati web-preglednik ili neku drugu aplikaciju da biste upotrijebili lokalnu IP adresu (127.0.01) i priključak 8888. Sav promet iz te aplikacije preusmjerit će se kroz tunel.

Da biste to učinili u programu PuTTY u sustavu Windows, odaberite Connection> SSH> Tunnels. Odaberite opciju "Dinamička". Za "Izvor ulaza" unesite lokalnu priključnicu.

Na primjer, ako želite stvoriti SOCKS proxy na priključku 8888, unesite 8888 kao izvorni priključak. Nakon toga kliknite "Dodaj", a zatim kliknite "Otvori" da biste otvorili SSH vezu. Također ćete morati unijeti adresu i luku samog SSH poslužitelja na glavnom zaslonu "Sesija" prije spajanja, naravno.

Tada možete konfigurirati aplikaciju za pristup SOCKS proxy poslužitelju na vašem lokalnom računalu (to jest, IP adresa 127.0.0.1, koja ukazuje na vaše lokalno računalo) i odrediti ispravan port.

Na primjer, možete konfigurirati Firefox za korištenje SOCKS proxyja. To je osobito korisno jer Firefox može imati vlastite proxy postavke i ne mora koristiti proxy postavke širom cijelog sustava.Firefox će poslati svoj promet putem SSH tunela, dok će druge aplikacije normalno koristiti vašu internetsku vezu.

Kada to učinite u Firefoxu, odaberite "Manual proxy configuration", unesite "127.0.0.1" u polje SOCKS domaćina i unesite dinamički ulaz u okvir "Port". Ostavite prazne kutije za HTTP proxy, SSL proxy i FTP proxy.

Tunel će ostati aktivan i otvoriti dok god imate otvorenu SSH sesiju. Kada završite svoju SSH sesiju i odspojite s poslužitelja, tunel će također biti zatvoren. Samo se ponovo spojite s odgovarajućom naredbom (ili odgovarajućim opcijama u PuTTY-u) kako biste ponovno otvorili tunel.