Posredovanje vrat prek tunela SSH v operacijskem sistemu Windows

V tem članku bomo pokazali, kako uporabljati vgrajeni strežnik Windows OpenSSH za posredovanje vrat prek tunela SSH (Tuneliranje SSH). Posredovanje vrat v SSH vam omogoča tuneliranje (posredovanje) vrat aplikacij iz lokalnega računalnika na oddaljeni strežnik in obratno. Prej je bilo posredovanje vrat skozi predor SSH uporabljeno samo v okolju Linux / Unix, zdaj pa lahko te funkcije izkoristite tudi v operacijskem sistemu Windows. Oglejmo si praktičen primer, kako posredovati povezavo RDP na Windows Server prek SSH strežnika z odprtim vrati TCP 22.

Najpogosteje se posredovanje vrat prek SSH uporablja v scenarijih, ko se morate povezati z oddaljenim računalnikom, ki je zaščiten z požarnim zidom. Na primer, imate strežnik z Windows, na katerem so odprta samo vrata SSH (TCP 22). Vsa druga vrata blokirajo strojni požarni zid ali požarni zid Windows. Vaša naloga je, da se s odjemalcem RDP povežete z namizjem tega strežnika Windows. Zdi se mi nemogoča naloga, saj RDP 3389 blokira požarni zid. Vendar lahko uporabite tehnologijo za posredovanje vrat skozi tunel ssh..

Najpogosteje se uporabljajo naslednji SSH posredovalni skripti:

  • Lokalno posredovanje TCP - lokalno pristanišče posredovati na oddaljeni strežnik;
  • Oddaljeno posredovanje TCP - oddaljena vrata posredujte lokalnemu računalniku;
  • Dvojni tunel ssh - omogoča povezovanje računalnikov prek SSH strežnika brez namenskih belih naslovov IP ali nameščenih za NAT (če rešitev z OpenVPN ne ustreza)

Dostop do RDP prek tunela SSH (lokalno posredovanje TCP)

V tem načinu ustvarite lokalno vrata TCP v računalniku, povezave do katerih se prek tunela SSH preusmerijo na določena vrata na oddaljenem strežniku. V tem primeru bomo ustvarili lokalno pristanišče 8888, ko je povezan, katera preusmeritev se izvede iz tega vhoda v vrata RDP 3389 oddaljeni računalnik. Splošni diagram povezave izgleda tako:

Če želite ustvariti tunel SSH s pomočjo vgrajenega odjemalca SSH (vgrajen v Windows 10 1809 in Windows Server 2019), zaženite ukaz:

ssh -L 8888: 192.168.1.90: 3389 [email protected]

Če bo predor SSH deloval v ozadju, morate dodati parameter -f.

Zdaj, če se želite povezati z oddaljenim računalnikom prek tunela SSH, morate odjemalca mstsc.exe RDP povezati z lokalnim vratom 8888 vašega računalnika:

127.0.0.1:8888

Prijavite se v oddaljeni računalnik in lahko varno delate v seji RDP, medtem ko se spomnite, da je vrata 3389 še vedno zaprta v požarnem zidu. S TCPView lahko preverite, ali je povezava RDP vzpostavljena lokalno (povezavo RDP inicira lokalno vodeni strežnik SSH).

Če na ta način preusmerite nekodiran promet aplikacij, se ta v šifrirani obliki pošlje po omrežju. Promet v primeru čela je šifriran na enem koncu povezave SSH, na drugem pa se dešifrira.

V tem načinu se bodo tudi drugi računalniki v vašem lokalnem omrežju lahko povezali z oddaljenim strežnikom RDP, tudi če so popolnoma blokirali neposreden dostop do oddaljenega strežnika (tako prek SSH kot RDP). Če želite to narediti, morajo odjemalca RDP povezati s vrata 8888 na vašem računalniku, na katerem je ustvarjen tunel SSH:

mstsc.exe / v 10.10.1.220:8888

Prenos oddaljenega vrat na lokalni stroj (Oddaljeno posredovanje TCP)

Za tunel SSH obstaja še en primer uporabe - oddaljeno posredovanje TCP. Preko tunela SSH lahko oddaljenemu strežniku omogočite dostop do lokalnega pristanišča v računalniku ali do vrat v drugem računalniku v vašem lokalnem omrežju. Na primer, želite, da zunanji strežnik (192.168.1.90) dostopa do vašega spletnega mesta Intranet (ni objavljeno v internetu). Če želite ustvariti povratni tunel, uporabite ta ukaz:

ssh -R 8080: Internalwebsever: 80 [email protected]

Zdaj, če želite dostopati do spletnega strežnika Internalwebsever na oddaljenem strežniku SSH, samo vnesite naslov v brskalnik http: // localhost: 8080.

V vseh različicah sistema Windows lahko z ukazom ustvarite pravila za posredovanje vrat netsh vmesnik portproxy.

S tuneli SSH lahko sestavite cele verige za posredovanje vrat. V nastavitveno datoteko lahko omogočite ali onemogočite predvajanje SSH sshd_config direktive:

DovoliStreamLocalForward da

Dovoli daljinsko usmerjanje naprej