我在哪里可以找到 iptables 日志文件,以及如何更改其位置?

我在哪里可以找到 iptables 日志文件,以及如何更改其位置?

我的 iptables 中有这样的规则:

iptables -A INPUT -s 192.168.11.0/24 -j LOG

我的问题是:

iptables 日志文件在哪里?我该如何更改它?

答案1

这些日志是由内核生成的,因此它们进入接收内核日志的文件:/var/log/kern.log

如果您想将这些日志重定向到其他文件,则无法通过 iptables 完成。可以在调度日志的程序 rsyslog 的配置中完成。在 iptables 规则中,添加其他内核日志未使用的前缀:

iptables -A INPUT -s 192.168.11.0/24 -j LOG --log-prefix='[netfilter] '

按照 设置的示例20-ufw.conf,在下创建一个包含以下内容的文件/etc/rsyslog.d/00-my_iptables.conf

:msg,contains,"[netfilter] " -/var/log/iptables.log
& stop

尽早制定规则(文件名/etc/rsyslog.d按字典顺序使用)并添加&stop会导致这些日志仅转到指定位置而不会转到默认位置。

必须重新启动 Rsyslog 才能使配置更改生效。

答案2

我知道这已经太晚了,答案已经被标记为已接受。我只是想提供一些新信息。

该操作的日志文件LOG位于/var/log/syslog(Ubuntu 和类似的操作系统)或/var/log/messages(CentOS 和类似的操作系统)。

答案3

如果您找不到正确的文件,您可以尝试以下方法:

find /var/log -mmin 1

这将查找过去 1 分钟内修改过的文件/var/log。您可能会发现可能-j LOG更新的不止一个文件。

例如在 Ubuntu 18 上,和都/var/log/kern.log受到/var/log/syslognetfilter 日志记录的影响。

答案4

-j LOG现在记录到 dmesg。只需输入dmesg即可查看。

相关内容