新手配置linux防火墙日志并用awk分析流量的核心三步是:一、iptables用log规则前置并加--log-prefix,firewalld启用--set-log-denied=all;二、iptables日志查/var/log/syslog或/messages,firewalld用journalctl或配rsyslog输出到文件;三、用awk提取src字段、统计ip频次、排序去重。

新手配置Linux防火墙日志并用awk分析流量,核心就三步:先让防火墙“开口说话”,再把日志找出来,最后用awk“挑重点、算次数、理线索”。不复杂但容易忽略细节。
一、让防火墙开始记日志
不同防火墙工具启用方式不同,选对方法才能看到有效记录:
-
iptables用户:在DROP规则前插入LOG规则,例如
sudo iptables -A INPUT -j LOG --log-prefix "FW-DROP: " --log-level 6
注意必须加--log-prefix,否则后续grep筛选会很吃力;规则要放在REJECT/DROP之前,否则没机会记录。 -
firewalld用户:默认不记拒绝日志,需主动开启
sudo firewall-cmd --permanent --set-log-denied=all && sudo firewall-cmd --reload
验证是否生效:sudo firewall-cmd --get-log-denied 应返回all。
二、定位日志文件位置
日志不是随便扔在哪的,得知道去哪翻:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
iptables日志默认写入系统日志:
Ubuntu/Debian 看 /var/log/kern.log 或 /var/log/syslog
CentOS/RHEL 看 /var/log/messages -
firewalld日志走journal,推荐用:
sudo journalctl -u firewalld -n 50 --no-pager
若想单独存为/var/log/firewalld.log,需配置rsyslog(在/etc/rsyslog.d/firewalld.conf中添加kern.* /var/log/firewalld.log,再重启rsyslog)。
三、用awk快速提取关键信息
原始日志是大段文本,awk帮你“切字段、筛IP、统次数”:
- 从iptables日志中提取被拒绝的源IP(假设日志含SRC=192.168.1.100):
sudo grep "FW-DROP" /var/log/syslog | awk '{for(i=1;i - 统计firewalld拒绝连接中出现最多的10个目标端口(日志含DPT=22):
sudo journalctl -u firewalld | grep "FINAL_REJECT" | awk '{for(i=1;i - 一行命令生成“源IP → 协议/端口”格式(便于人工排查):
sudo grep "FW-DROP" /var/log/syslog | awk '{ip=""; port=""; proto=""; for(i=1;i
四、日常分析小技巧
别等出事才翻日志,养成几个轻量习惯:
- 用tail -f /var/log/syslog | grep FW-DROP实时盯住新拒绝记录
- 把常用awk命令保存成脚本,比如/usr/local/bin/fw-topip,赋予权限后直接运行
- 结合date限制时间范围,避免全盘扫描:
sudo grep "$(date +%b\ %d)" /var/log/syslog | grep FW-DROP | ...










