UFW日志级别默认low仅记录拒绝连接,日常防护推荐;medium可查放行流量,适合排查规则;high/full用于深度调试但需谨慎使用,调整后日志立即生效。

UFW日志级别怎么调才合适
UFW默认日志级别是low,只记录被拒绝的连接(如SSH暴力尝试、端口扫描),不记录放行流量。这个级别适合日常防护,日志量小、易读,但无法看到“为什么某个请求被允许”。
如果要排查规则是否生效、确认某服务是否真被放行,可临时切到medium:
sudo ufw logging medium
它会记录被允许的UDP包(比如DNS查询)和部分ICMP,兼顾信息量与性能。
更细粒度的场景(如调试自定义规则或分析异常协议行为)可用high或full,但要注意:
– high会记录所有允许的ICMP(如ping响应);
– full还会包含数据包长度、TTL、窗口大小等字段,日志体积增长快,建议仅在问题复现时开启几小时后及时切回。
调整后无需重启UFW,日志立即按新级别写入/var/log/ufw.log。
实时监控哪些日志字段能快速识别攻击
UFW日志每行以[UFW BLOCK]或[UFW ALLOW]开头,真正反映攻击意图的是后面几个关键字段:
- SRC=xxx.xxx.xxx.xxx:源IP。连续出现同一IP多次BLOCK,大概率是暴力破解或扫描;
- DPT=22(目的端口22):SSH爆破最常见目标,配合SYN标志(TCP新建连接)可确认是主动连接尝试;
- PROTO=TCP + SYN:表示三次握手第一步,大量SYN+不同DPT(如21/23/80/443)组合,基本就是端口扫描;
- LEN=40或极小包长:常出现在SYN Flood类攻击中,正常交互包通常更大;
- IN=eth0(或实际网卡名):确认是外网入站流量,排除内网误报。
这些字段不是孤立的——比如SRC=192.168.1.100 DPT=22 SYN单独看只是个连接请求,但若1分钟内出现50次,就该加限流规则了。
一行命令实现攻击行为实时告警
不用写脚本,用系统自带命令组合就能做到“边看边判”:
监控最近10分钟所有针对22端口的拒绝事件,并按源IP统计频次:
sudo journalctl --since "10 minutes ago" | grep "UFW BLOCK.*DPT=22" | awk '{print $8}' | sort | uniq -c | sort -nr | head -5输出类似:
47 SRC=203.124.56.78
12 SRC=115.98.22.13
只要第一行数字超过30,基本可判定为SSH爆破;超过50,建议立刻执行:
sudo ufw deny from 203.124.56.78
想持续盯屏?用tail -f配合grep过滤更直观:
sudo tail -f /var/log/ufw.log | grep "UFW BLOCK.*DPT=22.*SYN"
这条命令只刷出带SYN标志的22端口拦截,避免无关日志干扰判断。
结合其他工具做交叉验证
单看UFW日志可能漏掉关键线索,建议搭配以下操作:
- 查当前活跃连接:运行sudo ss -tun state syn-sent | head -10,看是否有大量半开连接(SYN_SENT状态),佐证是否遭遇SYN Flood;
- 看实时流量分布:安装iftop(sudo apt install iftop),运行sudo iftop -P tcp:22,直接观察哪个IP正在高频连接22端口;
- 核对规则是否真生效:执行sudo ufw status verbose,确认22端口规则是ALLOW且位置靠前(UFW规则从上往下匹配),避免因顺序问题导致误拦。
UFW本身不生成攻击画像,但把日志字段、时间窗口、外部工具三者串起来,就能在终端里完成一次轻量级入侵检测。










