在网页中 iptables 日志
/etc/rsyslog.d/iptables.conf
使用下列内容创建::msg, startswith, "iptables: " -/var/log/iptables.log & ~
第二行的意思是丢弃上一行匹配到的报文。
为什么& ~
在iptables配置中会有“丢弃上一行匹配到的报文”的意思呢?
答案1
bash
它与nor无关iptables
(正如您的问题标签最初所暗示的那样)。这/etc/rsyslog.d/iptables.conf
是 config 的一部分rsyslogd
,而不是iptables
config。
&
是理解语法的一部分rsyslog
。
有解释这里:
您可以为单个选择器(或更准确地说,此类选择器行中的单个过滤器)设置多个操作。每个操作必须位于其自己的行上,并且该行必须以与号 (
&
) 字符开头,并且没有过滤器。例如*.=crit :omusrmsg:rger & root & /var/log/critmsgs
这三行向用户发送关键消息
rger
,并将root
它们存储在中/var/log/critmsgs
。每个选择器使用多个操作很方便,还可以提高性能。
然后~
解释这里:
如果执行了丢弃操作,则收到的消息将被立即丢弃。不会对其进行进一步处理。[…] 丢弃只是一个单词,
stop
没有其他参数:stop
例如,
*.* stop
丢弃所有内容(好吧,你完全不运行也可以达到同样的效果
rsyslogd
……)。请注意,在旧式配置中,也可以使用波浪符号
~
来代替单词stop
。
在您的情况下,匹配的消息将被记录到文件中,然后被丢弃(不再进一步处理)。