新手配置Linux防火墙日志并用AWK分析流量需三步:先手动添加LOG规则使防火墙记录关键事件,再确认日志路径(iptables走syslog/messages、firewalld用journalctl、ufw有专属日志),最后用AWK提取统计,如抽源IP频次定位扫描者。

新手配置Linux防火墙日志并用AWK分析流量,核心是三步:先让防火墙把关键动作记下来,再找到日志在哪,最后用AWK快速提取、统计、定位问题。不复杂但容易忽略细节。
让防火墙开始记录关键事件
默认很多防火墙不主动打日志,得手动加规则:
-
iptables 用户:在 INPUT 或 FORWARD 链末尾加一条 log 规则,比如
sudo iptables -A INPUT -j LOG --log-prefix "FW-DROP: " --log-level 4
这样所有被丢弃的包都会带前缀写入系统日志,方便后续筛选。 -
firewalld 用户:直接启用拒绝日志
sudo firewall-cmd --set-log-denied=all
它会自动记录所有被拒绝的连接,日志走 journalctl,不用改 rsyslog 配置。 - 注意:避免在高流量链上无条件全开 LOG,可能压垮日志服务;建议先对特定端口或协议加 log,比如只记录外部对 22/80/443 的 DROP 行为。
确认日志位置并实时查看
不同防火墙输出路径不一样,别盲目翻 /var/log/messages:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
iptables + rsyslog:日志通常进
/var/log/syslog(Ubuntu/Debian)或/var/log/messages(CentOS/RHEL),可用sudo tail -f /var/log/syslog | grep "FW-DROP"
实时盯住你刚加的前缀。 -
firewalld:用 journalctl 查更准
sudo journalctl -u firewalld -f | grep denied -
ufw 用户:直接看专属日志
sudo tail -f /var/log/ufw.log
用 AWK 快速做实用分析
AWK 不用写脚本也能干实事,记住几个高频组合:
-
抽源IP并统计频次(找扫描IP):
sudo grep "FW-DROP" /var/log/syslog | awk '{for(i=1;i<br> 它逐行扫 SRC= 字段,截掉前4字符,再排序去重计数,输出前10个最可疑IP。 -
看哪些端口被频繁拒绝:
sudo grep "FW-DROP" /var/log/syslog | awk '{for(i=1;i -
按小时汇总 DROP 数量(观察攻击时段):
sudo grep "FW-DROP" /var/log/syslog | awk '{print $1,$2,$3}' | awk '{print $1,$2,$3}' | cut -d: -f1 | sort | uniq -c
前半段取时间字段,后半段切出小时,再计数。
小技巧提升效率
日志多了以后,原始命令会变慢,可以提前准备:
- 把常用分析逻辑写成 alias,比如加到
~/.bashrc:alias fwtopip='sudo grep "FW-DROP" /var/log/syslog | awk ...' - 用
awk -F'=' '{print $2}'替代手工 substr,更稳定(前提是日志格式统一)。 - 发现某个 IP 异常多,立刻封禁:
sudo iptables -I INPUT -s 192.168.100.50 -j DROP

















