如何在 iptables 中将字符串从一条链转移到另一条链?

如何在 iptables 中将字符串从一条链转移到另一条链?

这就是我想做的。

在我的规则文件(与 一起使用iptables-restore)中,我有(已删除限制):

-4 -A LOGDROP -j LOG --log-prefix "ipt:4:drop "
-6 -A LOGDROP -j LOG --log-prefix "ipt:6:drop "
   -A LOGDROP -j DROP

我不想在每一条链的末端重复自己。所以如果我在其他链条中跳跃那就太棒了我已经可以设置字符串,以便可以将它们在我的LOGDROP链中组装到log-prefix.

有办法实现这个吗?

答案1

好主意。这意味着创建一个变量并将其添加到所有数据包中。我不知道有这样的可能性。但我们并没有失去所有希望:可能有一种方法可以实现类似的目标。

您可以使用 MARK 目标:

iptables -A INPUT -j MARK --set-mark 123

Netfilter 将一个 32 位字段与每个数据包相关联。它的值将与 LOG 目标一起记录。然后您可以在日志中 grep 查找字符串MARK=0x7b(7B = 123)。如果你想进一步匹配 iptbles 规则中的这个标记,你可以用 match 来完成mark

所以它不如字符串好,但它可能满足您的需求?

编辑:您还可以使用--and-mark--or-mark--xor-mark、 或仅设置/取消设置一个或多个特定位--set-mark val/mask,这将为您提供标记数据包的多种可能性,相当于连接字符串。

该文档位于网络过滤器的页面在底部的部分中,对于目标(准确地说,匹配扩展名(-m)具有相同的名称并记录在同一页面上)

相关内容