温馨提示×

Ubuntu防火墙如何日志分析

小樊
38
2025-12-26 11:51:06
栏目: 智能运维

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

一 日志位置与启用

  • 使用 UFW 时,先开启日志,日志默认写入 /var/log/ufw.log;UFW 是 Ubuntu 的默认防火墙前端,便于规则管理与审计。
    命令示例:
    sudo ufw logging on
    sudo tail -f /var/log/ufw.log
    如未生成日志,检查是否被 rsyslog 配置写入到 /var/log/syslog/var/log/kern.log。UFW 规则与状态可用 sudo ufw status verbose 查看。
  • 使用 iptables/nftables 时,建议创建专用日志链并加前缀,便于检索;日志通常进入内核/系统日志。
    命令示例:
    sudo iptables -N LOGGING
    sudo iptables -A INPUT -j LOGGING
    sudo iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
    sudo iptables -A LOGGING -j DROP
    查看方式:
    sudo tail -f /var/log/kern.log
    sudo tail -f /var/log/syslog
    提示:UFW 本质基于 iptables/nftables,开启 UFW 后也可用上述路径查看对应日志。

二 快速定位与常用命令

  • 实时监控与检索
    • 实时看 UFW 日志:tail -f /var/log/ufw.log
    • 实时看内核/系统日志:tail -f /var/log/kern.log 或 tail -f /var/log/syslog
    • 按时间筛选:journalctl --since “2025-12-26 00:00:00” -f
    • 按关键字过滤:grep “IPTables-Dropped” /var/log/kern.log
  • 统计 Top N 来源 IP(iptables 前缀示例)
    • 提取被丢弃包的源 IP 并计数:
      grep “IPTables-Dropped” /var/log/kern.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr | head
    • 说明:字段位置会随日志格式略有差异,必要时用 awk 调整列号或用正则匹配 SRC= 后的 IP。
  • 按端口/协议快速筛查
    • 查看某端口相关的拒绝日志:grep ":22 " /var/log/ufw.log 或 grep “dpt:22” /var/log/ufw.log
    • 结合协议筛选:grep “PROTO=TCP” /var/log/kern.log。

三 进阶分析场景

  • 识别扫描与暴力尝试
    • 统计单 IP 的连接尝试次数(示例为 iptables 前缀日志):
      grep “IPTables-Dropped” /var/log/kern.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr | head
    • 关联认证失败与防火墙拒绝,定位暴力来源:
      grep “Failed password” /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr
      grep “IPTables-Dropped” /var/log/kern.log | grep ":22 " | awk ‘{print $11}’ | sort | uniq -c | sort -nr
  • 时间窗口分析
    • 统计最近 10 分钟内的拒绝趋势:
      journalctl --since “10 minutes ago” | grep “IPTables-Dropped” | wc -l
    • 将日志时间对齐(例如转换为 UTC 或本地时区)后再做跨日志关联,有助于排查瞬时峰值与联动事件。
  • 字段提取与模式匹配
    • 当日志格式不固定时,用正则从“SRC=”“DPT=”等字段提取 IP 与端口,再用 sort | uniq -c 汇总,能稳定得到 Top N 源/目的。

四 可视化与告警

  • 集中化与可视化
    • 使用 rsyslog/syslog-ng 将日志统一收集到中央服务器,便于审计与留存。
    • 使用 ELK Stack(Elasticsearch, Logstash, Kibana)Graylog 做索引、可视化与仪表盘,结合规则实现趋势分析与异常告警。
  • 报表与阈值告警
    • 采用 Logwatch 生成每日/每周安全与防火墙报告,并通过邮件发送摘要。
    • 使用 Swatch 对关键模式(如 DROP/REJECT 前缀)进行实时监控与自定义动作(邮件、封禁脚本等)。

五 日志治理与加固

  • 控制日志量与保留策略
    • 为 iptables 日志加 limit 限速,避免日志洪泛:
      -m limit --limit 2/min(可按需调整为 5/min 等)。
    • 配置 logrotate 定期轮转与压缩(/etc/logrotate.conf 与 /etc/logrotate.d/),防止磁盘被占满。
  • 安全与合规
    • 限制日志文件权限(如 640,属主 root:adm),避免泄露敏感信息;必要时对归档与传输链路进行加密。
    • 对多台主机采用集中式日志存储,降低本地篡改风险。

0