Ubuntu防火墙日志查看与分析指南
Ubuntu系统中,防火墙日志是监控网络流量、识别安全威胁的核心工具。主流防火墙工具(UFW、iptables)的日志查看与分析方法如下:
UFW(Uncomplicated Firewall)是Ubuntu默认的简化防火墙工具,其日志管理便捷,适合大多数用户场景。
默认情况下,UFW可能未开启日志功能。通过以下命令启用:
sudo ufw logging on
如需调整日志详细程度,可使用logging命令设置级别(low/medium/high/full),例如:
sudo ufw logging medium # 记录常规连接信息,平衡性能与详细度
UFW日志默认存储在/var/log/ufw.log。常用查看命令:
sudo tail -f /var/log/ufw.log(实时刷新,适合监控实时流量)sudo cat /var/log/ufw.log(一次性显示全部内容,适合离线分析)UFW日志也会同步到系统日志(journalctl),可通过以下命令查看:
sudo journalctl -u ufw # 查看UFW服务启动以来的所有日志
sudo journalctl -u ufw -f # 实时监控UFW日志
/etc/ufw/ufw.conf,找到logfile选项并修改(如logfile = /var/log/my_ufw.log),重启UFW生效。/etc/rsyslog.d/50-default.conf,添加:msg, contains, "UFW " -/var/log/ufw_all.log,然后重启rsyslog服务。若系统使用iptables(UFW底层依赖的工具),需通过以下步骤查看日志:
使用LOG目标添加日志规则,例如记录所有INPUT链的流量:
sudo iptables -A INPUT -j LOG
如需添加日志前缀(方便过滤),可使用--log-prefix:
sudo iptables -A INPUT -j LOG --log-prefix "** SUSPECT INPUT **"
为避免日志过多,建议限制日志级别(如--log-level 4,对应warning级别)。
iptables日志默认存储在/var/log/kern.log(Ubuntu)或/var/log/syslog(Debian)。常用命令:
sudo tail -f /var/log/kern.log | grep "LOG"(过滤出LOG记录)sudo grep "** SUSPECT INPUT **" /var/log/kern.log(快速定位可疑流量)查看日志后,需通过关键词和工具提取关键信息:
sudo grep "BLOCK" /var/log/ufw.log | awk '{print $8}' | sort | uniq -c | sort -nr(统计被阻止的IP次数,找出高频攻击源)sudo grep "DPT=22" /var/log/ufw.log(查看SSH端口(22)的连接记录,排查暴力破解)sudo awk '/UFW BLOCK/ {print $1,$2,$8,$10,$11,$12}' /var/log/ufw.log(提取时间、源IP、目的IP、端口等信息,格式化输出)BLOCK记录,且源IP不同(如针对SSH端口22的多次失败登录)。DENY记录(如DPT=22、DPT=80、DPT=443等)。root用户,需使用sudo查看。ufw.log.1、ufw.log.2.gz),避免单个日志文件过大。可通过logrotate工具调整轮转策略。