温馨提示×

ubuntu防火墙日志分析

小樊
46
2025-11-23 01:03:48
栏目: 智能运维

Ubuntu 防火墙日志分析实用指南

一 日志来源与存放位置

  • UFW(Uncomplicated Firewall):日志默认写入 /var/log/ufw.log,启用日志可用 sudo ufw logging on,日志级别可为 low/medium/high/full(默认 low)。UFW 日志以 [UFW BLOCK][UFW ALLOW] 开头,便于快速筛选。
  • iptables/nftables:内核 Netfilter 日志通常写入 /var/log/kern.log(Ubuntu/Debian),也可在 /var/log/syslog 中检索;通过规则中的 -j LOGlog 语句输出,建议加 –log-prefix 便于过滤。
  • firewalld:服务日志通过 journalctl -u firewalld 查看;被拒绝的数据包可在 /etc/firewalld/firewalld.conf 中将 LogDenied=all 后重启服务以记录。
  • 系统日志常用路径/var/log/syslog、/var/log/kern.log、/var/log/messages 等,配合 tail、grep、less 等命令进行查看与检索。

二 快速定位与实时监控

  • 实时查看 UFW 日志:tail -f /var/log/ufw.log
  • 实时查看内核/iptables 日志:tail -f /var/log/kern.log | grep -i “UFW\|iptables”
  • 查看 firewalld 服务日志:journalctl -u firewalld -f
  • 按时间窗口检索:journalctl --since “2025-11-23 10:00:00” --until “2025-11-23 12:00:00” -u firewalld
  • 按关键字过滤:grep “UFW BLOCK” /var/log/ufw.log 或 grep “DPT=22” /var/log/kern.log
  • 组合条件示例:查找过去 10 分钟所有被 UFW 拒绝的 TCP 22 端口尝试
    • journalctl --since “10 minutes ago” -u firewalld | grep “UFW BLOCK” | grep “DPT=22
    • grep “UFW BLOCK” /var/log/ufw.log | grep “DPT=22” | tail -n 50

三 日志字段解读与示例

  • 典型 UFW 日志行(/var/log/ufw.log):
    • 示例:Sep 16 15:08:14 hostname kernel: [UFW BLOCK] IN=eth0 OUT= MAC=… SRC=123.45.67.89 DST=987.65.43.21 LEN=40 TTL=249 ID=8475 PROTO=TCP SPT=48247 DPT=22 WINDOW=1024 RES=0x00 SYN URGP=0
    • 关键字段含义:
      • [UFW BLOCK/ALLOW]:事件类型(拦截/放行)
      • IN/OUT:入站/出站方向
      • SRC/DST:源/目的 IP
      • PROTO:协议(TCP/UDP/ICMP 等)
      • SPT/DPT:源/目的端口
      • LEN/TTL:包长度/生存时间
      • SYN:TCP SYN 标志(常见于新连接尝试)
  • 这些字段可用于快速判断是否为端口扫描、暴力登录、异常协议访问等。

四 常用分析命令与处置建议

  • 统计与定位
    • 统计被拒来源 Top 10:grep “UFW BLOCK” /var/log/ufw.log | awk ‘{print $8}’ | sort | uniq -c | sort -nr | head
    • 按端口统计被拒:grep “UFW BLOCK” /var/log/ufw.log | awk -F’DPT=’ ‘{print $2}’ | awk ‘{print $1}’ | sort -n | uniq -c | sort -nr
    • 查找某 IP 的所有拦截记录:grep “SRC=1.2.3.4” /var/log/ufw.log
    • 观察新连接速率(近 1 分钟):journalctl --since “1 minute ago” -u firewalld | grep “UFW BLOCK” | wc -l
  • 处置动作(示例)
    • 临时封禁单个 IP:sudo ufw deny from 1.2.3.4
    • 封禁子网:sudo ufw deny from 203.0.113.0/24
    • 重载规则:sudo ufw reload
    • 调整日志级别(减少/增加日志量):sudo ufw logging medium|high
  • 可视化与告警
    • 使用 Logwatch/GoAccess 生成日报/趋势图;结合 journalctlrsyslog 做集中化与长期留存。

五 日志轮转与性能优化

  • 日志量较大时优先调整 UFW 日志级别(low/medium/high/full),避免记录过多包级细节;必要时仅对关键链/端口记录。
  • 确保 logrotate 正常运行,对 /var/log/ufw.log、/var/log/kern.log、/var/log/syslog 进行按日/按大小轮转与压缩,防止磁盘被占满。
  • 高并发场景建议将防火墙日志接入集中式日志平台(如 rsyslog/ELK/Graylog),便于检索、告警与审计。

0