这就是我想做的。
在我的规则文件(与 一起使用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)具有相同的名称并记录在同一页面上)