检查 nftables 中 IPSEC 作为元表达式的存在

检查 nftables 中 IPSEC 作为元表达式的存在

最近,我使用 Debian 从头开始​​手动设置路由器,并决定使用 nftables 和 strongSwan 来提供 IKEv2 VPN 访问。

经过多次反复尝试后,我终于发现了使用 nftables 的正确规则,以允许 VPN 访问路由器及其后面的 LAN。

除此之外,我还想确保路由器正在将流量转发回去,以便在连接时不会中断连接设备(例如智能手机)的互联网访问。

我发现通过使用meta ipsec exists accept过滤器输入/转发表,可以让流量正确进入路由器。

通过输入允许它可以访问路由器,通过转发允许将流量转发到 LAN。

虽然这些规则有效,但我不确定它们有多安全。

我应该使用这个元表达式匹配还是应该匹配其他内容?也许是 IPSEC 提供的其他任何可以通过 strongSwan 配置的内容?

答案1

实际上,我继续进行检查,因为我也想知道如何翻译iptables政策规则nftables

nftables有一个或多或少没有记录的ipsec匹配,可以在doc/primary-expression.txtnftables存储库。

IPSec{|出去} [孢子数‘数字’] {请求|spi}

IPSec{|出去} [孢子数‘数字’] {知识产权|IP6} {萨德尔|达德尔}

ipsec 表达式是指与数据包相关的 ipsec 数据。

需要使用“in”或“out”关键字来指定表达式是否应检查入站或出站策略。“in”关键字可用于预路由、输入和转发挂钩。“out”关键字适用于转发、输出和后路由挂钩。

可选关键字 spnum 可用于匹配链中的特定状态,默认为 0。

这大致相当于策略模块正在检查的内容,尽管我实际上并没有比较整个xt_policynft_meta/nft_xfrm以确保它们验证相同的内容。

总而言之,类似的东西nft add rule ip filter INPUT meta ipsec exists ipsec in ip saddr 192.168.1.0/24 accept应该就是您要找的东西。

答案2

总而言之,类似的东西nft add rule ip filter INPUT meta ipsec exists ipsec in ip saddr 192.168.1.0/24 accept应该就是您要找的东西。

meta ipsec exists似乎暗示了这一点ipsec in。即使没有它,规则也能成功解析。

相关内容