Kako ustvariti tuneliranje SSH ali posredovanje vrat v Linuxu


Tuneliranje SSH (imenovano tudi posredovanje vrat SSH) je preprosto usmerjanje lokalnega omrežnega prometa prek SSH na oddaljene gostitelje. To pomeni, da so vse vaše povezave zavarovane s šifriranjem. Omogoča enostaven način nastavitve osnovnega VPN -ja (navideznega zasebnega omrežja), ki je uporaben za povezovanje z zasebnimi omrežji prek nezavarovanih javnih omrežij, kot je internet.

Morda boste uporabljeni tudi za izpostavljanje lokalnih strežnikov za NAT -ji in požarnimi zidovi internetu prek varnih tunelov, kot je implementirano v ngrok.

[Morda vam bo všeč tudi: Kako zavarovati in okrepiti strežnik OpenSSH]

Seje SSH privzeto dovoljujejo predvajanje omrežnih povezav, obstajajo pa tri vrste posredovanja vrat SSH: lokalno, oddaljeno in dinamično posredovanje vrat.

V tem članku bomo pokazali, kako hitro in enostavno nastaviti SSH tuneliranje ali različne vrste posredovanja vrat v Linuxu.

Za namen tega članka uporabljamo naslednjo nastavitev:

  1. Lokalni gostitelj: 192.168.43.31
  2. Oddaljeni gostitelj: Linode CentOS 7 VPS z imenom gostitelja server1.example.com.

Običajno se lahko varno povežete z oddaljenim strežnikom s pomočjo SSH na naslednji način. V tem primeru sem konfiguriral prijavo SSH brez gesla med lokalnimi in oddaljenimi gostitelji, zato ni zahteval gesla skrbnika uporabnika.

$ ssh [email   

Lokalno posredovanje vrat SSH

Ta vrsta posredovanja vrat omogoča povezavo z lokalnega računalnika na oddaljeni strežnik. Ob predpostavki, da ste za omejevalnim požarnim zidom ali pa ga odhodni požarni zid blokira pri dostopu do aplikacije, ki deluje na vratih 3000 na vašem oddaljenem strežniku.

Posredujete lahko lokalna vrata (npr. 8080), ki jih lahko nato uporabite za lokalni dostop do aplikacije na naslednji način. Zastavica -L določa vrata, posredovana oddaljenemu gostitelju in oddaljena vrata.

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

Če dodate zastavico -N , pomeni, da ne izvajate ukaza na daljavo, v tem primeru ne boste dobili lupine.

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

Stikalo -f naroči, da se ssh izvaja v ozadju.

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

Zdaj na svojem lokalnem računalniku odprite brskalnik, namesto da dostopate do oddaljene aplikacije z naslovom server1.example.com:3000, lahko preprosto uporabite localhost: 8080 ali 192.168.43.31: 8080 , kot je prikazano na spodnjem posnetku zaslona.

Oddaljeno posredovanje vrat SSH

Oddaljeno posredovanje vrat vam omogoča povezavo z oddaljenega računalnika na lokalni računalnik. SSH privzeto ne dovoljuje posredovanja vrat na daljavo. To lahko omogočite z uporabo direktive GatewayPorts v glavni konfiguracijski datoteki SSHD/etc/ssh/sshd_config na oddaljenem gostitelju.

Odprite datoteko za urejanje z vašim priljubljenim urejevalnikom ukazne vrstice.

$ sudo vim /etc/ssh/sshd_config 

Poiščite zahtevano direktivo, jo razkomentirajte in nastavite njeno vrednost na yes , kot je prikazano na posnetku zaslona.

GatewayPorts yes

Shranite spremembe in zapustite. Nato morate znova zagnati sshd, da uporabite nedavno opravljeno spremembo.

$ sudo systemctl restart sshd
OR
$ sudo service sshd restart 

Nato zaženite naslednji ukaz za posredovanje vrat 5000 na oddaljenem računalniku na vrata 3000 na lokalnem računalniku.

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

Ko razumete to metodo predora, lahko preprosto in varno izpostavite lokalni razvojni strežnik, zlasti za omrežji NAT in požarnimi zidovi, internetu prek varnih tunelov. Predori, kot so Ngrok, pagekite, localtunnel in mnogi drugi, delujejo na podoben način.

Dinamično posredovanje vrat SSH

To je tretja vrsta posredovanja vrat. Za razliko od posredovanja lokalnih in oddaljenih vrat, ki omogočajo komunikacijo z enimi vrati, omogoča celoten nabor komunikacij TCP na različnih vratih. Dinamično posredovanje vrat vašo napravo privzeto nastavi kot strežnik proxy SOCKS, ki posluša na vratih 1080.

Za začetek je SOCKS internetni protokol, ki določa, kako se odjemalec lahko poveže s strežnikom prek proxy strežnika (v tem primeru SSH). Dinamično posredovanje vrat lahko omogočite z možnostjo -D.

Naslednji ukaz bo zagnal proxy SOCKS na vratih 1080 in vam omogočil povezavo z oddaljenim gostiteljem.

$ ssh -f -N -D 1080 [email 

Od zdaj lahko aplikacije na vašem računalniku uporabljate ta proxy strežnik SSH tako, da uredite njihove nastavitve in jih konfigurirate za uporabo za povezavo z oddaljenim strežnikom. Upoštevajte, da proxy SOCKS preneha delovati, ko zaprete sejo SSH.

V tem članku smo razložili različne vrste posredovanja vrat z enega računalnika na drugega za predvajanje prometa prek varne povezave SSH. To je ena izmed mnogih uporab SSH. Temu priročniku lahko dodate svoj glas prek spodnjega obrazca za povratne informacije.

Pozor: Posredovanje vrat SSH ima nekaj pomembnih pomanjkljivosti, ki jih je mogoče zlorabiti: z njim se lahko izognete programom za spremljanje omrežja in filtriranje prometa (ali požarne zidove). Napadalci ga lahko uporabljajo za zlonamerne dejavnosti. V naslednjem članku bomo pokazali, kako onemogočiti posredovanje lokalnih vrat SSH. Ostani povezan!