Windows 10 - NAT - Transfert de port et mascarade IP

13

Je cherche un moyen d'obtenir la fonctionnalité iptables dans Windows 10. J'ai activé le routage IP et j'ai besoin de transférer des données TCP vers un autre hôte (port 8080), puis de transmettre sa réponse tout en masquant IP. Sous Linux, j'ai pu le faire en utilisant ce qui suit (où $ 1 = <IP interne>, $ 2 = 80, $ 3 = 8080, $ 4 = tcp)

iptables -t nat -A PREROUTING -p $4 --match multiport --dports $2 -j DNAT --to-destination $1:$3 
iptables -A FORWARD -p $4 --match multiport --dports $2 -d $1 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE

Existe-t-il un moyen d'obtenir des fonctionnalités similaires dans Windows 10?

Orestis P.
la source
Probablement trop court pour une réponse et je ne sais pas si cela est toujours valable pour Windows 10. Pour la redirection de port, consultez cette réponse . Le masquage dans Windows est appelé Partage de connexion Internet (ICS) , consultez cette réponse .
rda
Bonjour, merci pour votre contribution. J'ai essayé d'utiliser netsh mais cela ne semble pas fonctionner (peut-être parce que j'ai besoin de listenaddress pour être un caractère générique *). Pour ICS, je ne sais pas exactement comment cela fonctionnera (aurai-je besoin d'un deuxième adaptateur? Si je les relie, je ne peux pas utiliser ICS)
Orestis P.
Vous pourriez peut-être utiliser netcat sur votre PC. Il écoutera sur un port et enverra sur un autre port. IP sera l'IP de votre machine au milieu.
TJJ
2
@OrestisP. check out netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080je vais essayer de traduire vos iptables en netsh si j'ai le temps. remplacer le 127.0.0.1 par l'adresse de votre choix
Zalmy

Réponses:

16

Windows netshpeut configurer un proxy pour permettre aux administrateurs de proxy proxy le trafic ipv6 sur ipv4. Netsh a également une option pour configurer un proxy pour ipv4 à ipv4.

Pour votre configuration, netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080remplacez le 127.0.0.1par l'adresse à laquelle vous souhaitez envoyer un proxy.

voici une petite ventilation de la commande.

netsh interface portproxysélectionne l'interface qui gère les tunnels. add v4tov4pour créer un tunnel ipv4 vers ipv4. listenport=80pour le port auquel vous souhaitez que les clients se connectent. connectaddress=127.0.0.1est l'adresse distante à laquelle les clients seront mandatés. connectport=8080est le port distant.

vous pouvez également l'utiliser listenaddress=si vous souhaitez que le proxy soit disponible sur une seule interface.

Pour plus d'informations https://technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx

Zalmy
la source
1
Notez que cela ne fonctionne malheureusement que pour TCP, donc si vous souhaitez transférer du trafic UDP, vous n'avez pas de chance.
user276648
1
Fonctionne pour moi en utilisant Windows 10 pour rediriger ssh (port de serveur 22) sur une machine exécutant un VPN. Une machine (sans connexion VPN) sur mon réseau domestique peut se connecter à une autre machine à l'intérieur du VPN à l'aide du port d'écoute.
Frank M
1

Au moins à des fins de test, j'ai pu utiliser l'utilitaire suivant pour transmettre à la fois TCP et UDP

https://sourceforge.net/projects/pjs-passport/

C'est pour XP, mais ça marche aussi sur Win10.

user276648
la source
Windows 10 me dit:Cannot start service from the command line or a debugger. A Windows Service must first be installed (using installutil.exe) and then started with the ServerExplorer, Windows Services Administrative tool or the NET START command.
Peter Turner
1
@PeterTurner: vérifiez le readmefichier. Je vois PassPort.exe -Installpour installer le service.
user276648