Windows rendszeren, a Windows XP-vel kezdve, van egy beépített telepítési lehetőség port továbbítás / továbbítás (továbbító kikötő). Ennek a szolgáltatásnak köszönhetően a bejövő TCP-kapcsolat (IPv4 vagy IPv6) bármelyik helyi porthoz) átirányítható egy másik portra vagy akár egy távoli számítógép portjára. Ezenkívül nem szükséges, hogy a rendszer szolgáltatáshallgatást végezzen ezen a porton.
Linux rendszeren a portátirányítás az iptables segítségével meglehetősen egyszerű. Windows Server rendszereken a portok irányítása általában az Útválasztási és távelérési szolgáltatást (RRAS) használja. Ennek ellenére könnyebben konfigurálható az átirányító port, amely ugyanolyan jól működik a Windows bármely verzióján..
A Windows port továbbítását a parancssorból az üzemmódba lehet beállítani Portproxy Netsh csapatok. A parancs szintaxisa a következő:netsh interfész portproxy add v4tov4 listenaddress = localaddress listenport = localport connectaddress = destaddress connectport = destport
ahol,
- ListenAddress - helyi IP-cím, amelyen a kapcsolat várható
- ListenPort - helyi TCP-port figyelés céljából (bejövő kapcsolat várható rajta)
- connectaddress - helyi vagy távoli IP-cím vagy DNS-név, amelyre a bejövő kapcsolatot átirányítani kell
- connectport - TCP-port, ahova átirányítja a kapcsolatot a listenport-portról
Tegyük fel, hogy az a feladatunk, hogy az RDP-szolgáltatás válaszoljon egy nem szabványos porton, például 3340 (természetesen ez a port megváltoztatható maga a szolgáltatás beállításaiban, de az RDP-t használjuk az átirányítási technika demonstrálásának egyszerűsítésére). Ehhez átirányítanunk kell a bejövő forgalmat a 3340 TCP portra egy másik helyi portra - 3389 (standard rdp port).
megjegyzés. Ezt a portot egy másik szolgáltatás nem hallgathatja meg a rendszeren.Futtassa a parancssort a rendszergazdai jogokkal, és hajtsa végre.
netsh interfész portproxy add v4tov4 listenport = 3340 listenaddress = 10.10.1.110 connectport = 3389 connectaddress = 10.10.1.110
A 10.10.1.110 a számítógép jelenlegi IP-címe
A netstat segítségével ellenőrizzük, hogy a 3340-ös portot a számítógépen hallgatták-e:
netstat -ano | talált: 3340megjegyzés. Ha ez a parancs nem ad vissza semmit, és a portproxy a netsh felületen keresztül nem továbbítja a port továbbítását, akkor ellenőrizze, hogy az iphlpsvc szolgáltatás engedélyezve van-e a rendszeren (IP Helper / IP Helper Service).
És azon a hálózati felületen, amelyre a port-továbbítási szabályt hozzák létre, engedélyezni kell az IPv6 támogatást.
Ezek a port-továbbítás megfelelő működésének előfeltételei. Az IP Helper és az IPv6 engedélyezése nélkül az átirányítási mechanizmus nem működik.
A PID segítségével meghatározhatja azt a folyamatot, amely ezen a porton hallgatja (példánkban a PID értéke 636):
Tasklist | findstr 636
Megpróbálunk csatlakozni ehhez a számítógéphez egy távoli rendszerből, bármilyen rpp kliens segítségével. Meg kell adnia a 3340 értéket az rdp portnak (a portot a kettőspont után kell megadni az rdp szerver címe után), például: 10.10.1.110:3340:
A kapcsolatnak sikeresen létre kell állnia.
Fontos. Ellenőrizze, hogy a tűzfal (a Windows tűzfala vagy egy harmadik féltől származó tűzfal - ezeket gyakran tartalmazzák a víruskereső szoftvert) beállításainál megengedett a bejövő kapcsolatok az új porthoz. Szükség esetén új szabályt adhat a Windows tűzfalhoz a következő paranccsal:
netsh advfirewall tűzfal hozzáadja a szabály nevét = ”RDP_3340” protokoll = TCP dir = in localip = 10.10.1.110 localport = 3340 action = engedélyezés
Amikor egy bejövő tűzfalszabályt hoz létre a 3340-es port grafikus felületén keresztül, nem kell semmilyen programot társítania, mert ezt a portot kizárólag a hálózati illesztőprogram figyeli.
Tetszőleges számú Windows port-továbbítási szabályt hozhat létre. Az összes netsh interfész-portproxy-szabály állandó és fennmarad a rendszeren a Windows újraindítása után.
Megjelenítjük a rendszer összes TCP port-továbbítási szabályának listáját:
A netsh interfész portproxy mindet megmutat
Esetünkben csak egy továbbítási szabály létezik a 3340-es és 3389-es portok között:
Hallgassa meg az IPv4-en: Csatlakozás az IPv4-hez:
Cím Port Cím Port
--------------- ---------- --------------- ----------
10.10.1.110 3340 10.10.1.110 3389
netsh interfész portproxy dump
# ==========================
# Port proxy konfiguráció
# ==========================
pushd interfész portproxy
vissza
add v4tov4 listenport = 3340 connectaddress = 10.10.1.110 connectport = 3389
popd
# A Port Proxy konfigurációjának vége
Egy adott átirányítási szabály eltávolítása:
netsh interfész portproxy delete v4tov4 listenport = 3340 listenaddress = 10.10.1.110
Az összes elérhető átirányítási szabály törlése:
A netsh interfész portproxy alaphelyzetbe állításaFontos. Egy ilyen átirányítási séma csak a TCP-portokon működik ... Az UDP-portok forgalmát nem lehet átirányítani. A 127.0.0.1 címet nem használhatja összekötési címként.
Ha a bejövő TCP kapcsolatot egy másik számítógépre kell átirányítania, a parancs így néz ki:
netsh interfész portproxy add v4tov4 listenport = 3389 listenaddress = 0.0.0.0 connectport = 3389 connectaddress = 192.168.1.100
Ez a szabály az összes bejövő RDP kérést (a 3389-es portra) átirányítja a számítógépről a 192.168.1.100 IP-című távoli számítógépre.
A portproxy másik implicit jellemzője az a képesség, hogy bármely távoli hálózati szolgáltatás helyi működésének megjelenését megteremtsék.
Például létrehozunk ilyen átirányítást a 8888 helyi portból a 213.180.204.3 távoli címre:
netsh interfész portproxy add v4tov4 listenport = 8888 connectport = 80 connectaddress = 213.180.204.3 Protocol = tcp
Most, ha a böngészőben megy a http: // localhost: 8888 / címre, megnyílik a Yandex kezdőlap. Ie annak ellenére, hogy a böngésző hozzáfér a helyi számítógéphez, távoli oldalt nyit meg.
A port-átirányítás arra is felhasználható, hogy egy portot továbbítson egy külső hálózati kártya címéről egy ugyanazon a számítógépen futó virtuális gép portjára..
Előfordultak olyan esetek is, amikor a Windows Server 2012 R2-ben a port-továbbítási szabályok csak addig működtek, amíg a rendszer újra nem indul, és az újraindítás után nem állnak vissza. Ebben az esetben ellenőriznie kell, hogy vannak-e időszakos leállások a hálózati felületen, és ha az operációs rendszer indításakor az IP-cím nem változik (jobb, ha statikus IP-t használ). Kerülő megoldásként a netsh interfész portproxy szabályait tartalmazó parancsfájlt kellett hozzáadnom a Windows ütemezőjéhez, amely akkor fut, amikor a rendszer indul.
A Windows Server 2003 / XP rendszerben az átirányítás működéséhez további engedélyeznie kell a beállításjegyzék-beállítást IPEnableRouter = 1 az ágban HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Tcpip \ Parameters