ip xfrm 策略端口

ip xfrm 策略端口

在 Linux 上,ip xfrm policy让我指定要启用 IPsec 的选择器。它允许您通过指定将 IPsec 限制到特定端口[ sport PORT ] [ dport PORT ]

我想为除一个端口之外的所有端口启用 IPsec。例如,为所有端口启用 IPsec除了873. 有什么办法可以做到这一点?有什么办法可以在 SELECTOR 中指定“not”吗?如果没有,解决方法是什么?

请注意,我指的是使用命令手动初始化内核的 IPsec ip xfrm

答案1

只需为该端口创建直通策略,该策略的priority数值高于(低于)匹配所有端口的策略。直通策略没有action allow附加模板。

如果没有文档,我本来希望允许只是允许流量,而不是绕过其他策略并跳过加密。

这是因为 Linux 内核将策略存储在按优先级排序的列表中,并且仅使用第一个匹配的策略。因此,如果某个action allow策略(默认策略,唯一的其他选项是用于action drop过滤流量)没有模板(即没有任何关于如何处理/加密流量的说明),其优先级高于实际 IPsec 策略,则流量将绕过 IPsec 处理。

例如,如果您现有的策略优先级为 1000,则请像这样为 TCP 端口 873 添加直通策略:

ip xfrm policy add proto tcp sport 873 dport 873 dir out priority 1
ip xfrm policy add proto tcp sport 873 dport 873 dir in priority 1

优先级可以是任何值,但必须低于 1000,以便流量首先匹配这些策略。

答案2

您配置一个保护所有端口的策略,并配置另一个优先级更高的策略以允许某个特定端口。它看起来像这样:

ip xfrm policy add src 194.168.10.4 dst 194.168.10.5 dir out tmpl src 194.168.10.4 dst 194.168.10.5 proto esp mode tunnel
ip xfrm policy add src 194.168.10.5 dst 194.168.10.4 dir in tmpl src 194.168.10.5 dst 194.168.10.4 proto esp mode tunnel
ip xfrm policy add proto tcp dport 8088 dir  in action allow priority 1    
ip xfrm policy add proto tcp sport 8088 dir  out action allow priority 1

相关内容