iptables SSH 连接日志记录

iptables SSH 连接日志记录

是否可以仅在建立连接时写入日志条目?我尝试过:

iptables -I OUTPUT -p tcp --dport 22 -j LOG --log-level notice --log-prefix "outgoing ssh connection"

记录传出的 SSH 连接,但这会记录每个数据包,您可以想象这对于监控目的来说有点难以承受。我正在运行 SLES 11 SP3。因此,如果有人能指出一种仅在建立连接时写入日志条目的方法,我将不胜感激。

答案1

您需要记录流量的线路可能看起来像这样:

iptables -I OUTPUT -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j LOG --log-prefix "Outgoing SSH connection"

在另一个终端上查看日志

while :; do iptables -L OUTPUT -v -n --line-n; sleep 2; done

我使用的是 -m state --state。但我建议使用 --ctstate

man iptables了解更多信息。

如果您感觉被日志淹没了,您可以考虑更改--log-levelhttp://www.netfilter.org/可以告诉你更多。

答案2

val0x00ff 建议使用--state,同样由Petter H 在评论中,应该可以正常工作。

但是,您不需要为此引入会话状态跟踪。您可以添加标志--syn,使规则仅匹配设置了 SYN 标志的数据包,该标志仅在新的连接尝试时设置。

相关内容