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

pyl*_*ver 66 iptables log

我的 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 才能进行配置更改。

  • @pylover UFW 只是一个例子。我知道你没有 `iptables.log`,我回答的重点是向你展示如何创建它。如果你运行的是不同版本的 Ubuntu,你可能没有 `/var/log/kern.log`(我认为最近的版本不再使用这个文件,而是将内核日志放在 `/var/log/syslog` 中),但没关系。哦,但是如果你运行的是旧版本的 Ubuntu,你可能需要安装 `rsyslog` 包。 (3认同)
  • 还有一件事,我需要将文件命名为 00-my_iptables.conf,否则 iptables 仍然会登录到 kern.log (2认同)
  • 也许你也可以提到 `& stop` 命令。这样你就可以避免在 `kern.log` 文件中出现重复项,这些重复项可能会影响你查看其他重要内核日志的能力。 (2认同)

jok*_*ker 17

我知道为时已晚,答案已被标记为已接受的答案。我只是有一条新信息要提供。

操作的日志文件LOG可在/var/log/syslog(Ubuntu 和类似操作系统)或/var/log/messages(CentOS 和类似操作系统)中找到。


pro*_*sti 9

如果您无法找到正确的文件,您可以尝试这样:

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 日志记录的影响。

  • 我正在执行 `ls /var/log/` 来查找日志文件,直到我执行 `sudo ls /var/log/` 后它才显示。你的回答对我很有帮助,谢谢。 (2认同)