24 febrero, 2019

NETSH portproxy: Port forwarding local en Windows

Un método para crear túneles haciendo un reenvío de puertos usando un sistema Windows es el uso de la utilidad de comandos NETSH.

Netsh tiene una propiedad llamada portproxy la cual actua como un proxy en las redes y aplicaciones IPv4 e IPv6.

Mostraré un ejemplo que podría ser típico, se trata de un reenvío de puertos local con el fin de establecer una conexión de Escritorio Remoto (RDP) entre dos máquinas Windows.

Si se trata de un reenvío de puertos entre redes IPv4 la sintaxis sería:
netsh interface portproxy add v4tov4 listenport=<Puerto-Local> listenaddress=<IP-Local> connectport=<Puerto-Remoto> connectaddress=<IP-Remota>
En siguiente ejemplo se reenvía desde la máquina local y puerto local de escucha 9090 a la máquina remota 10.0.0.19 y puerto remoto al que nos conectaremos 3389.
netsh interface portproxy add v4tov4 listenport=9090 listenaddress=localhost connectport=3389 connectaddress=10.0.0.19
  • listenport: Puerto IPv4 local en el que se escucha.
  • connectaddress: Dirección IPv4 local a la que conectarse.
  • connectport: Puerto IPv4 remoto al que conectarse.
  • listenaddress: Dirección IPv4 remota en la que se escucha.
Figura 1: Reenvío de puertos con Netsh estableciendo una conexión RDP entre dos máquinas Windows.

Para comprobar las reglas añadidas de reenvío de puertos con Netsh porproxy podemos consultar la tabla de reglas.
netsh interface portproxy show v4tov4  #Lista reglas en redes IPv4.
netsh interface portproxy show all     #Lista todas las reglas.
Para "romper" la conexión o eliminar las reglas establecidas.
netsh interface portproxy delete v4tov4 listenport=9090 listenaddress=localhost
Figura 2: Comprobar reglas añadidas y puertos de Netsh portproxy en una conexión RDP y eliminar reglas.

Saludos!

No hay comentarios:

Publicar un comentario

Entradas Relacionadas