Početna » kako da » Kako koristiti SSH tuneliranje za pristup ograničenim poslužiteljima i sigurno pretraživanje

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

    SSH klijent povezuje se s poslužiteljem Secure Shell, koji vam omogućuje pokretanje naredbi terminala kao da sjedite ispred drugog računala. Ali SSH klijent također vam omogućuje da "tunel" port između lokalnog sustava i udaljenog SSH poslužitelja.

    Postoje tri različite vrste SSH tuneliranja i sve se koriste za različite svrhe. Svaki uključuje korištenje SSH poslužitelja za preusmjeravanje prometa s jednog mrežnog porta na drugi. Promet se šalje preko šifrirane SSH veze, tako da se ne može nadzirati niti mijenjati tijekom tranzita.

    To možete učiniti pomoću ssh naredba uključena u Linux, MacOS i druge operativne sustave slične UNIX-u. U sustavu Windows, koji ne uključuje ugrađenu naredbu ssh, preporučujemo besplatni alat PuTTY za povezivanje s SSH poslužiteljima. Podržava i SSH tuneliranje.

    Prosljeđivanje lokalnih priključaka: učinite udaljene resurse pristupačnim na vašem lokalnom sustavu

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

    Da biste to učinili, uspostavite SSH vezu s SSH poslužiteljem i recite klijentu da proslijedi promet iz određenog porta s lokalnog računala - na primjer, port 1234 - na adresu poslužitelja baze podataka i njegovog porta u uredskoj mreži. Dakle, kada pokušate pristupiti poslužitelju baze podataka na priključku 1234, vaše trenutno računalo, "localhost", taj se promet automatski "tunelira" preko SSH veze i šalje poslužitelju baze podataka. SSH poslužitelj sjedi u sredini, prosljeđujući promet naprijed i natrag. Možete koristiti bilo koji naredbeni redak 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, normalno se povežite s SSH poslužiteljem, ali i isporučite -L argument. Sintaksa je:

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

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

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

    Nakon pokretanja te naredbe, moći ćete pristupiti poslužitelju baze podataka na priključku 8888 na localhost. Dakle, ako poslužitelj baze podataka nudi web-pristup, možete pristupiti http: // localhost: 8888 u vaš web-preglednik. Ako ste imali alat za naredbenu liniju kojem je potrebna mrežna adresa baze podataka, trebali biste je usmjeriti na localhost: 8888. Sav promet koji je poslan na priključak 8888 na vašem računalu bit će tuneliran na 192.168.1.111:1234 u vašoj uredskoj mreži.

    Malo je više zbunjujuće ako se želite spojiti na poslužiteljsku aplikaciju koja se izvodi na istom sustavu kao i sam poslužitelj SSH. Na primjer, recimo da imate SSH poslužitelj koji radi na priključku 22 na vašem uredskom računalu, ali također imate poslužitelj baze podataka koji radi 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 i njegov vatrozid ne dopušta nikakve druge vanjske veze.

    U tom slučaju možete pokrenuti naredbu poput sljedeće:

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

    Kada pokušate pristupiti poslužitelju baze podataka na priključku 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 port 1234 na "localhost", što je isto računalo na kojem je pokrenut SSH poslužitelj. Dakle, "localhost" u naredbi iznad znači "localhost" iz perspektive udaljenog poslužitelja.

    Da biste to učinili u programu PuTTY u sustavu Windows, odaberite Connection> SSH> Tunnels. Odaberite opciju "Lokalno". Za "Izvorni izvor" unesite lokalni priključak. Za "Destination" (odredište) unesite adresu odredišta i port u obliku remote_address: remote_port.

    Na primjer, ako ste željeli postaviti isti SSH tunel kao gore, trebali biste unijeti 8888 kao izvorni izvor i localhost: 1234 kao odredište. Nakon toga kliknite “Dodaj”, a zatim kliknite “Otvori” da biste otvorili SSH vezu. Naravno, također ćete morati unijeti adresu i port SSH poslužitelja na glavni zaslon "Session" prije povezivanja.

    Prosljeđivanje udaljenih priključaka: omogućite pristup lokalnim resursima na udaljenom sustavu

    "Udaljeno prosljeđivanje luka" suprotno je lokalnom prosljeđivanju i ne koristi se tako često. To vam omogućuje da resurs na vašem lokalnom računalu bude dostupan na SSH poslužitelju. Na primjer, recimo da pokrećete web-poslužitelj na lokalnom računalu na kojem sjedite. No vaše je računalo iza vatrozida koji ne dopušta dolazni promet poslužiteljskom softveru.

    Uz pretpostavku da možete pristupiti udaljenom SSH poslužitelju, možete se spojiti na taj SSH poslužitelj i koristiti daljinsko prosljeđivanje luka. Vaš SSH klijent će reći poslužitelju da proslijedi određeni port-say, port 1234-na SSH poslužitelju na određenu adresu i port na vašem trenutnom računalu ili lokalnoj mreži. Kada netko pristupi portu 1234 na SSH poslužitelju, promet će se automatski "tunelirati" 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. To je zapravo način tuneliranja kroz vatrozide.

    Za korištenje daljinskog prosljeđivanja koristite ssh naredbu s -R argument. Sintaksa je uglavnom ista kao i kod lokalnog prosljeđivanja:

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

    Recimo da želite poslužiteljsku aplikaciju slušati 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. Pokrenuli biste sljedeću naredbu:

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

    Netko bi se tada mogao povezati s SSH poslužiteljem na priključku 8888 i ta bi se veza tunelirala na poslužiteljsku aplikaciju koja je pokrenuta 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 "Remote". Za "Izvorni izvor" unesite udaljeni priključak. Za "Odredište" unesite adresu odredišta i port u obliku local_address: local_port.

    Na primjer, ako želite postaviti gore navedeni primjer, trebali biste unijeti 8888 kao izvorni izvor i localhost: 1234 kao odredište. Nakon toga kliknite “Dodaj”, a zatim kliknite “Otvori” da biste otvorili SSH vezu. Naravno, također ćete morati unijeti adresu i port SSH poslužitelja na glavni zaslon "Session" prije povezivanja.

    Ljudi bi se zatim mogli povezati s portom 8888 na SSH poslužitelju i njihov bi se promet tunelirao u port 1234 na vašem lokalnom sustavu.

    Po defaultu, udaljeni SSH poslužitelj će slušati samo veze s istog hosta. Drugim riječima, samo ljudi na istom sustavu kao SSH poslužitelj moći će se povezati. 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 luka: koristite SSH poslužitelj kao proxy

    Tu je i "dinamičko prosljeđivanje luka", koje radi slično kao proxy ili VPN. SSH klijent će stvoriti SOCKS proxy koji možete konfigurirati za korištenje aplikacija. Sav promet koji se šalje kroz proxy poslužitelj bit će poslan putem SSH poslužitelja. To je slično lokalnom prosljeđivanju - lokalni promet šalje na određeni port na računalu i šalje ga preko SSH veze na udaljenu lokaciju.

    Na primjer, recimo da koristite javnu Wi-Fi mrežu. Želite li sigurno pregledavati bez uključivanja. Ako imate pristup SSH poslužitelju kod kuće, možete se povezati s njim i koristiti dinamičko prosljeđivanje portova. SSH klijent će stvoriti SOCKS proxy na vašem računalu. Sav promet koji je poslan tom proxy poslužitelju bit će poslan preko veze SSH poslužitelja. Nitko koji nadzire javnu Wi-Fi mrežu neće moći pratiti vaše pregledavanje ili cenzurirati web-lokacije kojima možete pristupiti. Iz perspektive bilo koje web stranice koju posjećujete, bit će kao da sjedite ispred računala kod kuće. To također znači da možete upotrijebiti ovaj trik za pristup web-lokacijama samo za SAD, a izvan SAD-a - pod pretpostavkom da imate pristup SSH poslužitelju u SAD-u, naravno.

    Kao drugi primjer možete pristupiti aplikaciji medijskog poslužitelja koju imate na kućnoj mreži. Iz sigurnosnih razloga, možete imati samo SSH poslužitelj izložen na Internet. Ne dopuštate dolazne veze s Interneta u aplikaciju medijskog poslužitelja. Možete postaviti dinamičko prosljeđivanje portova, konfigurirati web-preglednik da koristi SOCKS proxy, a zatim pristupiti poslužiteljima koji se izvode na vašoj kućnoj mreži putem web-preglednika kao da sjedite ispred SSH sustava kod kuće. Na primjer, ako se vaš medijski poslužitelj nalazi na priključku 192.168.1.123 na vašoj kućnoj mreži, možete priključiti adresu 192.168.1.123 u bilo koju aplikaciju koja koristi SOCKS proxy poslužitelj i pristupate medijskom poslužitelju kao da ste u kućnoj mreži.

    Da biste koristili dinamičko prosljeđivanje, pokrenite naredbu ssh s oznakom -D argument, kao na primjer:

    ssh -D local_port korisničko [email protected]

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

    ssh -D 8888 [email protected]

    Tada biste mogli konfigurirati web-preglednik ili neku drugu aplikaciju za korištenje lokalne IP adrese (127.0.01) i porta 8888. Sav promet iz te aplikacije bit će preusmjeren kroz tunel.

    Da biste to učinili u programu PuTTY u sustavu Windows, odaberite Connection> SSH> Tunnels. Odaberite opciju "Dynamic". Za "Izvorni izvor" unesite lokalni priključak.

    Na primjer, ako želite stvoriti SOCKS proxy na portu 8888, trebali biste unijeti 8888 kao izvorni izvor. Nakon toga kliknite “Dodaj”, a zatim kliknite “Otvori” da biste otvorili SSH vezu. Naravno, također ćete morati unijeti adresu i port SSH poslužitelja na glavni zaslon "Session" prije povezivanja.

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

    Na primjer, možete konfigurirati Firefox da koristi SOCKS proxy. To je osobito korisno jer Firefox može imati vlastite postavke proxy poslužitelja i ne mora koristiti proxy postavke za cijeli sustav. Firefox će poslati svoj promet kroz SSH tunel, dok će druge aplikacije normalno koristiti internetsku vezu.

    Kada to radite u Firefoxu, odaberite “Manual proxy configuration”, unesite “127.0.0.1” u SOCKS host box i unesite dinamički port u “Port” kutiju. Kutije HTTP proxyja, SSL proxyja i FTP proxyja ostavite prazne.

    Tunel će ostati aktivan i otvoren sve dok imate otvorenu vezu SSH sesije. Kada završite SSH sesiju i prekinete vezu s poslužiteljem, tunel će također biti zatvoren. Samo se ponovno povežite s odgovarajućom naredbom (ili odgovarajućim opcijama u programu PuTTY) da biste ponovno otvorili tunel.