Konfigurace portu vpřed ve Windows

Ve Windows je od Windows XP integrována možnost instalace port forwarding / forwarding (zasílací port) Díky této funkci lze příchozí připojení TCP (IPv4 nebo IPv6) na libovolný místní port) přesměrovat na jiný port nebo dokonce na port ve vzdáleném počítači. Navíc není nutné, aby systém na tomto portu poslouchal službu.

V Linuxu je přesměrování portů pomocí iptables docela jednoduché. V systémech Windows Server směrování portů obvykle používá službu Směrování a vzdálený přístup (RRAS). Existuje však jednodušší způsob konfigurace portu pro přesměrování, který funguje stejně dobře na jakékoli verzi systému Windows..

Windows port forwarding je konfigurován z příkazového řádku přes režim Portproxy Týmy Netsh. Syntaxe příkazu je následující:
rozhraní netsh portproxy add v4tov4 listenaddress = localaddress listenport = localport connectaddress = destaddress connectport = destport
kde,

  • poslouchejte - místní IP adresa, na které se očekává připojení
  • poslouchejte - místní port TCP, na kterém se má poslouchat (očekává se příchozí připojení)
  • connectaddress - místní nebo vzdálená adresa IP nebo název DNS, na které by mělo být přesměrováno příchozí připojení
  • připojení - Port TCP, na který bude přesměrováno připojení z portu naslouchacího portu

Řekněme, že naším úkolem je zajistit, aby služba RDP reagovala na nestandardní port, například 3340 (tento port lze samozřejmě změnit v nastavení samotné služby, ale pomocí protokolu RDP zjednodušujeme demonstraci přesměrovací techniky). K tomu je třeba přesměrovat příchozí provoz na port TCP 3340 na jiný místní port - 3389 (standardní port rdp).

Poznámka:. Tento port by neměl být v systému naslouchán jinou službou.

Spusťte příkazový řádek s právy správce a spusťte.

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

Kde 10.10.1.110 je aktuální IP adresa tohoto počítače

Pomocí netstatu ověřujeme, že port 3340 je v počítači naslouchán:

netstat -ano | findstr: 3340

Poznámka:. Pokud tento příkaz nic nevrací a přesměrování portů přes rozhraní netsh portproxy nefunguje, ujistěte se, že je ve vašem systému povolena služba iphlpsvc (IP Helper / IP Helper Service).

A na síťovém rozhraní, pro které se vytváří pravidlo předávání portů, musí být povolena podpora IPv6.

Toto jsou předpoklady pro správnou funkci přesměrování portů. Bez aktivovaného nástroje IP Helper a IPv6 nefunguje mechanismus přesměrování.

Proces, který naslouchá na tomto portu, můžete určit pomocí jeho PID (v našem příkladu je PID 636):

seznam úkolů findstr 636

Pokusíme se připojit k tomuto počítači ze vzdáleného systému pomocí libovolného klienta rdp. Jako port rdp musíte zadat 3340 (port je určen za dvojtečkou za adresu serveru rdp), například 10.10.1.110:3340:

Připojení se musí úspěšně navázat.

Je důležité. Zkontrolujte, zda je v nastavení brány firewall (brána Windows Firewall nebo brána firewall třetích stran často součástí antivirového softwaru) příchozí připojení k novému portu povoleno. V případě potřeby můžete do brány firewall systému Windows přidat nové pravidlo příkazem:

netsh advfirewall firewall přidat název pravidla = ”RDP_3340” protokol = TCP dir = v localip = 10.10.1.110 localport = 3340 akce = povolit

Při vytváření příchozího pravidla brány firewall pomocí grafického rozhraní pro port 3340 nemusíte přidružit žádný program, protože tento port je naslouchán výhradně síťovým ovladačem.

Můžete vytvořit libovolný počet pravidel předávání portů systému Windows. Všechna pravidla portproxy rozhraní netsh rozhraní jsou trvalá a v systému přetrvávají i po restartování Windows.

Zobrazujeme seznam všech pravidel předávání portů TCP v systému:

netsh interface portproxy zobrazit vše

V našem případě existuje pouze jedno pravidlo pro předávání z portů 3340 do 3389:

Poslechněte si ipv4: Připojte se k ipv4:
Adresa Port Adresa Port
--------------- ----------  --------------- ----------
10.10.1.110 3340 10.10.1.110 3389

Tip. Můžete také získat nastavení režimu portproxy takto:
výpis rozhraní netsh rozhraní portproxy
# ==========================
# Konfigurace portu proxy
# ==========================
portproxy rozhraní pushd
reset
add v4tov4 listenport = 3340 connectaddress = 10.10.1.110 connectport = 3389
popd
# Konfigurace konce portu proxy

Chcete-li odebrat konkrétní pravidlo přesměrování:

netsh interface portproxy delete v4tov4 listenport = 3340 listenaddress = 10.10.1.110

Vymazání všech dostupných pravidel přesměrování:

Reset portproxy rozhraní netsh 
Je důležité. Takové schéma přesměrování funguje pouze pro porty TCP ... Provoz na portech UDP nelze přesměrovat. Adresu 127.0.0.1 nelze použít také jako adresu pro připojení.

Pokud potřebujete přesměrovat příchozí připojení TCP na jiný počítač, příkaz může vypadat takto:

rozhraní netsh rozhraní portproxy přidat v4tov4 listenport = 3389 listenaddress = 0.0.0.0 connectport = 3389 connectaddress = 192.168.1.100

Toto pravidlo přesměruje všechny příchozí požadavky RDP (na port 3389) z tohoto počítače na vzdálený počítač s IP adresou 192.168.1.100

Dalším implicitním rysem portproxy je schopnost vytvářet vzhled lokálního provozu jakékoli vzdálené síťové služby.

Tak například vytvoříme přesměrování z místního portu 8888 na vzdálenou adresu 213.180.204.3:

rozhraní netsh portproxy add v4tov4 nasport = 8888 connectport = 80 connectaddress = 213.180.204.3 protokol = tcp

Pokud nyní v prohlížeči přejděte na adresu http: // localhost: 8888 /, otevře se úvodní stránka Yandex. I.e. Přestože prohlížeč přistupuje k místnímu počítači, otevře vzdálenou stránku.

Přesměrování portů lze také použít k přeposílání portu z externí adresy síťové karty na port na virtuálním počítači spuštěném na stejném počítači.

Byly také případy, kdy v systému Windows Server 2012 R2 fungovala pravidla pro předávání portů pouze do restartování systému a po restartu byla resetována. V takovém případě je třeba zkontrolovat, zda na síťovém rozhraní dochází k pravidelným přerušením a zda se IP adresa při spuštění operačního systému nezmění (je lepší použít statickou IP). Jako řešení jsem musel do plánovače Windows přidat skript s pravidly portproxy rozhraní netsh rozhraní, který se spustí, když se systém spustí..

V systému Windows Server 2003 / XP musí přesměrování fungovat, musíte navíc povolit nastavení registru IPEnableRouter = 1 ve větvi HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Tcpip \ Parameters