我在 iptables 中有这些规则:
/sbin/iptables -N LOGGING
/sbin/iptables -A INPUT -j LOGGING
/sbin/iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
/sbin/iptables -A LOGGING -j DROP
我可以添加这些规则还是应该更改?不确定,如果我使用“A INPUT -j LOGGING”和“A INPUT -j LOG”来双重记录。
/sbin/iptables -A INPUT -j LOG
/sbin/iptables -A FORWARD -j LOG
不,你没有。
-N LOGGING
创建一个名为 的自定义表LOGGING
。这只是您的自定义表格,您可以在其中放置规则以对它们进行分组。虽然它被称为LOGGING
,但它本身并不做任何日志记录。除了现有的表和目标之外,您可以以任何方式命名它。当你用它来定位它时,
-A INPUT -j LOGGING
它只是告诉 netfilter “进入”这个表。现在它从第一条规则“走”到结束或终止目标 - 比如ACCEPT
orDROP
,而LOG
是非终止目标。即,它会在处理非终止目标之后继续执行下一条规则。所以-j LOG
它们是实际的 LOG 目标,它进行日志记录。但是,如果您提供的示例是完整的,那么您可能会在这里遇到的实际问题是
-A LOGGING -j DROP
一部分。它不包括任何匹配项,并且目标设置为DROP
. 没有任何匹配包括它通过的每个数据包。所以它只会在记录后丢弃每个数据包。如果这是你的意图,那没关系。但通常这些是通过某种匹配完成的(如源/目标 IP、TCP/UDP 端口等)。