IPSEC/LT2P 有哪些端口?

IPSEC/LT2P 有哪些端口?

我有一个防火墙/路由器(不执行 NAT)。

我在 Google 上搜索过,看到了相互矛盾的答案。似乎 UDP 500 是常见的。但其他的令人困惑。1701、4500。

有人说我还需要允许 GRE 50,或 47,或 50 和 51。

好的,哪些端口是正确的,IPSec/L2TP 可以在没有 NAT 的路由环境中工作?例如,我想使用内置的 Windows 客户端连接到此路由器/防火墙后面的 VPN。

也许一个好的答案是指定在不同情况下要打开哪些端口。我认为这对很多人来说都很有用。

答案1

以下是端口和协议:

  • 协议:UDP,端口 500(用于 IKE,管理加密密钥)
  • 协议:UDP,端口 4500(用于 IPSEC NAT-Traversal 模式)
  • 协议:ESP,值 50(用于 IPSEC)
  • 协议:AH,值 51(用于 IPSEC)

此外,L2TP 服务器使用端口 1701,但不应允许从外部传入连接。有一个特殊的防火墙规则,只允许 IPSEC 安全流量从此端口传入。

如果使用 IPTABLES,并且您的 L2TP 服务器直接位于互联网上,那么您需要的规则是:

iptables -A INPUT -i $EXT_NIC -p udp --dport 500 -j ACCEPT
iptables -A INPUT -i $EXT_NIC -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -i $EXT_NIC -p 50 -j ACCEPT
iptables -A INPUT -i $EXT_NIC -p 51 -j ACCEPT
iptables -A INPUT -i $EXT_NIC -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT

$EXT_NIC您的外部网络接口卡名称在哪里,例如 ppp0。

答案2

Ipsec 需要 UDP 端口 500 + IP 协议 50 和 51 - 但您可以使用 NAt-T,它需要 UDP 端口 4500。另一方面,L2TP 使用 udp 端口​​ 1701。如果您尝试通过“常规”Wi-Fi 路由器传递 ipsec 流量,并且没有 IPSec 直通选项,我建议打开端口 500 和 4500。至少在我的路由器上就是这样工作的。希望这能有所帮助。

答案3

好的。

事实上 - 这取决于情况。

我有Ubuntu L2TP\IPSEC 服务器位于 NAT 后面。

如果您的 L2TP\ipsec 服务器位于 NAT 后面,在这种情况下,在您的网关(带有 NAT)上,您需要为以下端口和协议进行端口转发:

500 UDP
4500 UDP
1701 UDP

本例中的重点是——没有必要转发 ESP 或 AH。

此外,当服务器位于 NAT 后面时,默认情况下 Windows 操作系统客户端无法连接到此类服务器,您需要添加到注册表中

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
AssumeUDPEncapsulationContextOnSendRule = 2 (type dword32)

如果服务器直接位于互联网上

UDP 500
UDP 4500

只需要在WAN接口上开启就可以了。

在这种情况下,Windows 操作系统客户端不需要进行任何注册表编辑。

这些信息都是经过实践检验的。

===

更新(2021.04.23):

如果您使用 ipsec 进行动态 vpn,则不需要在防火墙上启用 ESP\AH 协议。

但是如果你使用 ipsec 进行站点到站点隧道(在两个具有 Internet IP 地址的路由器之间) ---> 则还需要在防火墙上启用

ESP protocol
AH  protocol

相关内容