Windows 10 - NAT - Encaminhamento de porta e mascaramento de IP

13

Estou procurando uma maneira de obter a funcionalidade de tabelas de ip no Windows 10. Habilitei o roteamento IP e preciso encaminhar dados tcp para outro host (porta 8080) e depois encaminhar sua resposta enquanto mascaramos o IP. No Linux, eu era capaz de fazer isso usando o seguinte (Onde $ 1 = <IP interno>, $ 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 uma maneira de obter funcionalidades semelhantes no Windows 10?

Orestis P.
fonte
Provavelmente curto demais para uma resposta e não sei se isso ainda é válido para o Windows 10. Para encaminhamento de porta, verifique esta resposta . O mascaramento no Windows é chamado de Compartilhamento de Conexão com a Internet (ICS) , confira esta resposta .
Rda 12/06
Olá, obrigado pela sua contribuição. Tentei usar o netsh, mas ele não parece funcionar (talvez porque precise do endereço de escuta para ser curinga *). Para ICS Eu não sei exatamente como ele irá obras (Vou precisar de um segundo adaptador Se eu ligá-los Eu não posso usar ICS?)
Orestis P.
Talvez você possa usar o netcat no seu PC. Ele escutará em uma porta e enviará para outra porta. IP será o IP da sua máquina no meio.
TJJ 16/06
2
@OrestisP. confira netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080Vou tentar traduzir seus iptables para netsh se eu tiver tempo. substitua o 127.0.0.1 pelo endereço de sua escolha
Zalmy 16/16

Respostas:

16

O Windows netshpode configurar um proxy para permitir que os administradores proxyizem o tráfego do ipv6 pelo ipv4. Netsh também tem uma opção para configurar um proxy para ipv4 para ipv4.

Para sua instalação, netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080substitua 127.0.0.1o endereço com o qual você deseja fazer proxy.

aqui está um pequeno detalhamento do comando.

netsh interface portproxyseleciona a interface que lida com os túneis. add v4tov4para criar um túnel ipv4 para ipv4. listenport=80para a porta que você deseja que os clientes se conectem. connectaddress=127.0.0.1é o endereço remoto para o qual os clientes serão submetidos a proxy. connectport=8080é a porta remota.

você também pode usar listenaddress=se desejar que o proxy esteja disponível em uma interface.

Para mais informações https://technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx

Zalmy
fonte
1
Observe que, infelizmente, isso só funciona para o TCP; portanto, se você deseja encaminhar algum tráfego UDP, não tem sorte.
User276648
1
Funciona para mim usando o Windows 10 para encaminhar ssh (porta 22 do servidor) em uma máquina executando uma VPN. Uma máquina (sem conexão VPN) na minha rede doméstica pode se conectar a outra máquina dentro da VPN usando o listenport.
Frank M
1

Pelo menos para fins de teste, pude usar o seguinte utilitário para encaminhar o TCP e o UDP

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

É para XP, mas também funciona no Win10.

user276648
fonte
O Windows 10 diz-me: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: verifique o readmearquivo. Eu vejo PassPort.exe -Installpara instalar o serviço.
user276648