iptables日志logging问题

我想知道什么最好的办法应该是在处理logging的iptables内的项目。 例如,我有一个规则,如下所示:

$IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: " --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7 $IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -j DROP 

我很好奇,是否有更好的规则的以下部分

 -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: " --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7 

包含在链中,还是应该发送到不同的链,如LOGDROP链?

是否有可能有像下面的规则?

 $IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: " $IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -j LOGDROP $IPT -A LOGDROP -p TCP --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7 $IPT -A LOGDROP -j DROP 

提前感谢您的帮助。

从底部开始…

 $IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied ACK-FIN Scan: " $IPT -A BADTCP -p tcp -m tcp --tcp-flags ACK,FIN FIN -j LOGDROP $IPT -A LOGDROP -p TCP --log-ip-options --log-tcp-sequence --log-tcp-options --log-level 7 $IPT -A LOGDROP -j DROP 

我不确定我是否完全理解你希望在这里完成的事情,但是按照书面的说法,不,这是行不通的。 LOG模块提供了--log-ip-options和其他的--log-*选项,所以如果没有-j LOG他们根本就不会被识别:

 # iptables -A LOGDROP -p tcp --log-iptions iptables v1.4.7: unknown option `--log-iptions' Try `iptables -h' or 'iptables --help' for more information. 

如果这只是一个错字,问题是,“我可以多次呼叫同一个数据包的LOG ?”,答案是肯定的。 你可以做到这一点很好:

 -A INPUT -j LOG --log-prefix="prefixA " -A INPUT -j LOG --log-prefix="prefixB " -A INPUT -j LOG --log-prefix="prefixC " 

等等。 您将多次logging数据包,每个都有一个前缀。 正如你所示,总是包含--limit语句是一个好主意,以防止这些规则的高速匹配阻塞你的系统。

您关于在哪里最好放置日志logging规则的问题实际上取决于您的个人需求。 如果你想用LOGDROP组合来终止你的几个链,那么把它当作一个“子程序”并且build立一个专用的LOGDROP链可能是最简单的。 这确实意味着一切都会得到相同的 – --log-prefix 。 如果您确实需要确定特定的结果,那么您将在整个规则集中散布多个日志/丢弃语句。