我的 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/syslog
netfilter 日志记录的影响。
答案4
-j LOG
现在记录到 dmesg。只需输入dmesg
即可查看。