SSH tuneli: konfiguracija, uporaba

SSH tuneliranje je metoda prijenosa proizvoljnih mrežnih podataka preko šifrirane SSH veze. Može se koristiti za dodavanje šifriranih zastarjelih programa. Također se može koristiti za implementaciju VPN-a (virtualne privatne mreže) i pristup intranetskim uslugama putem vatrozida.

Uvod

Prosljeđivanje SSH portova stvara sigurnu vezu između računala i udaljenog stroja putem kojeg se usluge mogu prenijeti. Budući da je veza šifrirana, SSH tuneliranje je korisno za prijenos informacija koje koriste nešifrirani protokol, kao što su IMAP, VNC ili IRC.


SSH tunel sustava Windows koristi priključak 22 za šifriranje podataka koji se prenose putem javne mreže (kao što je internet), čime se osiguravaju VPN funkcije. IPsec ima način prijevoza, ali može raditi iu načinu tuneliranja putem sigurnog sigurnosnog pristupnika.

Definicija

Tunel preko SSH je standard za sigurnu daljinsku prijavu i prijenos datoteka preko nepouzdanih mreža. Ona također pruža način da se zaštiti podatkovni promet bilo kojeg određenog programa pomoću port forwardinga, u osnovi tuneliranje bilo TCP /IP port preko SSH. To znači da je promet usmjeren na tok unutar šifrirane SSH veze tako da se ne može slušati ili presresti dok je na putu. SSH tuneliranje omogućuje dodavanje mrežne sigurnosti zastarjelim programima koji ne podržavaju šifriranje.


Sigurna veza na nepouzdanoj mreži uspostavlja se između klijenta SSH i SSH poslužitelja. Ova SSH veza je šifrirana, štiti povjerljivost i integritet i autentificira poveznice. SSH vezu koristi aplikacija za povezivanje s aplikacijskim poslužiteljem. Kada se aktivira tuneliranje, aplikacija se povezuje s portom na lokalnom domaćinu slušajući SSH klijent. SSH klijent zatim preusmjerava aplikaciju preko svog šifriranog tunela na poslužitelj. Potonji se spaja na stvarni aplikacijski poslužitelj - obično na istom računalu ili u istom podatkovnom centru kao SSH poslužitelj. Stoga je veza aplikacije zaštićena bez potrebe za promjenom tijeka rada aplikacija ili krajnjih korisnika.

Protokoli za tuneliranje - što je to?

U računalnim mrežama, tunelski protokol omogućuje korisniku mreže pristup ili pružanje mrežne usluge koju osnovna mreža ne podržava ili ne pruža izravno. Jedna od važnih aplikacija je dopustiti vanjskom protokolu da radi na mreži koja ne podržava ovaj određeni protokol (na primjer, pokretanje IPv6 preko IPv4). Druga važna točka je pružanje usluga koje su neprikladne ili opasne za korištenje uz korištenje samo osnovnih mrežnih usluga. Primjerice, pružanje adrese mrežne mreže udaljenog korisnika čija fizička mrežna adresa nije dio korporativne mreže. Budući da tuneliranje uključuje ponovno pakiranje podataka o prometu u drugi oblik, možda korištenjem standardnog šifriranja,važna značajka je skrivanje prirode prometa koji prolazi kroz tunele.

Secure Shell - Secure Shell

Secure Shell sastoji se od šifriranog tunela stvorenog putem SSH veze. Korisnici mogu konfigurirati SSH tunele za slanje nešifriranog prometa preko mreže putem šifriranog kanala. Na primjer, računala sustava Microsoft Windows mogu dijeliti datoteke koristeći protokol Message Server (SMB), nešifrirani protokol. Ako želite daljinski povezati datotečni sustav Microsoft Windows putem Interneta, netko slijedi vezu, može vidjeti prenesene datoteke. Da biste sigurno povezali datotečni sustav Windows, možete instalirati SSH tunel koji usmjerava sav SMB promet na udaljeni poslužitelj datoteka putem šifriranog kanala. Unatoč činjenici da sam protokol SMB ne sadrži enkripciju, šifrirani SSH kanal kroz koji se kreće pruža sigurnost.

Tipovi prosljeđivanja portova

Prosljeđivanje portova je široko podržana značajka koja se nalazi u svim većim SSH klijentima i poslužiteljima. Uz SSH port forwarding značajku, možete prenijeti različite vrste internetskog prometa preko mreže. To se koristi za izbjegavanje mrežnog praćenja ili za zaobilaženje pogrešno konfiguriranih usmjerivača na Internetu. Postoje tri vrste prosljeđivanja portova iz SSH-a:
  • lokalno - SSH klijentske veze preusmjerene na SSH poslužitelj, a zatim na poslužitelj;
  • daljinsko povezivanje na SSH poslužitelj se preusmjerava putemSSH klijent, a zatim poslužitelju;
  • Dinamički - veze iz različitih aplikacija šalju se putem SSH klijenta, zatim preko SSH poslužitelja i, konačno, na nekoliko odredišnih poslužitelja.
  • Prosljeđivanje lokalnih portova je najčešći tip, a posebno vam omogućuje da zaobiđete vatrozid tvrtke koja blokira Wikipediju. Udaljeno prosljeđivanje luka manje je uobičajeno. Omogućuje vam povezivanje s vašim SSH poslužiteljem na računalo na intranetu vaše tvrtke. Dinamičko prosljeđivanje portova koristi se rijetko. Omogućuje vam da zaobiđete vatrozid tvrtke koja u potpunosti blokira pristup Internetu. Potrebno je puno rada na prilagodbi, a obično je lakše koristiti prosljeđivanje lokalnih portova za određene web-lokacije kojima želite pristupiti.

    Specifikacije

    Da biste koristili prosljeđivanje portova, morate provjeriti je li prosljeđivanje porta omogućeno na vašem poslužitelju. Također morate klijentu dati brojeve izvora i odredišta. Ako koristite lokalno ili daljinsko preusmjeravanje, morate o tome obavijestiti klijenta krajnjeg poslužitelja. Ako se koristi dinamičko prosljeđivanje, morate konfigurirati aplikacije da koriste SOCKS proxy poslužitelj. Opet, kako to učiniti ovisi o tome koji SSH klijent koji koristite, pa ćete možda morati pročitati više o dokumentaciji.

    Primjeri provedbe

    Najbolji način da se razumije kako se to radi - razmotriti primjer s lokalnim preusmjeravanjem. Zamislite što steNalazite se u privatnoj mreži koja vam ne dopušta povezivanje s određenim poslužiteljem. Pretpostavimo da ste na poslu i da je vk.com blokiran. Za zaobilaženje zaključavanja možemo stvoriti tunel kroz poslužitelj koji nije u našoj mreži i na taj način može pristupiti traženom resursu: $ ssh -L 9000: vk.com: 80 [email protected]. Ključ je ovdje -L, koji navodi da obavljamo lokalno prosljeđivanje portova. Tim zatim izvješćuje da šaljemo naš 9000 lokalni port na vk.com:80 što je zadani port za HTTP. Sada trebate otvoriti svoj preglednik i otići na http: //localhost: 9000. Neosporiva prednost SSH tunela je da su šifrirani. Nitko neće vidjeti koje stranice posjećujete - vidljiva je samo SSH veza s poslužiteljem.

    Povezivanje s bazom podataka vatrozida

    Drugi dobar primjer je ako trebate pristupiti portu na vašem poslužitelju na koji se može izvršiti samo od lokalnog hosta, a ne daljinski. Primjer ovdje je potreba za spajanjem s konzolom baze podataka koja dopušta samo lokalnu vezu iz sigurnosnih razloga. Primjerice, na poslužitelju koristite PostgreSQL, koji prema zadanim postavkama sluša port 5432: $ ssh -L 9000: localhost: 5432 [email protected]. Dio koji se ovdje promijenio je - localhost: 5432 koji se odnosi na preusmjeravanja veza s lokalnog porta 9000 na localhost: 5432 i na vaš poslužitelj. Sada se jednostavno možemo spojiti na našu bazu podataka: $ psql -h localhost -p 9000.

    Udaljeni port forwarding

    Sada ćemo objasniti u stvarnom primjeru rad daljinskog upravljačaprosljeđivanje poziva. Pretpostavimo da razvijate Railsovu aplikaciju na vašem lokalnom računalu i želite je pokazati prijatelju. Nažalost, vaš ISP vam nije dao javnu IP adresu pa je nemoguće izravno povezati se s računalom putem Interneta. Ponekad se to može riješiti postavljanjem NAT (Broadcast Network Addresses) na vaš usmjerivač, ali to ne funkcionira uvijek i trebate promijeniti konfiguraciju rutera, što nije uvijek poželjno. Ovo rješenje također ne radi ako nemate pristup svojoj mreži. Da biste riješili taj problem, trebat će vam drugo računalo koje je javno dostupno i ima pristup SSH-u. To može biti bilo koji poslužitelj na Internetu ako se možete povezati s njim. Stvorit ćemo SSH tunel koji će otvoriti novi port na poslužitelju i povezati ga s lokalnim priključkom na vašem računalu: $ ssh-r 9000: localhost: 3000 [email protected] Ovdje je sintaksa vrlo slična lokalnom prosljeđivanju portova s ​​jednom zamjenom -L na -R Ali, kao i kod prosljeđivanja lokalnih portova, sintaksa ostaje nepromijenjena.

    Opseg i rizici

    Nedostatak je u tome što svaki korisnik koji se može prijaviti na poslužitelj ima pravo omogućiti preusmjeravanje portova. To je naširoko koristi od strane internih IT profesionalaca za prijavu na svojim kućnim strojevima ili poslužiteljima u oblaku, port forwarding s poslužitelja natrag na korporativni intranet na svom radnom računalu ili odgovarajućem poslužitelju. Hakeri i zlonamjerni programi također ga mogu upotrijebiti za ostavljanje defekta algoritma u internoj mreži. Također se može koristiti zaskriva tragove napadača, napadajući s nekoliko uređaja koji omogućuju nekontrolirano tuneliranje. Tuneliranje se često koristi zajedno s PHP SSH tunelskim ključevima i autentifikacijom javnog ključa za potpunu automatizaciju procesa.

    Prednosti

    Prodaja SSH tunela široko se koristi u mnogim korporativnim okruženjima koja koriste glavne sustave kao svoje aplikacije. U tim okruženjima, same aplikacije mogu imati vrlo ograničenu sigurnosnu podršku. Koristeći tuneliranje, kompatibilnost sa SOX, HIPAA, PCI-DSS i drugim standardima može se postići bez potrebe za promjenom aplikacija. U mnogim slučajevima, ti programi i poslužitelji aplikacija su takvi da je njihovo provođenje vjerojatno nepraktično ili skupo. Izvorni kod možda neće biti dostupan, prodavatelj je možda bankrotirao, proizvod može biti izvan kutije ili nema razvojnog tima. Dodavanje zaštitne ljuske, kao što je kit na SSH tunelu, pruža ekonomičan i praktičan način dodavanja sigurnosti takvim aplikacijama. Na primjer, svi bankomati naše zemlje koriste tunele za sigurnosne svrhe.

    Rizici

    Kao korisna stvar, nesumnjivo, podržava SSH tuneliranje. To uključuje rizike koje treba riješiti odjel korporativne IT sigurnosti. Povezivanje besplatnih SSH tunela zaštićeno je snažnom enkripcijom. To čini njihov sadržaj nevidljivim za većinu implementiranih rješenja za praćenje mreže i filtriranje prometa. Ova nevidljivost se nosiznačajan rizik ako se koristi za zlonamjerne svrhe, kao što je filtriranje podataka. Cyber ​​kriminalci ili zlonamjerni programi mogu koristiti SSH tunele kako bi sakrili svoje neovlaštene poruke ili uklonili ukradene podatke iz ciljne mreže.
    U napadu SSH tunela, napadač instalira poslužitelj izvan odredišne ​​mreže (na primjer, Amazon AWS). Nakon što se otkrije skitnica u ciljnom sustavu, spaja se s vanjskim SSH poslužiteljem iznutra. Većina organizacija dopušta lansiranje Linux SSH tunela, barem ako imaju poslužitelje u javnom oblaku. Ova SSH veza konfigurirana je s opcijom koja vam omogućuje slanje TCP porta s porta na vanjskom poslužitelju na SSH port na poslužitelju na internoj mreži. Da biste konfigurirali ovaj SSH tunel, trebate jednu naredbu s jednim redom i lako je možete automatizirati. Većina vatrozida je gotovo ne štiti.

    Povezane publikacije