Konfigurácia portu vpred v systéme Windows

V systéme Windows, počnúc systémom Windows XP, je zabudovaná možnosť inštalácie presmerovanie / presmerovanie portov (zasielateľský prístav). Vďaka tejto funkcii je možné prichádzajúce pripojenie TCP (IPv4 alebo IPv6) k akémukoľvek lokálnemu portu) presmerovať na iný port alebo dokonca na port vzdialeného počítača. Okrem toho nie je potrebné, aby systém počúval službu na tomto porte.

V systéme Linux je presmerovanie portov pomocou iptables pomerne jednoduché. V systémoch Windows Server smerovanie portov zvyčajne používa službu smerovania a vzdialeného prístupu (RRAS). Existuje však jednoduchší spôsob, ako nakonfigurovať port na presmerovanie, ktorý funguje rovnako dobre na akejkoľvek verzii systému Windows..

Windows port forwarding je nakonfigurovaný z príkazového riadku cez režim port proxy Tímy Netsh. Syntax príkazu je nasledovná:
rozhranie netsh portproxy add v4tov4 listenaddress = localaddress listenport = localport connectaddress = destaddress connectport = destport
kde,

  • ListenAddress - lokálna IP adresa, na ktorej sa očakáva pripojenie
  • listenport - lokálny port TCP na počúvanie (na ňom sa očakáva prichádzajúce pripojenie)
  • connectaddress - lokálna alebo vzdialená adresa IP alebo názov DNS, na ktoré by sa malo presmerovať prichádzajúce pripojenie
  • connectport - Port TCP, na ktorý bude presmerované pripojenie z portu naslouchania

Povedzme, že našou úlohou je prinútiť službu RDP, aby reagovala na neštandardnom porte, napríklad na 3340 (tento port sa samozrejme dá zmeniť v nastaveniach samotnej služby, ale pomocou protokolu RDP sa zjednodušuje demonštrácia techniky presmerovania). Na tento účel musíme presmerovať prichádzajúcu komunikáciu na port TCP 3340 na iný lokálny port - 3389 (štandardný port rdp)..

poznámka. Tento port by v systéme nemal byť počúvaný inou službou.

Spustite príkazový riadok s právami správcu a vykonajte.

netsh interface portproxy add v4tov4 listenport = 3340 listenaddress = 10.10.1.110 connectport = 3389 connectaddress = 10.10.1.110

Kde 10.10.1.110 je aktuálna IP adresa tohto počítača

Pomocou programu netstat overujeme, či sa v počítači počúva port 3340:

netstat -ano | findstr: 3340

poznámka. Ak tento príkaz nevráti nič a presmerovanie portov cez rozhranie netsh portproxy nefunguje, uistite sa, že vo vašom systéme je povolená služba iphlpsvc (IP Helper / IP Helper Service).

Na sieťovom rozhraní, pre ktoré sa vytvára pravidlo preposielania portov, musí byť povolená podpora IPv6.

Toto sú predpoklady pre správne fungovanie presmerovania portov. Bez aktivovaného pomocníka IP a protokolu IPv6 mechanizmus presmerovania nefunguje.

Proces, ktorý počúva na tomto porte, môžete určiť pomocou jeho PID (v našom príklade je PID 636):

zoznam úloh findstr 636

Pokúsime sa pripojiť k tomuto počítaču zo vzdialeného systému pomocou ľubovoľného klienta rdp. Ako port rdp musíte zadať 3340 (port je zadaný za dvojbodkou za adresou servera rdp), napríklad 10.10.1.110:3340:

Pripojenie sa musí úspešne nadviazať.

Je dôležité. Skontrolujte, či sú v nastaveniach brány firewall (brána Windows Firewall alebo brána firewall tretích strán často súčasťou antivírusového softvéru) povolené prichádzajúce pripojenia k novému portu. V prípade potreby môžete do brány firewall systému Windows pridať nové pravidlo pomocou príkazu:

netsh advfirewall firewall pridať názov pravidla = ”RDP_3340” protokol = TCP dir = v localip = 10.10.1.110 localport = 3340 akcia = povoliť

Pri vytváraní prichádzajúceho pravidla brány firewall prostredníctvom grafického rozhrania pre port 3340 nemusíte priradiť žiadny program, pretože tento port je počúvaný výlučne sieťovým ovládačom.

Môžete vytvoriť ľubovoľný počet pravidiel systému Windows na presmerovanie portov. Všetky pravidlá portproxy rozhrania netsh sú trvalé a pretrvávajú v systéme aj po reštarte Windows.

Zobrazujeme zoznam všetkých pravidiel presmerovania portov TCP v systéme:

netsh interface portproxy show all

V našom prípade existuje iba jedno pravidlo preposielania z prístavu 3340 do 3389:

Počúvajte na ipv4: Pripojte sa k ipv4:
Adresa Port Adresa Port
--------------- ----------  --------------- ----------
10.10.1.110 3340 10.10.1.110 3389

rada. Nastavenia režimu portproxy možno získať aj takto:
Výpis portu netsh rozhrania portproxy
# ==========================
# Konfigurácia portu proxy
# ==========================
portproxy rozhrania pushd
resetovať
add v4tov4 listenport = 3340 connectaddress = 10.10.1.110 connectport = 3389
popd
# Konfigurácia konca portu proxy

Ak chcete odstrániť konkrétne pravidlo presmerovania:

netsh interface portproxy delete v4tov4 listenport = 3340 listenaddress = 10.10.1.110

Vymazanie všetkých dostupných pravidiel presmerovania:

Reset portproxy rozhrania netsh 
Je dôležité. Takáto schéma presmerovania funguje iba pre porty TCP ... Komunikácia na portoch UDP sa nedá presmerovať. Adresu 127.0.0.1 nemôžete použiť aj ako adresu pripojenia.

Ak potrebujete presmerovať prichádzajúce pripojenie TCP na iný počítač, príkaz môže vyzerať takto:

netsh interface portproxy add v4tov4 listenport = 3389 listenaddress = 0.0.0.0 connectport = 3389 connectaddress = 192.168.1.100

Toto pravidlo presmeruje všetky prichádzajúce požiadavky RDP (na port 3389) z tohto počítača na vzdialený počítač s adresou IP 192.168.1.100.

Ďalšou implicitnou vlastnosťou portproxy je schopnosť vytvárať vzhľad lokálnej prevádzky akejkoľvek vzdialenej sieťovej služby.

Tak napríklad vytvoríme presmerovanie z lokálneho portu 8888 na vzdialenú adresu 213.180.204.3:

rozhranie netsh portproxy add v4tov4 listenport = 8888 connectport = 80 connectaddress = 213.180.204.3 protokol = tcp

Ak teraz v prehliadači prejdete na adresu http: // localhost: 8888 /, otvorí sa úvodná stránka Yandex. tj Napriek tomu, že prehliadač pristupuje k miestnemu počítaču, otvorí vzdialenú stránku.

Preposielanie portov sa dá použiť aj na preposielanie portu z adresy externej sieťovej karty do portu na virtuálnom počítači bežiacom na tom istom počítači..

Vyskytli sa aj prípady, keď v systéme Windows Server 2012 R2 fungovali pravidlá preposielania portov iba do reštartu systému a po reštarte boli resetované. V takom prípade musíte skontrolovať, či na sieťovom rozhraní dochádza k pravidelným vypínaniam a či sa adresa IP nezmení, keď sa systém zavedie (je lepšie použiť statickú adresu IP). Ako riešenie som musel do plánovača systému Windows pridať skript s pravidlami portu nxy rozhrania netsh, ktorý sa spustí po zavedení systému..

V systéme Windows Server 2003 / XP, aby presmerovanie fungovalo, musíte navyše povoliť nastavenie registra IPEnableRouter = 1 vo vetve HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Tcpip \ Parameters