首页主机资讯Linux防火墙日志怎样查看才有效

Linux防火墙日志怎样查看才有效

时间2025-11-17 17:50:04发布访客分类主机资讯浏览1159
导读:Linux防火墙日志高效查看与排查 一、先确认你的防火墙栈 查看是否使用 firewalld:sudo systemctl is-active firewalld(返回 active 表示在用)。 查看是否使用 iptables:sudo...

Linux防火墙日志高效查看与排查

一、先确认你的防火墙栈

  • 查看是否使用 firewalldsudo systemctl is-active firewalld(返回 active 表示在用)。
  • 查看是否使用 iptablessudo iptables -L -n -v(有规则即在使用)。
  • 查看 firewalld 简要规则:sudo firewall-cmd --list-all(仅对 firewalld 有效)。以上有助于选择对应的日志查看路径与命令。

二、iptables 日志查看与开启

  • 快速定位现有日志:
    • 传统 syslog 系统常把内核日志写入 /var/log/messages/var/log/syslogsudo grep -i iptables /var/log/messagessudo grep -i iptables /var/log/syslog
    • 使用 systemd 的系统也可通过内核日志查看:sudo journalctl -k | grep -i iptables
  • 主动记录被丢弃/拒绝的数据包(示例):
    • 创建专用链并限速,避免日志风暴:sudo iptables -N LOGGING
    • 记录并限频:sudo iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
    • 最后丢弃:sudo iptables -A LOGGING -j DROP
    • 按需挂接到 INPUT/OUTPUT/FORWARD 链的合适位置(例如 -I INPUT 1 放到最前,或放在具体业务规则之后)。
  • 将 iptables 日志单独落盘(便于切割与归档):
    • 编辑 rsyslog 配置(如 /etc/rsyslog.d/50-default.conf/etc/rsyslog.conf)增加:kern.* /var/log/iptables.log
    • 重启 rsyslog:sudo systemctl restart rsyslog
    • 建议加入 logrotate 策略(在 /etc/logrotate.d/ 中新增配置)以控制文件大小与保留周期。

三、firewalld 日志查看与开启

  • 服务运行日志(firewalld 自身的启动、重载、规则应用等):
    • 查看全部:sudo journalctl -u firewalld
    • 实时跟踪:sudo journalctl -u firewalld -f
    • 按时间筛选:sudo journalctl -u firewalld --since "2025-11-16 00:00:00" --until "2025-11-16 12:00:00"
    • 按级别筛选:sudo journalctl -u firewalld -p err(常用级别:err、warning、info、debug)。
  • 被拒数据包日志(关键):
    • 启用被拒日志:编辑 /etc/firewalld/firewalld.conf,设置 LogDenied=all(或 zones 配置中对应项),然后 sudo systemctl restart firewalld
    • 查看被拒日志:
      • 若系统将内核日志写入文件:sudo grep -i "DROP\|REJECT" /var/log/messagessudo grep -i "DROP\|REJECT" /var/log/syslog
      • 也可直接用:sudo journalctl -k | grep -i "DROP\|REJECT"
  • 日志级别与性能:
    • 调整 firewalld 日志级别:sudo firewall-cmd --set-log-level debug(仅在排障时临时使用,避免高负载)。
    • 清理历史 systemd 日志:sudo journalctl --vacuum-time 2weeks(保留近两周)。

四、高效分析与排障命令清单

  • 实时观察被拒流量:sudo tail -f /var/log/messages | egrep "DROP|REJECT|IPTables-Dropped",或 sudo journalctl -k -f | egrep "DROP|REJECT"
  • 按时间窗口定位:sudo journalctl -k --since "2025-11-16 10:00:00" --until "2025-11-16 10:05:00" | egrep "DROP|REJECT"
  • Top N 来源 IP:sudo grep -i "IPTables-Dropped" /var/log/syslog | awk '{ print $11} ' | sort | uniq -c | sort -nr | head
  • 聚焦某端口(如 22):sudo grep ":22 " /var/log/messages | egrep "DROP|REJECT"
  • 结合网络状态与抓包验证:ss -tnp | grep :22sudo tcpdump -ni any port 22,与日志交叉确认是否为规则或业务问题。

五、稳定性与性能建议

  • 给日志加“限速”与“专用前缀”:在 iptables LOG 规则中使用 --log-prefixlimit 模块,避免日志洪泛影响性能与磁盘。
  • 合理落盘与轮转:将 iptables 日志单独写入(如 /var/log/iptables.log),并配置 logrotate 按日/按大小切割与压缩归档。
  • 按需开启被拒日志:生产环境可长期开启 LogDenied=all(或至少对关键区域开启),排障期再临时提升 firewalld 日志级别到 debug,事后恢复。
  • 定期清理历史日志:使用 journalctl --vacuum-timelogrotate 策略,防止磁盘被占满。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux防火墙日志怎样查看才有效
本文地址: https://pptw.com/jishu/749142.html
Linux防火墙服务如何启动才稳定 Ubuntu Jenkins如何实现自定义脚本执行

游客 回复需填写必要信息