ufw需联动/var/log/ufw.log、auth.log和syslog分析攻击行为;启用日志、确认路径与配置后,通过grep、awk筛选deny记录定位可疑ip及端口;结合auth.log验证是否突破,并用fail2ban自动封禁。

UFW本身不直接记录“谁在尝试访问”,但它配合系统日志能清晰还原非法访问行为。关键不是只看UFW日志,而是把/var/log/ufw.log、/var/log/auth.log和/var/log/syslog三类日志联动分析,才能准确定位攻击源、方式和意图。
先确认UFW是否真在拦截并记录
很多排查失败,是因为日志根本没开或路径被改:
- 执行
sudo ufw logging on确保日志已启用(默认级别low足够审计) - 检查
/etc/ufw/ufw.conf中LOGLEVEL是否为low、medium或high(避免设成off) - 确认
/var/log/ufw.log存在且有最近写入:运行sudo ls -l /var/log/ufw.log和sudo tail -n 5 /var/log/ufw.log - 若该文件为空但
sudo ufw status verbose显示Logging: on,说明日志可能被rsyslog重定向——检查/etc/rsyslog.d/下是否有自定义ufw配置
从UFW日志快速定位可疑连接
/var/log/ufw.log里每条记录都含时间、动作(ALLOW/DENY)、协议、源IP、目的端口等字段。重点筛以下几类:
-
sudo grep "DENY" /var/log/ufw.log | grep "tcp" | grep ":22"→ 查SSH端口被拒的全部尝试(暴力破解高发区) -
sudo grep "DENY" /var/log/ufw.log | awk '{print $6}' | sort | uniq -c | sort -nr | head -10→ 统计被拒次数最多的前10个源IP -
sudo grep "DPT=3389\|DPT=445\|DPT=139" /var/log/ufw.log→ 检查Windows相关高危端口(如RDP、SMB)是否被扫描 - 用
sudo tail -f /var/log/ufw.log实时盯屏,看到连续多条同IP+同端口DENY,基本可判定为自动化扫描
交叉验证:auth.log确认是否已突破
UFW拦住的是“连接请求”,而auth.log记录的是“认证过程”。两者对照,能看出攻击是否得手:
- 若某IP在
ufw.log中大量DENYSSH,又在auth.log中出现对应Failed password,说明正在暴力破解 - 若同一IP在
auth.log中突然出现Accepted password,而此前UFW并未放行该IP → 可能规则漏配,或攻击者用了白名单IP - 搜索
sudo grep "Invalid user\|Failed password" /var/log/auth.log | grep -E "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{1,2} [0-9]{2}:[0-9]{2}",按时间排序看攻击节奏
用fail2ban自动响应+留痕
单靠人工盯日志效率低,fail2ban能自动封禁并记录动作:
- 安装后启用:
sudo apt install fail2ban && sudo systemctl enable --now fail2ban - 它默认监控
auth.log,检测到5次失败登录就调用ufw封IP(规则存于/etc/fail2ban/jail.local) - 封禁记录在
/var/log/fail2ban.log,例如2026-03-25 19:22:17,123 INFO [sshd] Ban 192.168.123.45 - 被封IP也会出现在UFW规则中:
sudo ufw status numbered里能看到类似Anywhere DENY 192.168.123.45的规则










