使用 Linux Sniffer 检测恶意流量的实用流程
一 工具选型与部署
- 抓包与离线分析
- 使用 tcpdump 进行快速抓包与过滤,并将结果写入 pcap 文件以便后续分析。
- 使用 Wireshark 进行图形化深度分析,适合排查可疑会话与协议细节。
- 实时检测与联动
- 部署 Snort 或 Suricata(开源 IDS/IPS),通过规则引擎识别攻击特征,并可联动防火墙进行阻断。
- 辅助观测
- 结合 iftop、NetHogs 观察带宽占用与进程级流量,快速定位异常主机或应用。
二 快速上手 tcpdump 捕获与过滤
- 基础捕获
- 捕获指定接口:sudo tcpdump -i eth0
- 捕获所有接口:sudo tcpdump -i any
- 写入文件便于离线分析
- sudo tcpdump -i eth0 -w capture.pcap
- 常用过滤表达式
- 按端口:sudo tcpdump -i eth0 port 80
- 按主机:sudo tcpdump -i eth0 host 192.0.2.10
- 按协议:sudo tcpdump -i eth0 proto icmp
- 建议做法
- 先短时抓包并保存为 pcap,再用 Wireshark 进行详细解析与重放分析。
三 典型恶意流量的识别方法
- DDoS 与异常流量
- 现象:出现大量相似请求、特定端口被高频访问、带宽突增。
- 抓包侧重点:统计 SYN 洪泛、UDP 小包洪泛、异常 ICMP 洪泛等;观察 pps/带宽 的突发曲线。
- Web 攻击特征
- 在 HTTP 流量中检索可疑字符串,如 ’ OR 1=1、UNION SELECT、、alert( 等,定位 SQL 注入 与 XSS 尝试。
- 可疑外联与恶意软件通信
- 关注异常 DNS 查询(长随机子域、DGA 特征)、非常规端口的 TCP/UDP 外联、周期性 beacon 心跳流量。
- 隐蔽性与对抗
- 攻击者可能使用 加密 或 伪造源 IP 等手段,单靠抓包难以定性,需与 IDS/IPS 和行为分析结合。
四 实时检测与联动处置
- 使用 Snort/Suricata 实时识别
- 部署 Snort 或 Suricata,在 /etc/snort/rules/local.rules 或 /etc/suricata/rules/local.rules 中添加自定义规则,开启引擎进行在线检测。
- 与防火墙联动阻断
- 将检测到的恶意源/目的通过 iptables 或 firewalld 加入黑名单,实现自动阻断与缓解(适用于 DDoS 与扫描等场景)。
- 取证与复盘
- 保留 pcap 证据,结合 Wireshark 细查握手过程、载荷内容与时间线,完善事件报告。
五 操作规范与性能建议
- 合法合规
- 仅在授权范围内抓包与分析,避免侵犯隐私或触犯法律。
- 性能与稳定性
- 合理设置抓包过滤与文件切分,避免高负载;对大流量链路建议采用 端口镜像/TAP 分流到专用分析主机。
- 工具互补
- 将 Sniffer 与 IDS/IPS、沙箱、行为分析/机器学习工具组合,提升对未知威胁的发现能力。