如何在 Linux 上实现 strongSwan 终止开关?

如何在 Linux 上实现 strongSwan 终止开关?

我在 macOS 上使用 PF 作为终止开关(请参阅)。

使用 PF 是可能的,因为 ipsec 连接有它自己的接口 (ipsec0)。

假设 ipsec 连接与以太网位于同一接口上,我如何在 Linux 上实现类似的功能?

答案1

看起来您正在寻找类似nftablesiptables或位于这些之上的任何防火墙,如firewalldufw

答案2

使用 Netfilter 的政策模块可以轻松创建适用于隧道或非隧道流量的防火墙规则。例如,要拒绝所有与任何 IPsec 策略不匹配(即未通过隧道)的出站流量,您可以使用如下规则:

iptables -A OUTPUT -m policy --pol none --dir out -j REJECT --reject-with icmp-admin-prohibited

或者,您可以默认阻止所有出站流量(例如,将链的策略设置OUTPUTDROP),然后使用以下命令明确允许隧道流量:

iptables -A OUTPUT -m policy --pol ipsec --dir out -j ACCEPT

如果有必要,可以使这些规则更加具体(例如,仅限于某些接口或 IP 地址)。

在这两种情况下,您都需要额外的规则来允许 IKE(UDP 500/4500)和 ESP 流量(协议 50,如果使用 UDP 封装,则与 IKE 相同的端口),以及 DNS(除非 VPN 服务器 IP 是硬编码的)和可能的 DHCP。

相关内容