Modo de transporte IPsec entre máquinas atrás de dispositivos Nat não funcionando

Modo de transporte IPsec entre máquinas atrás de dispositivos Nat não funcionando

Meu cenário não utiliza nenhum tipo de VPN e não utiliza RRAS.

Estou tentando estabelecer uma conexão IPsec entre duas máquinas Windows 10 (ambas com 1709 totalmente corrigidas) que estão atrás de dispositivos Nat diferentes.

Através do firewall do Windows, criei duas regras de transporte nas duas máquinas, as regras estão relacionadas ao protocolo Smb.

As máquinas estão ambas atrás de um Nat, os dois dispositivos Nat estão conectados através da Internet.

Criei em ambas as máquinas a chave de registro “AssumeUDPEncapsulationContextOnSendRule” e defini seu valor em ambas as máquinas como “2”.

No dispositivo Nat na frente do servidor que estou tentando acessar, encaminhei as portas Udp 500 e 4500 e todas as portas relacionadas ao Smb para o próprio servidor.

Em ambos os pcs permiti, através do firewall do Windows, portas Udp de entrada e saída 500, 4500 e até permiti “Edge traversal” para Smb na conexão no pc servidor.

Quando tento acessar remotamente o servidor, as associações de segurança no modo rápido são criadas, mas a conexão não funciona. (A saída do comando Get-NetIpsecQuickmodeSa parece ok, ou seja, o encapsulamento Udp foi criado corretamente)

A conexão funciona quando o cliente está atrás de um Nat e o servidor tem um IP público, mas não funciona quando o cliente tem um IP público e o servidor está atrás de um Nat ou quando o cliente e o servidor estão atrás de um Nat.

Deve haver alguma configuração que estou ignorando.

Por favor, me ajude a resolver esse problema.

Muito obrigado

Responder1

Eu tinha certeza de que havia alguma configuração que eu estava ignorando e aí está:

Set-NetFirewallSetting -AllowIPsecThroughNAT Ambos

A configuração de registro “AssumeUDPEncapsulationContextOnSendRule” está relacionada ao antigo serviço de agente de política IPsec do Windows.

O comando Powershell acima permite o mesmo comportamento para o firewall do Windows, em particular Ele define o valor de registro “IPsecThroughNAT” para “2”.

Agora tudo está funcionando conforme o esperado e como deveria desde o início, esta deve ser a configuração padrão.

Responder2

O Windows pode não suportar o servidor atrás de um dispositivo NAT. Requer que o servidor tenha um endereço IP público. Há uma solução alternativa adicionando a seguinte chave de registro.

Local da subchave do registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent Nome do valor DWORD: AssumeUDPEncapsulationContextOnSendRule Dados do valor DWORD: 2

Fonte:

https://support.microsoft.com/en-us/help/926179/how-to-configure-an-l2tp-ipsec-server-behind-a-nat-t-device-in-windows

http://www.itdroplets.com/l2tp-vpn-not-working-in-windows/

informação relacionada