Mikrotik 路由器后面的 L2TP 服务器的正确 NAT 和防火墙规则

Proper NAT and Firewall Rules for L2TP Server behind Mikrotik Router

我已经为通过预共享密钥的 L2TP VPN 连接配置了 Windows Server 2016。服务器的 LAN 端地址是 192.10.0.100。我可以从LAN端访问VPN。

我从本地网络外部收到一条错误消息,指出“远程服务器没有响应”,并提到可能是 NAT 或防火墙问题。

以下是我为 VPN 制定的规则:

NAT

   add action=dst-nat chain=dstnat comment="NAT Rule for L2TP General Port 500" \
        dst-address="Mikrotik public IP Address" dst-port=500 protocol=udp to-addresses=\
        192.10.0.100 to-ports=500
    add action=dst-nat chain=dstnat comment="NAT Rule for L2TP General Port 1701" \
       dst-address="Mikrotik public IP Address" dst-port=1701 protocol=udp to-addresses=\
       192.10.0.100 to-ports=1701
    add action=dst-nat chain=dstnat comment="NAT Rule for L2TP General Port 4500" \
       dst-address="Mikrotik public IP Address" dst-port=4500 protocol=udp to-addresses=\
       192.10.0.100 to-ports=4500   

防火墙:

add action=accept chain=input comment="allow L2TP port 500" dst-port=4500 \
    protocol=udp
add action=accept chain=input comment="allow L2TP port 1701" dst-port=1701 protocol=udp
add action=accept chain=input comment="allow L2TP port 4500" dst-port=4500 \
    protocol=udp
add action=accept chain=forward comment=\
    "Allow forwarding for L2TP VPN (udp)" dst-address=192.10.0.100 \
    protocol=udp

客户端似乎可以联系服务器,但没有得到响应。 return 流量是否还有我遗漏的另一个 NAT?提前致谢。

如果您收到指示防火墙问题的错误消息,可能会检查您的客户端和服务器端注册表项。

关于在 windows 服务器上设置 L2TP VPN 的说明 here 指出,您必须在服务器和客户端的注册表中添加一个 DWord 值才能使NPS 改变工作。

转到

HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services -> PolicyAgent 

添加

AssumeUDPEncapsulationContextOnSendRule

将值数据更改为 2。

事实证明,您不需要在 LAN 端测试 VPN,但在 WAN 端需要这样做。因此,直到我能够从我的 MacBook Pro 连接到 VPN 时才想到检查我的拼写。