如何在 Linux 上启用防火墙对被拒绝的数据包进行日志记录
Firewalld 提供动态管理的 Linux 防火墙来保护您的网络连接、服务和接口。本页介绍如何使用 Firewalld 中的 LogDenied 选项在 Linux 操作系统上启用拒绝数据包的日志记录机制。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 防火墙 |
先决条件 | 防火墙 |
操作系统兼容性 | Alma • Alpine • Amazon Linux • Arch • CentOS • Debian • Fedora • Linux • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu |
预计阅读时间 | 4 分钟 |
如何在 Linux 上启用 Firewalld 日志记录
我们可以在 /etc/firewalld/firewalld.conf 文件中设置 LogDenied 选项。另一个选项是使用firewall-cmd 命令。一旦启用,您的 Linux 系统将记录所有被 FirewallD 拒绝或丢弃的数据包。有多种方法可以启用 Firewalld 日志记录。尝试以下任何一种方法:
配置拒绝数据包的日志记录 { firewalld.conf 方法}
编辑/etc/firewalld/firewalld.conf,输入:
$ sudo vi /etc/firewalld/firewalld.conf
查找:
LogDenied=off
代替:
LogDenied=all
在 vi/vim 中保存并关闭文件。重新启动防火墙服务,运行:
$ sudo systemctl restart firewalld.service
或
$ sudo systemctl reload firewalld.service
或默认情况下 LogDenied 选项是关闭的。LogDenied 选项在默认规则的 INPUT、FORWARD 和 OUTPUT 链中的拒绝和删除规则之前打开日志记录规则,以及区域中的最终拒绝和删除规则。可能的值包括:all、unicast、broadcast、multicast 和 off。对于 shell 脚本,我们可以使用grep 命令
$ sudo firewall-cmd --reload
和 sed 命令
的组合,如下所示:
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
Firewalld 启用日志记录 { 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
在 CentOS 或 RHEL 7/8 中使用 Firewalld 记录丢弃的数据包
使用 GUI 配置工具启用firewalld 日志 { firewall-config 方法}
Fedora 或 CentOS 或 OpenSUSE 桌面用户可以尝试 GUI 方法。打开终端窗口,然后打开 Firewalld GUI 配置工具。换句话说,按如下方式启动 Firewall-config:
$ firewall-config
Firewalld GUI 配置工具
如何查看被拒绝的数据包?
使用grep 命令或 journalctl 命令:
$ journalctl -x -e
或者我们使用 dmesg 和 grep 的组合,如下所示:
示例输出:
$ dmesg
$ dmesg | grep -i REJECT
[20042.637753] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:c1:08:00 SRC=218.26.176.3 DST=172.xxx.yyy.zzz LEN=40 TOS=0x00 PREC=0x00 TTL=240 ID=55921 PROTO=TCP SPT=57604 DPT=1433 WINDOW=1024 RES=0x00 SYN URGP=0 [20046.765558] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:41:08:00 SRC=80.82.70.239 DST=172.xxx.yyy.zzz LEN=40 TOS=0x00 PREC=0x00 TTL=240 ID=57597 PROTO=TCP SPT=44042 DPT=3464 WINDOW=1024 RES=0x00 SYN URGP=0 [20047.814002] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:41:08:00 SRC=120.147.208.68 DST=172.xxx.yyy.zzz LEN=48 TOS=0x00 PREC=0x00 TTL=111 ID=26712 DF PROTO=TCP SPT=61102 DPT=445 WINDOW=8192 RES=0x00 SYN URGP=0 [20055.064170] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:c1:08:00 SRC=192.241.218.101 DST=172.xxx.yyy.zzz LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=54321 PROTO=TCP SPT=43855 DPT=2082 WINDOW=65535 RES=0x00 SYN URGP=0 [20069.898251] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:41:08:00 SRC=80.82.70.239 DST=172.xxx.yyy.zzz LEN=40 TOS=0x00 PREC=0x00 TTL=237 ID=28418 PROTO=TCP SPT=44042 DPT=3489 WINDOW=1024 RES=0x00 SYN URGP=0 [20083.001724] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:41:08:00 SRC=95.217.132.22 DST=172.xxx.yyy.zzz LEN=52 TOS=0x00 PREC=0x00 TTL=113 ID=40426 DF PROTO=TCP SPT=51883 DPT=3389 WINDOW=64240 RES=0x00 CWR ECE SYN URGP=0 [20086.000830] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:41:08:00 SRC=95.217.132.22 DST=172.xxx.yyy.zzz LEN=52 TOS=0x00 PREC=0x00 TTL=113 ID=40888 DF PROTO=TCP SPT=51883 DPT=3389 WINDOW=64240 RES=0x00 CWR ECE SYN URGP=0 [20092.000875] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:41:08:00 SRC=95.217.132.22 DST=172.xxx.yyy.zzz LEN=52 TOS=0x00 PREC=0x00 TTL=113 ID=41676 DF PROTO=TCP SPT=51883 DPT=3389 WINDOW=64240 RES=0x00 SYN URGP=0 [20117.283302] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:c1:08:00 SRC=124.156.241.62 DST=172.xxx.yyy.zzz LEN=40 TOS=0x08 PREC=0x00 TTL=238 ID=54321 PROTO=TCP SPT=46206 DPT=9997 WINDOW=65535 RES=0x00 SYN URGP=0 [20120.870817] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:41:08:00 SRC=202.141.249.180 DST=172.xxx.yyy.zzz LEN=48 TOS=0x00 PREC=0x00 TTL=110 ID=28320 DF PROTO=TCP SPT=53409 DPT=445 WINDOW=8192 RES=0x00 SYN URGP=0 [20129.579209] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:c1:08:00 SRC=185.176.27.110 DST=172.xxx.yyy.zzz LEN=40 TOS=0x00 PREC=0x00 TTL=243 ID=62492 PROTO=TCP SPT=56008 DPT=3334 WINDOW=1024 RES=0x00 SYN URGP=0 [20160.927205] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:c1:08:00 SRC=201.25.123.138 DST=172.xxx.yyy.zzz LEN=52 TOS=0x08 PREC=0x20 TTL=112 ID=9284 DF PROTO=TCP SPT=63427 DPT=445 WINDOW=8192 RES=0x00 SYN URGP=0 [20172.446500] FINAL_REJECT: IN=eth0 OUT= MAC=f2:3c:92:1f:88:72:84:78:ac:5a:19:41:08:00 SRC=198.46.135.194 DST=172.xxx.yyy.zzz LEN=40 TOS=0x00 PREC=0x00 TTL=244 ID=5662 PROTO=TCP SPT=41553 DPT=8423 WINDOW=1024 RES=0x00 SYN URGP=0
如何将所有丢弃的数据包记录到 /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
现在使用cat 命令/ grep 命令/ egrep 命令或 tail 命令
查看日志:
$ sudo tail -f /var/log/firewalld-droppd.log
相关另外,请查看我们针对Alpine Linux Awall、CentOS 8、OpenSUSE、RHEL 8、Debian 12/11、Ubuntu Linux 版本16.04 LTS / 18.04 LTS / 20.04 LTS和22.04 LTS 的
所有完整防火墙教程。
结论
使用firewalld 监控被拒绝和丢弃的数据包是 Linux 系统管理员的一项基本任务。它允许您避免安全问题并监控攻击。因此,我们必须在 RHEL/CentOS/Fedora 和 SUSE/OpenSUSE Linux 中使用firewalld 启用和记录丢弃的数据包。有关更多信息,请参阅firewalld文档。
- RHEL 8 防火墙
- CentOS 8 防火墙
- OpenSUSE 15.5 防火墙D
- 启用 FirewallD 日志记录拒绝的数据包