我的 iptables 中有这个规则:
iptables -A INPUT -s 192.168.11.0/24 -j LOG
Run Code Online (Sandbox Code Playgroud)
我的问题是:
iptables 日志文件在哪里,我该如何更改?
Gil*_*il' 77
这些日志由内核生成,因此它们会转到接收内核日志的文件:/var/log/kern.log
.
如果要将这些日志重定向到其他文件,则无法通过 iptables 完成。可以在调度日志的程序的配置中完成:rsyslog。在 iptables 规则中,添加一个不被任何其他内核日志使用的前缀:
iptables -A INPUT -s 192.168.11.0/24 -j LOG --log-prefix='[netfilter] '
Run Code Online (Sandbox Code Playgroud)
按照由 设置的示例20-ufw.conf
,在/etc/rsyslog.d/00-my_iptables.conf
包含以下内容的情况下创建一个文件:
:msg,contains,"[netfilter] " -/var/log/iptables.log
& stop
Run Code Online (Sandbox Code Playgroud)
提前放置规则(文件名按/etc/rsyslog.d
字典顺序使用)并添加&stop
会导致这些日志仅转到指定位置而不是默认位置。
必须重新启动 Rsyslog 才能进行配置更改。
jok*_*ker 17
我知道为时已晚,答案已被标记为已接受的答案。我只是有一条新信息要提供。
操作的日志文件LOG
可在/var/log/syslog
(Ubuntu 和类似操作系统)或/var/log/messages
(CentOS 和类似操作系统)中找到。
如果您无法找到正确的文件,您可以尝试这样:
find /var/log -mmin 1
Run Code Online (Sandbox Code Playgroud)
这将找到在过去 1 分钟内修改的任何文件/var/log
。您可能会发现-j LOG
可能更新的不仅仅是单个文件。
例如,在 Ubuntu 18 上,/var/log/kern.log
和/var/log/syslog
都受到 netfilter 日志记录的影响。