将日志从/var/log/kern.logredirect到iptables日志的单独日志文件

我正在尝试将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(在该行后面)。