在Linux上, ip xfrm policy让我指定要在其上启用IPsec的select器。 它允许您通过指定[ sport PORT ] [ dport PORT ]来限制IPsec到特定的端口。
我想为除一个端口以外的所有端口启用IPsec。 例如IPsec 除了 873 以外的所有端口。有没有办法做到这一点? 有什么办法可以在SELECTOR中指定“not”吗? 如果没有,解决方法是什么?
请注意,我指的是使用ip xfrm命令手动初始化内核的IPsec。
只需为该端口创build具有比匹配所有端口的策略更高priority (较低数值)的直通策略。 直通策略action allow但不附加模板。
没有文档,我会期望允许只允许stream量,而不是绕过其他策略,并跳过encryption。
这是因为Linux内核将策略存储在按优先级sorting的列表中,并仅使用第一个匹配策略。 所以如果一个action allow策略(默认,唯一的其他select是使用action drop来过滤stream量)没有模板(即没有任何指示如何处理/encryptionstream量)具有比实际IPsec策略更高的优先级,stream量将只是绕过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,所以stream量首先匹配这些策略。