为 iptables 配置自定义日志文件

Ay0*_*Ay0 8 logs debian iptables rsyslog

我正在尝试将丢弃的包记录到自定义文件而不是/var/log/messages.

为了实现这一点,我在配置文件的末尾添加了这两行:

    -A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
    -A OUTPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为我默认将 INPUT 和 OUTPUT 链配置为 DROP,因此如果包不符合任何先前的规则,它将被记录并删除。

但是,我无法将它们记录到自定义文件中。他们登录成功/var/log/messages,但我希望他们登录/var/log/iptables.log。我创建了/etc/rsyslog.d/iptables.conf包含以下内容的文件:

    :msg, contains, "IPTables-INPUT-Dropped: " - /var/log/iptables.log
    & ~
Run Code Online (Sandbox Code Playgroud)

然后我重新启动了 rsyslog,/etc/init.d/rsyslog restart并发送了一些我知道会被丢弃的包。然而,它们没有登录到 iptables.log,它们仍然被登录/var/log/messages

缺少哪个配置?

已解决 的问题是-/之间不应该有空格