Kako stvoriti SSH tuneliranje ili prosljeđivanje portova u Linuxu


SSH tuneliranje (također poznato kao prosljeđivanje SSH porta) je jednostavno usmjeravanje lokalnog mrežnog prometa preko SSH-a na udaljena računala. To znači da su sve vaše veze zaštićene enkripcijom. Omogućuje jednostavan način postavljanja osnovnog VPN-a (Virtual Private Network), korisnog za povezivanje s privatnim mrežama preko nesigurnih javnih mreža poput Interneta.

Također se možete koristiti za izlaganje lokalnih poslužitelja iza NAT-a i vatrozida Internetu preko sigurnih tunela, kao što je implementirano u ngrok.

SSH sesije dopuštaju tuneliranje mrežnih veza prema zadanim postavkama, a postoje tri vrste prosljeđivanja SSH priključka: lokalno, daljinsko i dinamičko port prosljeđivanje.

U ovom ćemo članku pokazati kako brzo i jednostavno postaviti SSH tuneliranje ili različite vrste prosljeđivanja portova u Linuxu.

Okruženje za testiranje:

Za potrebe ovog članka koristimo sljedeće postavke:

  1. Lokalni host: 192.168.43.31
  2. Udaljeni host: Linode CentOS 7 VPS s nazivom hosta server1.example.com.

Obično se možete sigurno spojiti na udaljeni poslužitelj koristeći SSH na sljedeći način. U ovom sam primjeru konfigurirao SSH prijavu bez lozinke između svog lokalnog i udaljenog računala, tako da nije tražena lozinka administratora korisnika.

ssh [email   

Lokalno prosljeđivanje SSH priključka

Ova vrsta prosljeđivanja portova omogućuje vam povezivanje s lokalnog računala na udaljeni poslužitelj. Pod pretpostavkom da se nalazite iza restriktivnog vatrozida ili vas odlazni vatrozid blokira u pristupu aplikaciji koja radi na portu 3000 na vašem udaljenom poslužitelju.

Možete proslijediti lokalni priključak (npr. 8080) koji potom možete koristiti za lokalni pristup aplikaciji na sljedeći način. Oznaka -L definira port proslijeđen udaljenom hostu i udaljeni port.

ssh [email  -L 8080:server1.example.com:3000

Dodavanje oznake -N znači da ne izvršavajte udaljenu naredbu, u ovom slučaju nećete dobiti ljusku.

ssh -N [email  -L 8080:server1.example.com:3000

Prekidač -f upućuje ssh da radi u pozadini.

ssh -f -N [email  -L 8080:server1.example.com:3000

Sada, na vašem lokalnom računalu, otvorite preglednik, umjesto pristupa udaljenoj aplikaciji koristeći adresu server1.example.com:3000, možete jednostavno koristiti localhost:8080 ili 192.168.43.31:8080, kao što je prikazano na slici ispod.

Udaljeno prosljeđivanje SSH priključka

Udaljeno prosljeđivanje porta omogućuje vam povezivanje s udaljenog računala na lokalno računalo. Prema zadanim postavkama, SSH ne dopušta udaljeno prosljeđivanje porta. Ovo možete omogućiti korištenjem direktive GatewayPorts u glavnoj konfiguracijskoj datoteci SSHD-a /etc/ssh/sshd_config na udaljenom hostu.

Otvorite datoteku za uređivanje koristeći svoj omiljeni uređivač naredbenog retka.

sudo vim /etc/ssh/sshd_config 

Potražite potrebnu direktivu, uklonite je iz komentara i postavite njezinu vrijednost na yes, kao što je prikazano na snimci zaslona.

GatewayPorts yes

Spremite promjene i izađite. Zatim morate ponovno pokrenuti sshd da biste primijenili nedavne promjene koje ste napravili.

sudo systemctl restart sshd
OR
sudo service sshd restart 

Zatim pokrenite sljedeću naredbu za prosljeđivanje priključka 5000 na udaljenom računalu na priključak 3000 na lokalnom računalu.

ssh -f -N [email  -R 5000:localhost:3000

Nakon što shvatite ovu metodu tuneliranja, možete jednostavno i sigurno izložiti lokalni razvojni poslužitelj, posebno iza NAT-a i vatrozida, Internetu preko sigurnih tunela. Tuneli kao što su Ngrok, pagekite, localtunnel i mnogi drugi rade na sličan način.

Dinamičko prosljeđivanje SSH priključka

Ovo je treća vrsta prosljeđivanja portova. Za razliku od lokalnog i daljinskog prosljeđivanja porta koji omogućuje komunikaciju s jednim portom, omogućuje cijeli niz TCP komunikacija preko niza portova. Dinamičko prosljeđivanje porta postavlja vaše računalo kao SOCKS proxy poslužitelj koji sluša na portu 1080, prema zadanim postavkama.

Za početak, SOCKS je internetski protokol koji definira kako se klijent može spojiti na poslužitelj putem proxy poslužitelja (SSH u ovom slučaju). Možete omogućiti dinamičko prosljeđivanje porta pomoću opcije -D.

Sljedeća naredba pokrenut će SOCKS proxy na portu 1080 što vam omogućuje povezivanje s udaljenim hostom.

ssh -f -N -D 1080 [email 

Od sada možete natjerati aplikacije na vašem računalu da koriste ovaj SSH proxy poslužitelj tako što ćete urediti njihove postavke i konfigurirati ih da ga koriste za povezivanje s vašim udaljenim poslužiteljem. Imajte na umu da će SOCKS proxy prestati raditi nakon što zatvorite svoju SSH sesiju.

Pročitajte također: 5 načina za nastavak rada udaljenih SSH sesija nakon zatvaranja SSH-a

Sažetak

U ovom smo članku objasnili različite vrste prosljeđivanja portova s jednog stroja na drugi, za tuneliranje prometa kroz sigurnu SSH vezu. Ovo je jedna od mnogih upotreba SSH-a. Možete dodati svoj glas ovom vodiču putem donjeg obrasca za povratne informacije.

Pažnja: prosljeđivanje SSH priključka ima značajne nedostatke, može se zloupotrijebiti: može se koristiti za zaobilaženje programa za nadzor mreže i filtriranje prometa (ili vatrozida). Napadači ga mogu koristiti za zlonamjerne aktivnosti. U našem sljedećem članku pokazat ćemo kako onemogućiti prosljeđivanje SSH lokalnog priključka. Ostanite povezani!