在 iptables 中,我想向调用 DROP 的每个地方添加日志记录。
但是,由于我在生产环境中可能会遇到不同的表,我只想扩展包含 DROP 目标的所有规则,我不想经历手动重写每个规则的繁琐过程。因此,我想知道 - 是否有一种方法可以只更改或添加多个匹配规则中的日志前缀,以便添加自定义字符串,例如“DROPPED”......?这样,如果我在 PREROUTING 表中添加类似的条目,我就可以检测到 PREROUTING 后面没有 DROPPED 的一系列端口中的所有数据包,这表明数据包通过,这最终是我想要检测的。
不管怎样,或者还有其他更好的方法……
答案1
这是最好的选择之一。
iptables -N myDrop
iptables -A myDrop -j LOG --log-prefix "dropping " --log-level 7 --log-tcp-sequence --log-tcp-options --log-ip-options
iptables -A myDrop -j DROP
现在,不要执行 -j DROP,而是执行 -j myDrop,这样它就会被记录下来。
您可以设置 ulogd 并记录到包括数据库在内的许多其他目的地。
iptables -A myDrop -j NFLOG --nflog-prefix banned_hosts --nflog-group 1