Linux防火墙日志怎样查看才有效
导读:Linux防火墙日志高效查看与排查 一、先确认你的防火墙栈 查看是否使用 firewalld:sudo systemctl is-active firewalld(返回 active 表示在用)。 查看是否使用 iptables:sudo...
Linux防火墙日志高效查看与排查
一、先确认你的防火墙栈
- 查看是否使用 firewalld:
sudo systemctl is-active firewalld(返回 active 表示在用)。 - 查看是否使用 iptables:
sudo iptables -L -n -v(有规则即在使用)。 - 查看 firewalld 简要规则:
sudo firewall-cmd --list-all(仅对 firewalld 有效)。以上有助于选择对应的日志查看路径与命令。
二、iptables 日志查看与开启
- 快速定位现有日志:
- 传统 syslog 系统常把内核日志写入 /var/log/messages 或 /var/log/syslog:
sudo grep -i iptables /var/log/messages或sudo grep -i iptables /var/log/syslog。 - 使用 systemd 的系统也可通过内核日志查看:
sudo journalctl -k | grep -i iptables。
- 传统 syslog 系统常把内核日志写入 /var/log/messages 或 /var/log/syslog:
- 主动记录被丢弃/拒绝的数据包(示例):
- 创建专用链并限速,避免日志风暴:
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/ 中新增配置)以控制文件大小与保留周期。
- 编辑 rsyslog 配置(如 /etc/rsyslog.d/50-default.conf 或 /etc/rsyslog.conf)增加:
三、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/messages或sudo grep -i "DROP\|REJECT" /var/log/syslog - 也可直接用:
sudo journalctl -k | grep -i "DROP\|REJECT"。
- 若系统将内核日志写入文件:
- 启用被拒日志:编辑 /etc/firewalld/firewalld.conf,设置
- 日志级别与性能:
- 调整 firewalld 日志级别:
sudo firewall-cmd --set-log-level debug(仅在排障时临时使用,避免高负载)。 - 清理历史 systemd 日志:
sudo journalctl --vacuum-time 2weeks(保留近两周)。
- 调整 firewalld 日志级别:
四、高效分析与排障命令清单
- 实时观察被拒流量:
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 :22、sudo tcpdump -ni any port 22,与日志交叉确认是否为规则或业务问题。
五、稳定性与性能建议
- 给日志加“限速”与“专用前缀”:在 iptables LOG 规则中使用
--log-prefix与limit模块,避免日志洪泛影响性能与磁盘。 - 合理落盘与轮转:将 iptables 日志单独写入(如 /var/log/iptables.log),并配置 logrotate 按日/按大小切割与压缩归档。
- 按需开启被拒日志:生产环境可长期开启
LogDenied=all(或至少对关键区域开启),排障期再临时提升 firewalld 日志级别到 debug,事后恢复。 - 定期清理历史日志:使用
journalctl --vacuum-time或logrotate策略,防止磁盘被占满。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux防火墙日志怎样查看才有效
本文地址: https://pptw.com/jishu/749142.html
