我正在尝试将iptables日志redirect到另一个文件。 根据我在网上阅读,我做了以下几点:
在我的iptables规则中,我有这样的规则:
iptables -A INPUT -s … -j LOG – 日志前缀“iptables @@”然后在文件夹/etc/rsyslog.d中,我创build了一个包含以下项的文件:
:味精,包含,“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之前的文件中,如:
01-myiptablesrules.conf
这样,你的规则将被首先阅读,并丢弃它。 你也应该使用这个语法:
:msg, contains, "iptables@@" { *.* /var/log/iptables.log stop }
*你应该使用停止而不是〜
或者,如果你没有其他人使用你的iptables消息,你应该修改50-default.conf :
kern.* /var/log/iptables.log
rsyslogconfiguration文件中是否有一行将消息打印到/var/log/kern.log ? 如果是这样,请发布该代码。 同时发布您的rsyslog版本号。 同时,这可以工作:
:msg,contains,"iptables@@" /var/log/iptables.log :msg,contains,"iptables@@" ~
虽然我相信一旦你做了第二行,rsyslog将忽略所有包含iptables@@消息,所以不能在别处logging(在该行后面)。