Vous pouvez configurer le transfert de port réseau dans toutes les versions de Windows sans utiliser d’outils tiers. À l’aide d’une règle de transfert de port, vous pouvez rediriger une connexion TCP entrante (IPv4 ou IPv6) du port TCP local vers n’importe quel autre numéro de port, ou même vers un port sur un ordinateur distant. En outre, il n’est pas nécessaire que Windows dispose d’un service qui écoute sur un port TCP spécifique. La redirection de port Windows est le plus souvent utilisée pour contourner les pare-feu ou pour cacher un hôte ou un service interne du réseau externe (NAT/PAT).
Dans le monde Linux, la redirection de port est configurée assez simplement à l’aide de iptables ou firewalld. Sur les systèmes Windows Server, le service de routage et d’accès à distance (RRAS) est généralement utilisé pour configurer les redirections de port. Cependant, il existe un moyen plus simple de configurer la redirection de port, qui fonctionne bien dans n’importe quelle version de Windows.
Comment configurer la redirection de port sur Windows 10 à l’aide de Netsh Portproxy?
Vous pouvez configurer la redirection de port dans Windows à l’aide du mode Portproxy de la commande Netsh. La syntaxe de la commande est la suivante :
netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport
où
- listenaddress – est une adresse IP locale pour écouter la connexion entrante (utile si vous avez plusieurs NIC ou plusieurs adresses IP sur une interface);
- listenport – numéro de port TCP d’écoute locale (la connexion attend sur) ;
- connectaddress – est une adresse IP locale ou distante (ou un nom DNS) vers laquelle vous voulez rediriger la connexion entrante;
- connectport – est un port TCP vers lequel la connexion de
listenport
est redirigée.
netsh interface portproxy add
v4tov6
v6tov4
v6tov6
, vous pouvez créer des règles de transfert de port entre les adresses IPv4 et IPv6.Supposons que notre tâche i consiste à faire en sorte que le service RDP réponde sur un port non standard, par exemple 3340 (le port peut être modifié dans les paramètres du service Bureau à distance, mais nous utilisons RDP pour faciliter la démonstration du transfert de port). Pour ce faire, nous devons rediriger le trafic entrant du port TCP 3340 vers un autre port local – 3389 (c’est le numéro de port RDP par défaut).
netstat -na|find "3340"
Alternativement, vous pouvez vérifier que le port n’écoute pas localement à l’aide de la cmdlet PowerShell Test-NetConnection :
Test-NetConnection -ComputerName localhost -Port 3340
Pour créer une règle de transfert de port sur Windows 10, exécutez une invite de commande en tant qu’administrateur et exécutez la commande suivante :
netsh interface portproxy add v4tov4 listenport=3340 listenaddress=10.1.1.110 connectport=3389 connectaddress=10.1.1.110
Où 10.10.1.110 – l’adresse IP actuelle de cet ordinateur.
Maintenant, utilisez l’outil netstat pour vérifier que Windows écoute maintenant sur le port local 3340 :
netstat -ano | findstr :3340
La prise en charge d’IPv6 doit être activée sur l’interface réseau pour laquelle la règle de transfert de port est créée.
Ce sont les conditions préalables au bon fonctionnement du transfert de port. Sans le service IP Helper et sans le support IPv6 activé, la redirection de port ne fonctionnera pas.
Pour que la redirection de port fonctionne sur Windows Server 2003/XP, vous devez en outre définir le paramètre IPEnableRouter sur 1 dans la clé de registre HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters.
Vous pouvez découvrir quel processus écoute sur le port spécifié en utilisant son PID (dans notre exemple, le PID est 636):
tasklist | findstr 636
Essayons de nous connecter à ce port depuis un ordinateur distant en utilisant n’importe quel client RDP. Le port 3340 doit être spécifié comme numéro de port RDP. Il est spécifié après les deux points suivant l’adresse du serveur RDP. Par exemple, 10.10.1.110:3340
.