我的路由器每四十秒广播一次(发送到 224.0.0.1)。这被UFW捕获,它在 syslog 中存储了一个日志条目:
1 月 5 日 03:49:02 日志内核:[ 1184.788900] [UFW BLOCK] IN=eth0 OUT= MAC=01:00:5e:00:00:01:40:5a:9b:5c:9c:fd:08: 00 SRC=192.168.1.1 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0x80 TTL=1 ID=0 DF PROTO=2
我即将建立一个系统日志服务器,它将从网络的 50 台机器中收集消息。每 40 秒用 50 条消息污染 syslog 让我很恼火,不幸的是路由器本身是不可配置的。
有没有办法防止记录那些特定的消息(按源和目标过滤),同时仍然记录被防火墙阻止的其他条目?
是的。
对于 rsyslog,您可以使用过滤器,例如:
如果你把它放在其他配置规则之前,它会阻止消息被记录。您可以在此处查看配置文件的完整示例。
请注意,文本“必须完全匹配,不支持通配符。”
对于 syslog-ng,使用过滤器的一些变体,在您的过滤器中使用 a
not message('someregex')
。您应该调查防火墙触发的原因,而不是禁用仅修复症状的日志记录。在您的情况下,您的路由器正在发送 IGMP 数据包,这是 IPv4 多播工作所必需的(即使您的网络中没有任何多播路由,如果您有任何侦听交换机,防火墙 IGMP 将中断链路本地多播)。
请检查您是否正在运行任何依赖 IPv4 多播的应用程序,并考虑允许协议 2 通过您的防火墙。
您还可以在 ufw 中设置规则以删除这些消息,例如
sudo ufw reject from any to 224.0.0.1
,或者更有可能,如果您已经有一组规则,则可以使用sudo ufw insert [rule no.] reject from any to 224.0.0.1
.