在Linux上如何记录被拒绝的数据包

时间:2019-11-20 08:53:22  来源:igfitidea点击:

在Linux如何启用防火墙日志记录?
如何在Linux操作系统上为拒绝的数据包启用FirewallD日志记录,以便查看被丢弃的数据包信息?
在CentOS/RHEL/Suse/OpenSUSE Linux下,如何查看FirewallD阻止的流量日志?

在Linux上如何启用防火墙日志记录

在/etc/firewalld/firewalld.conf文件中设置LogDenied选项可以启用日志记录
另外一种方法是使用firewall-cmd命令。

启用日志记录后,系统将记录防火墙拒绝或丢弃的所有数据包。

配置日志记录

编辑/etc/firewalld/firewalld.conf

sudo vi /etc/firewalld/firewalld.conf

LogDenied=off

改成:

LogDenied=all

重启防火墙服务,使设置生效:

sudo systemctl restart firewalld.service

或者

sudo systemctl reload firewalld.service

或者

sudo firewall-cmd --reload

LogDenied选项的值可以是: all, unicast, broadcast, multicast 或者 off.
默认情况下,LogDenied选项处于关闭状态。

grep '^LogDenied' /etc/firewalld/firewalld.conf
grep -q -i '^LogDenied=off' /etc/firewalld/firewalld.conf && echo "Change it" || echo "No need to change"
grep -q -i '^LogDenied=off' /etc/firewalld/firewalld.conf | sed -i'Backup' 's/LogDenied=off/LogDenied=all/' /etc/firewalld/firewalld.conf

使用firewall-cmd命令启用日志记录

在这种方法中,我们将使用firewall-cmd命令。

查看实际的LogDenie设置

sudo firewall-cmd --get-log-denied

修改LogDenie设置

sudo firewall-cmd --set-log-denied=all

确认一下

sudo firewall-cmd --get-log-denied

如何查看被防火墙拒绝的数据包日志?

使用grep命令或journalctl命令:

journalctl -x -e

或者使用dmesg:

dmesg
dmesg | grep -i REJECT

如何将防火墙丢弃的数据包记录到/var/log/firewalld-droppd.log文件

在CentOS/RHEL v7/8服务器上创建一个文件/etc/rsyslog.d/firewalld-droppd.conf:

$ sudo vim /etc/rsyslog.d/firewalld-droppd.conf

添加下面的配置

:msg,contains,"_DROP" /var/log/firewalld-droppd.log
:msg,contains,"_REJECT" /var/log/firewalld-droppd.log 
& stop
$ sudo systemctl restart rsyslog.service

现在,查看日志:

$ sudo tail -f /var/log/firewalld-droppd.log