我正在尝试将 iptables 日志重定向到另一个文件。根据我在网上的阅读,我做了以下事情:
在我的 iptables 规则中,我有如下规则:
iptables -A INPUT -s ... -j LOG --log-prefix "iptables@@" 然后在文件夹 /etc/rsyslog.d 中,我创建了一个包含以下条目的文件:
:msg,contains,"iptables@@" /var/log/iptables.log & ~ 我也试过在上面两行之间有一个空行。我现在确实将 iptables 日志条目转到 iptables.log 文件。但他们也去 /var/log/kern.log 文件。我想压制后者。我该怎么做呢。我正在运行 Ubuntu 14.04 LTS。
当您的/etc/rsyslog.conf在/etc/rsyslog.d中加载您的 *.conf 时,它会按字母顺序读取您的文件。因此,您需要确保您的规则位于 50-default.conf 之前的文件中,例如:
这样,您的规则将首先被读取,然后丢弃。您还应该使用以下语法:
*你应该使用 stop 而不是 ~
或者,如果您没有 iptables 消息以外的其他 kern.*,则应修改50-default.conf为:
您的 rsyslog 配置文件中是否有一行将消息打印到
/var/log/kern.log
?如果是这样,请发布该代码。还要发布您的 rsyslog 版本号。与此同时,这可能会奏效:虽然我相信一旦你做了第二行, rsyslog 将忽略所有包含的消息,
iptables@@
因此它不能在其他地方记录(在那一行之后)。