Prosljeđivanje porta putem SSH tunela u sustavu Windows

U ovom ćemo članku pokazati kako koristiti ugrađeni Windows OpenSSH poslužitelj za prosljeđivanje luka preko SSH tunela (SSH tuneliranje). Prosljeđivanje priključaka u SSH omogućuje vam tunel (prosljeđivanje) portova aplikacija s lokalnog računala na udaljeni poslužitelj i obrnuto. Prije, prosljeđivanje porta kroz SSH tunel koristilo se samo u Linux / Unix okruženju, ali sada ove značajke možete iskoristiti i u Windows-u. Pogledajmo praktičan primjer kako proslijediti RDP vezu na Windows poslužitelju preko SSH poslužitelja s otvorenim TCP priključkom 22.

Najčešće se prosljeđivanje porta putem SSH-a upotrebljava u scenarijima kada se trebate povezati na udaljeno računalo koje je zaštićeno zaštitnim zidom. Na primjer, imate poslužitelj s Windowsom na kojem je otvoren samo SSH port (TCP 22). Svi ostali priključci blokirani su hardverskim vatrozidom ili Windows vatrozidom. Vaš je zadatak spojiti se na radnu površinu ovog Windows poslužitelja pomoću RDP klijenta. Činilo bi se nemogućim zadatkom, jer RDP 3389 blokira vatrozid. Međutim, možete koristiti tehnologiju prosljeđivanja luka kroz ssh tunel..

Sljedeće skripte za prosljeđivanje SSH najčešće se koriste:

  • Lokalno TCP prosljeđivanje - prosljeđivati ​​lokalni port na udaljeni poslužitelj;
  • Daljinsko TCP prosljeđivanje - proslijediti udaljeni port lokalnom računalu;
  • Dvostruki ssh tunel - omogućava vam povezivanje računala putem SSH poslužitelja bez namjenskih bijelih IP adresa ili smještenih iza NAT-a (ako rješenje s OpenVPN-om ne odgovara)

RDP pristup putem SSH tunela (lokalno TCP prosljeđivanje)

U tom načinu na računalu stvarate lokalni TCP port, veze na koje se preusmjeravaju preko SSH tunela na navedeni port na udaljenom poslužitelju. U ovom ćemo primjeru stvoriti lokalni port 8888, kada je povezan s kojim se preusmjeravanje izvodi iz ovog ulaza u RDP 3389 daljinsko računalo. Opći dijagram veze izgleda ovako:

Da biste stvorili SSH tunel pomoću ugrađenog SSH klijenta (ugrađenog u Windows 10 1809 i Windows Server 2019), pokrenite naredbu:

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

Kako bi SSH tunel radio u pozadini, morate dodati parametar -f.

Sada, da biste se povezali s udaljenim računalom preko SSH tunela, morate spojiti mstsc.exe RDP klijent na lokalni port 8888 vašeg računala:

127.0.0.1:8888

Prijavite se na udaljeno računalo i sigurno možete raditi u RDP sesiji, dok se sjećate da je port 3389 još uvijek zatvoren u vatrozidu. Pomoću TCPView možete provjeriti je li RDP veza uspostavljena lokalno (RDP vezu pokreće lokalno pokrenut SSH poslužitelj).

Imajte na umu da ako na taj način preusmjerite nešifrirani promet aplikacija, on se putem mreže širi u šifriranom obliku. Promet u slučaju čela šifriran je na jednom kraju SSH veze, a na drugom se dešifrira.

U ovom će se načinu i druga računala u vašoj lokalnoj mreži također moći povezati s udaljenim RDP poslužiteljem, čak i ako imaju potpuno blokiran izravni pristup udaljenom poslužitelju (i putem SSH i RDP). Da bi to učinili, moraju povezati RDP klijent na port 8888 na vašem računalu na kojem je stvoren SSH tunel:

mstsc.exe / v 10.10.1.220:8888

Prijenos udaljenog porta na lokalni stroj (daljinsko TCP prosljeđivanje)

Postoji još jedan slučaj upotrebe za SSH tunel - daljinsko TCP prosljeđivanje. Kroz SSH tunel, možete omogućiti udaljeni pristup poslužitelju lokalnom portu na računalu ili luci na drugom računalu u vašoj lokalnoj mreži. Na primjer, želite da vanjski poslužitelj (192.168.1.90) pristupi vašoj Intranet stranici (nije objavljeno na Internetu). Za stvaranje obrnutog tunela koristite ovu naredbu:

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

Sada, da biste pristupili internetskom poslužitelju internetskog weba na udaljenom SSH poslužitelju, samo unesite adresu u preglednik http: // localhost: 8080.

U svim verzijama sustava Windows pomoću naredbe možete stvoriti pravila prosljeđivanja vrata mrežni portproxy sučelja.

Sa SSH tunelima možete graditi čitave lance za prosljeđivanje luka. Možete omogućiti ili onemogućiti SSH tuneliranje u konfiguracijskoj datoteci sshd_config direktive:

DopustiStreamLocalForward proslijedi da

AllowTcpForwarding daljinski