温馨提示×

Ubuntu Sniffer如何检测DDoS攻击

小樊
34
2025-12-27 16:12:36
栏目: 云计算

Ubuntu Sniffer检测DDoS攻击的实用流程

一 工具与安装

  • 抓包与分析:tcpdump(命令行、轻量)、Wireshark(图形化、深度解析)
  • 实时带宽与连接:iftop(按主机/端口看速率)、nethogs(按进程看带宽)
  • 历史统计与基线:vnstat(记录与回看流量趋势)
  • 安装示例(Ubuntu 22.04):
    • sudo apt update && sudo apt install tcpdump wireshark iftop nethogs vnstat
    • sudo usermod -aG wireshark $USER && newgrp wireshark
    • sudo vnstat -u -i eth0(将 eth0 替换为你的实际接口)

二 快速检测流程

  • 步骤1 观察总体带宽是否异常
    • 运行:sudo iftop -i eth0
    • 判据:某单一来源或少量来源在短时间内占用异常高的带宽,或总带宽突增且持续,属于典型异常征兆。
  • 步骤2 抓包定位攻击类型
    • 保存现场:sudo tcpdump -i eth0 -w capture.pcap
    • 快速过滤示例:
      • 大量仅SYN的包(疑似 SYN Flood):sudo tcpdump -i eth0 ‘tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0’
      • 某主机的全部流量:sudo tcpdump -i eth0 host 192.168.1.100
      • 某端口流量:sudo tcpdump -i eth0 port 80
  • 步骤3 统计高频来源
    • 统计每个源IP的连接尝试数:sudo tcpdump -i eth0 -n -q | awk ‘{print $3}’ | cut -d. -f1-4 | sort | uniq -c | sort -nr
    • 判据:少数IP的连接数远高于基线,需重点关注。
  • 步骤4 图形化深入分析
    • Wireshark 打开 capture.pcap,使用显示过滤器:
      • tcp.syn == 1 and tcp.ack == 0(仅SYN)
      • 通过“统计 → 会话/端点/流量分布”查看异常主机、异常协议占比与突发会话。
  • 步骤5 关联进程与历史基线
    • 按进程排查:sudo nethogs -i eth0
    • 对比历史:vnstat 查看当日/当月带宽曲线,判断是否显著偏离常态。

三 常见DDoS特征与判别要点

  • 带宽型(如 UDP/ICMP Flood):iftop 显示总带宽或某IP带宽在短时间内急剧飙升,无明显业务对应。
  • 协议层(如 SYN Flood):tcpdump/Wireshark 中出现大量仅 SYN、缺少 ACK 的包;连接未完成三次握手却大量堆积。
  • 连接耗尽(如 ACK/RST Flood、连接表耗尽):会话/端点统计中出现异常多的半开或异常短连接,源IP分散但行为一致。
  • 应用层(如 HTTP Flood):针对 80/443 的并发请求数、请求速率与失败率异常升高,与正常访问画像不符。

四 告警与缓解建议

  • 轻量告警脚本思路
    • 阈值示例:1 分钟内仅 SYN 包超过 1000 即触发告警
    • 示例:sudo tcpdump -i eth0 -c 1000 ‘tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0’ | mail -s “SYN Flood Alertadmin@example.com
  • 处置要点
    • 抓包留证:先保存 pcap 再变更配置,便于溯源与复盘。
    • 联动防护:Sniffer 仅用于检测,无法直接“防止”攻击;结合 防火墙/清洗/上游限速 等手段处置,并制定应急流程与联系人清单。
  • 合法与性能
    • 仅在授权范围内抓包;抓包与深度解析会占用 CPU/磁盘/内存,建议限制接口、时间窗与过滤条件,必要时在离线环境分析。

0