Firewalld - 记录被拒绝的数据包已启用 - 不记录

Mat*_*t B 6 security linux firewall iptables firewalld

我正在使用 Firewalld,拖放区是默认区域,并为该区域分配了一个接口。

然后我有丰富的规则来允许一些流量通过放置区,并且我启用了firewall-cmd --set-log-denied=all. 我认为这会记录任何尝试连接到不是来自白名单丰富规则的服务器的内容......但它不会记录。我对服务器运行了端口扫描,并且 /var/log/messages 没有显示任何被拒绝的端口日志。

但是,当我将默认区域设置为 public 并将接口分配给 public 时,它会在我运行另一个端口扫描时记录被拒绝的数据包。

为什么?

Van*_*gaS 5

该问题似乎与评论中所说的错误有关。但是,对于那些仍然无法获得防火墙拒绝数据包日志记录的人,以下方法对我有用:

以下与firewalld+rsyslogd

编辑/etc/sysconfig/firewalld和更新LogDeniedto all(或根据需要)的值

LogDenied=all
Run Code Online (Sandbox Code Playgroud)

重启防火墙

sudo systemctl restart firewalld
Run Code Online (Sandbox Code Playgroud)

或者,使用命令行,可以执行以下命令:

sudo firewall-cmd --set-log-denied all
Run Code Online (Sandbox Code Playgroud)

这通常会在防火墙中的拒绝/删除规则之前添加日志记录规则,例如:

LOG  all  --  anywhere   anywhere  LOG level warning prefix "IN_drop_DROP: "
LOG  all  --  anywhere   anywhere  LOG level warning prefix "FINAL_REJECT: "
Run Code Online (Sandbox Code Playgroud)

创建一个名为的文件/etc/rsyslog.d/custom_iptables.conf并向其中添加以下语句:

:msg,contains,"_DROP" /var/log/iptables.log
& stop
:msg,contains,"_REJECT" /var/log/iptables.log
& stop
Run Code Online (Sandbox Code Playgroud)

重启 rsyslog

sudo systemctl restart rsyslog   
Run Code Online (Sandbox Code Playgroud)

现在丢弃和拒绝的数据包将被记录到 /var/log/iptables.log