我想记录单台机器上的连接和连接尝试。这应该包括 IP、端口和时间戳。这实际上只是为了分析/安全目的。
我怎样才能实现这个目标?
有类似的问题,但似乎没有一个能具体回答这个问题。
答案1
一种选择是使用ulogd
,它使用 iptablesULOG
目标从 Netfilter 接收日志事件到其自身。ulogd
然后可以配置为使用多个数据输出目的地,例如 MySQL、PostgreSQL 等。
更多信息可参见项目主页。
答案2
需要以下 iptable 配置:
iptables -I INPUT -m state --state NEW -j LOG --log-prefix='[networklogging] '
iptables -I OUTPUT -m state --state NEW -j LOG --log-prefix='[networklogging] '
日志输出/var/log/kern.log
可能会与其他内容混淆...因此参考:https://askubuntu.com/a/348448/585364
我们可以使用以下命令登录到一个明确的文件:
cat >/etc/rsyslog.d/00-my_iptables_networklogging.conf <<EOL
:msg,contains,"[networklogging] " -/var/log/iptables_networklogging.log
& stop
EOL
我们还需要重新启动 rsyslog:
sudo service rsyslog restart