我想知道什么最好的办法应该是在处理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规则的问题实际上取决于您的个人需求。 如果你想用LOG和DROP组合来终止你的几个链,那么把它当作一个“子程序”并且build立一个专用的LOGDROP链可能是最简单的。 这确实意味着一切都会得到相同的 – --log-prefix 。 如果您确实需要确定特定的结果,那么您将在整个规则集中散布多个日志/丢弃语句。