开启防火墙日志并用grep定位攻击特征需三步:先启用日志(ufw改loglevel、iptables加-j log规则、firewalld设--set-log-denied=all),再用grep按高辨识字段筛选(如failed password、drop、特定端口),最后用-i/-c/-v等技巧提升效率。

开启防火墙日志并用 grep 快速定位攻击特征,对新手来说不难,关键在于两步:先让系统“记下来”,再教它“挑重点”。下面分三块讲清楚。
确认并启用防火墙日志功能
不同防火墙启用方式不同,但核心都是打开日志记录开关:
-
UFW(Ubuntu/Debian 默认):编辑
/etc/ufw/ufw.conf,把LOGLEVEL="low"改为LOGLEVEL="high",然后运行sudo ufw reload。日志会自动写入/var/log/ufw.log。 -
iptables(通用底层):需手动添加带
-j LOG的规则。例如记录所有被拒绝的入站连接:sudo iptables -A INPUT -m state --state INVALID -j LOG --log-prefix "IPTables-DROP: "。日志默认进/var/log/syslog或/var/log/messages。 -
firewalld(CentOS/RHEL 默认):默认不记录详细日志。可启用内核日志模块:
sudo firewall-cmd --set-log-denied=all,之后用journalctl -u firewalld查看。
用 grep 快速筛出可疑行为
日志有了,下一步是精准抓取攻击线索。别一次性搜太多,按“高辨识度字段”优先原则来:
- 查暴力破解尝试:搜索失败登录关键词 + IP 提取
sudo grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | head -5 - 查高频拒绝记录(可能被扫描):
sudo grep "DROP\|REJECT" /var/log/ufw.log | awk '{print $NF}' | sort | uniq -c | sort -nr | head -10($NF取最后一列,通常是源IP) - 查特定端口异常访问(如 SSH、RDP):
sudo grep ":22\|:3389" /var/log/ufw.log | grep "DENY" - 查短时间大量连接(疑似 SYN Flood):
sudo grep "IN=" /var/log/ufw.log | sed -n '/2026-04-28 14:00:/,/2026-04-28 14:05:/p' | wc -l(先切时间段再统计)
几个实用小技巧帮你少走弯路
新手容易卡在“搜到了但看不懂”或“搜不到关键行”,这些习惯能立刻提升效率:
- 加
-i忽略大小写:grep -i "deny" /var/log/ufw.log,避免漏掉小写的deny或大写的DENY。 - 加
-C 2看上下文:grep -C 2 "192.168.1.100" /var/log/ufw.log,一眼看到该IP前后发生了什么。 - 用
-v过滤干扰项:grep "DROP" /var/log/ufw.log | grep -v "127.0.0.1",排除本地回环流量。 - 日志太大时,先用
tail -n 1000或sed -n '1000,2000p'截取片段再搜,避免卡死。











