UFW日志分析,统计防火墙拦截访问来源:UFW日志分析

UFW 是 Ubuntu、Debian 上常用的防火墙管理工具,默认把拦截记录写入系统日志。
想统计防火墙拦截访问来源,核心就是找到 UFW 日志文件,用 grep 和 awk 按 IP、端口分组计数。
本文从开启日志到统计出高频来源 IP,一步步给出可复制的命令,适合刚接触 Linux 服务器的用户。

先确认日志有没有开,以及落在哪个文件

UFW 默认可能没记录日志,先检查状态:

sudo ufw status verbose

输出里如果看到 Logging: on,说明日志已开启;
如果显示 Logging: off,执行:

sudo ufw logging on

日志默认写入 /var/log/ufw.log。
部分系统会同时写入 /var/log/syslog 或 /var/log/kern.log。
确认文件存在:

ls -l /var/log/ufw.log

如果提示文件不存在,可以先触发一次拦截(例如从外部访问一个未开放端口),再看文件是否生成。

UFW 日志的典型格式如下,关键字段是 [UFW BLOCK] 和 SRC=:

Feb 20 10:12:01 server kernel: [UFW BLOCK] IN=eth0 OUT= SRC=203.0.113.10 DST=198.51.100.2 ... DPT=22

判断条件:只要日志行里包含 [UFW BLOCK],就表示这条访问被防火墙拦截了。

统计拦截来源 IP 和端口

先看被拦截次数最多的来源 IP,这是最常用的统计:

sudo grep 'UFW BLOCK' /var/log/ufw.log | grep -oP 'SRC=\K[0-9.]+' | sort | uniq -c | sort -rn | head -20

命令拆解:

  • grep 'UFW BLOCK':只取被拦截的行;
  • grep -oP 'SRC=\K[0-9.]+':提取 SRC= 后面的 IP;
  • sort | uniq -c:相同 IP 合并计数;
  • sort -rn:按次数从高到低排序;
  • head -20:只看前 20 个。

如果只想统计被攻击的目标端口,把提取字段换成 DPT:

sudo grep 'UFW BLOCK' /var/log/ufw.log | grep -oP 'DPT=\K[0-9]+' | sort | uniq -c | sort -rn | head -20

结果解读:某个 IP 在短时间内出现几十上百次,通常说明它在扫描或暴力尝试,可以根据实际情况决定是否封禁。

日志太大怎么办:按时间窗口和切割查看

ufw.log 会持续增长,直接全量 grep 可能很慢。
先看某个时间段的记录,例如只统计今天:

today=$(date '+%b %e')
sudo grep "^$today" /var/log/ufw.log | grep 'UFW BLOCK' | grep -oP 'SRC=\K[0-9.]+' | sort | uniq -c | sort -rn | head

长期运行建议配置 logrotate,让日志按天或按大小切割。
可以在 /etc/logrotate.d/ufw 中写入类似内容(具体保留天数按需调整):

/var/log/ufw.log {
    weekly
    rotate 4
    compress
    missingok
    notifempty
}

保存后可用 sudo logrotate -d /etc/logrotate.d/ufw 做一次调试演练,确认没有语法错误。

注意:日志切割后,历史记录会变成 ufw.log.1.gz 等压缩文件,统计旧数据时需要先 zcat 再 grep。

避免误判和误封

统计出高频 IP 后,不要急着全部拉黑,先确认它是不是正常业务来源。

  • 如果你自己或监控系统在频繁探测某个端口,也会出现在拦截记录里,误封可能影响运维;
  • 云厂商的健康检查、CDN 回源 IP 属于正常流量,最好先查清归属再判断;
  • 封禁前可以用 whois 或在线 IP 归属查询做一次核对,避免封掉合作方地址。

临时封禁某个 IP 可以执行:

sudo ufw deny from 203.0.113.10

删除规则用:

sudo ufw status numbered
sudo ufw delete <规则编号>

避坑提醒:UFW 规则过多时,ufw status 会变慢,建议定期清理无用规则,而不是无限叠加 deny 条目。

日常检查清单

把下面几条固化成巡检习惯,能更快发现问题:

  • 每天看一次拦截次数前 10 的来源 IP;
  • 关注被拦截的目标端口,SSH、数据库端口被高频扫描要重点留意;
  • 确认日志切割正常,避免磁盘被日志占满;
  • 封禁规则变更后,用 sudo ufw status verbose 复核实际生效状态。

只要掌握 UFW BLOCK 加 SRC= 这两个关键点,再配合 grep、sort、uniq -c,就能快速完成 UFW 日志分析和防火墙拦截访问来源统计。
建议先在一台测试机上跑通命令,再放到生产环境做巡检。

分享到:
上一篇
Fail2ban日志过滤,减少误封正常访客IP
下一篇
acme.sh部署证书到Nginx自动重载配置
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意