news 2026/7/12 11:34:43

Firewalld 日志配置 3 步实战:从默认关闭到独立日志文件(附 rsyslog 规则)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Firewalld 日志配置 3 步实战:从默认关闭到独立日志文件(附 rsyslog 规则)

Firewalld 日志配置 3 步实战:从默认关闭到独立日志文件(附 rsyslog 规则)

在 Linux 服务器运维中,防火墙日志是排查网络问题、分析安全事件的重要依据。然而 Firewalld 默认关闭日志记录功能,且日志混杂在系统消息文件中,给日常运维带来诸多不便。本文将手把手带你完成 Firewalld 日志从零配置的全流程,重点解决三个核心问题:如何启用日志记录?如何分离日志到独立文件?如何验证配置生效?

1. 理解 Firewalld 日志机制

Firewalld 作为 RHEL/CentOS 等主流 Linux 发行版的默认防火墙解决方案,其日志系统设计有以下几个特点:

  • 默认关闭策略:出于性能考虑,新安装的系统不会记录被拒绝的连接请求
  • 四级粒度控制:支持按单播(unicast)、广播(broadcast)、组播(multicast)或全部(all)类型记录
  • 内核级日志:通过内核的 netfilter 框架生成日志,原始日志默认写入/var/log/messages
  • 动态生效:多数配置变更无需重启服务,通过--reload即可应用

实际生产环境中,我们通常需要记录所有被拒绝的访问(all),同时将日志分离到独立文件。这既便于日志分析,也能避免系统日志文件过快膨胀。

2. 配置日志记录功能

2.1 检查当前日志状态

在开始配置前,先确认系统的当前日志设置:

# 查看当前日志记录级别 firewall-cmd --get-log-denied # 检查配置文件默认值 grep LogDenied /etc/firewalld/firewalld.conf

若输出为off或配置文件中显示LogDenied=off,则表示日志功能未启用。

2.2 设置日志记录级别

Firewalld 提供四种日志记录粒度:

参数值记录内容适用场景
all所有被拒绝的连接安全审计等需要完整记录的场景
unicast仅记录单播包(常见于常规网络通信)默认推荐配置
broadcast仅记录广播包特殊网络环境调试
multicast仅记录组播包组播应用调试

设置方法(以 all 为例):

# 临时生效(重启后失效) firewall-cmd --set-log-denied=all # 永久生效 firewall-cmd --set-log-denied=all --permanent firewall-cmd --reload

提示:生产环境中如果性能敏感,建议先用unicast级别测试,再根据实际情况调整。

2.3 验证配置

执行以下命令确认配置已生效:

# 检查运行时状态 firewall-cmd --get-log-denied # 查看内核日志(新开终端) tail -f /var/log/messages | grep -i reject

此时如果从外部访问被拒绝的端口,应该能在日志中看到类似记录:

IN=eth0 OUT= MAC=... SRC=192.168.1.100 DST=192.168.1.1 LEN=60 ... PROTO=TCP SPT=54321 DPT=22

3. 分离日志到独立文件

默认日志混杂在系统消息中,长期运行会导致文件过大。下面通过 rsyslog 实现日志分离。

3.1 创建 rsyslog 配置

新建/etc/rsyslog.d/firewalld.conf文件,内容如下:

# 捕获 DROP 和 REJECT 动作的日志 :msg, contains, "_DROP" /var/log/firewalld.log & stop :msg, contains, "_REJECT" /var/log/firewalld.log & stop

关键配置说明:

  • contains匹配内核日志中的特定字符串
  • & stop表示匹配后停止后续处理
  • 文件路径可根据需要修改,确保目录存在且有写入权限

3.2 设置日志轮转

创建/etc/logrotate.d/firewalld配置文件:

/var/log/firewalld.log { daily missingok rotate 7 compress delaycompress notifempty create 0600 root root }

3.3 应用配置

# 重启 rsyslog 服务 systemctl restart rsyslog # 测试配置(在新终端执行) logger -t kernel "TEST _REJECT message" # 验证日志文件 tail -f /var/log/firewalld.log

4. 高级应用与排错

4.1 日志分析技巧

获取被拒绝最多的 IP 地址:

grep 'FINAL_REJECT' /var/log/firewalld.log | awk '{print $10}' | sort | uniq -c | sort -nr | head -10

实时监控关键端口访问:

tail -f /var/log/firewalld.log | grep -E 'DPT=(80|443|22)'

4.2 常见问题解决

问题1:日志文件未创建

  • 检查 rsyslog 服务状态:systemctl status rsyslog
  • 验证配置语法:rsyslogd -N1
  • 检查目录权限:ls -ld /var/log/

问题2:日志记录不全

  • 确认 firewalld 日志级别:firewall-cmd --get-log-denied
  • 检查内核日志缓冲:dmesg | grep -i reject
  • 临时提高日志级别:echo "module nf_log_ipv4 +p" > /sys/kernel/debug/dynamic_debug/control

问题3:性能影响显著

  • 调整日志级别为 unicast
  • 限制日志速率:firewall-cmd --set-log-denied-rate=5/60s
  • 使用专门的日志服务器集中处理

5. 安全加固建议

完成基础配置后,建议进一步优化:

  1. 日志文件权限

    chmod 600 /var/log/firewalld.log chown root:root /var/log/firewalld.log
  2. 日志归档策略

    • 重要环境建议日志保留至少 90 天
    • 使用 ELK 或 Graylog 等工具集中管理
  3. 自动化响应

    # 示例:自动封禁频繁尝试的 IP grep 'FINAL_REJECT' /var/log/firewalld.log | awk '{print $10}' | sort | uniq -c | awk '$1 > 10 {print $2}' | xargs -I {} firewall-cmd --add-rich-rule='rule family="ipv4" source address="{}" reject'
  4. 性能监控指标

    • 日志生成速率:grep -c FINAL_REJECT /var/log/firewalld.log
    • 日志文件大小:du -h /var/log/firewalld.log

这套配置已在 CentOS 7/8 和 RHEL 7/8 环境中验证通过,适用于物理机、虚拟机及容器环境。根据实际网络流量调整日志级别和轮转策略,可在安全审计和系统性能间取得平衡。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 11:31:14

5分钟掌握AI换脸神器:roop-unleashed零门槛深度伪造指南

5分钟掌握AI换脸神器:roop-unleashed零门槛深度伪造指南 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 你是否曾想过像电影特效师一样轻松实现…

作者头像 李华
网站建设 2026/7/12 11:30:12

如何用多层架构设计打造稳定的自定义固件系统?

如何用多层架构设计打造稳定的自定义固件系统? 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 还在为复杂的系统定制而头疼吗?一个精心设计的固件架构能让你告别碎片…

作者头像 李华
网站建设 2026/7/12 11:29:20

2026年爆火的AI智能体工程师岗位解析|零基础小白程序员转型攻略

本文介绍了AI智能体工程师这一新兴岗位,阐述了其与传统AI工具的区别,并通过实例展示了AI智能体在业务中的应用价值。文章还分析了2026年该岗位火爆的原因,包括技术成熟、企业需求增加和薪资飙升。最后,提出了成为AI智能体工程师的…

作者头像 李华
网站建设 2026/7/12 11:27:18

Elixir v1.20:当动态语言学会“思考”,渐进式类型的全新里程碑

Elixir v1.20:当动态语言学会“思考”,渐进式类型的全新里程碑 在编程语言的发展长河中,动态类型与静态类型仿佛是两个永不相交的平行宇宙。动态语言以其灵活性和开发效率著称,而静态语言则以安全性和性能见长。然而,2…

作者头像 李华
网站建设 2026/7/12 11:27:12

MapReduce 性能调优实战:从3个案例看Shuffle与Combiner优化策略

MapReduce 性能调优实战:从3个案例看Shuffle与Combiner优化策略在大规模数据处理领域,MapReduce 作为经典分布式计算框架,其性能优化一直是工程师关注的焦点。本文将深入剖析三个典型场景下的性能瓶颈,聚焦 Shuffle 阶段的数据传输…

作者头像 李华