我一直在学习和研究 iptables 和端口转发。有一个我无法解读的示例 iptables 输出。它有选项 --dir、--pol 和 -m。虽然我熟悉 -m,但它后面没有限制或列出的选项。而是 -m 策略
我搜索了这些 iptables 选项,但什么也没找到。您可以创建自己的选项吗?
-A 输入 -s 2.2.2.80/32 -d 2.2.2.2/32 -i eth2 -m 策略 --dir in --pol ipsec --reqid 6 --proto esp -j 接受
答案1
您能创造自己的选择吗?
如果您所说的创建是指编写 Linux 内核模块,那么答案是肯定的。您可以构建所有模块和新选项。此外,还有许多非标准的 netfilter 模块用于尚未进入主线内核的晦涩或新协议和过滤。
模块偶尔会添加到内核中。所以policy
您提到的模块似乎在我的 12.04 Ubuntu 系统和较旧的 Debian 系统上可用。但它没有安装在我拥有的更旧的 Debian 系统上。
我搜索了这些 iptables 选项,但没有找到任何东西。
Ubuntu 系统的 iptables(8) 手册页似乎对此进行了记录。死亡网iptables 手册页。由于年代久远,或者由于您的系统构建方式不同,它可能不在您的系统上可用。
这是我的手册页的摘录。
策略 该模块匹配 IPsec 用于处理数据包的策略。
--dir {in|out} Used to select whether to match the policy used for decapsula‐ tion or the policy that will be used for encapsulation. in is valid in the PREROUTING, INPUT and FORWARD chains, out is valid in the POSTROUTING, OUTPUT and FORWARD chains. --pol {none|ipsec} Matches if the packet is subject to IPsec processing. --pol none cannot be combined with --strict.
...
如果你有用于构建内核的 .config 文件,你可以查看选项是否设置为将其构建为模块
# grep -i policy /boot/config-2.6.26-2-686
CONFIG_NETFILTER_XT_MATCH_POLICY=m