Linux Sniffer如何分析数据包
小樊
37
2025-12-25 03:19:15
Linux Sniffer数据包分析实操指南
一、分析流程与常用工具
- 明确目标:定位性能问题(如慢访问、丢包)、排查连接异常(如TCP重传、RST)、识别可疑行为(如暴力登录、注入特征)。
- 选择工具:命令行首选tcpdump(轻量、可脚本化),图形化用Wireshark/Tshark(协议解码强、统计视图丰富)。
- 抓包与过滤:在目标接口抓包并用BPF过滤表达式收敛范围,避免全量抓取导致磁盘与性能压力。
- 保存与复盘:将流量写入**.pcap**文件,便于离线深度分析与归档。
- 交叉验证:配合iftop/NetHogs观察带宽与进程维度占用,与抓包结论相互印证。
二、tcpdump从抓包到分析的常用命令
- 安装与基础抓包
- Debian/Ubuntu:sudo apt-get update && sudo apt-get install tcpdump
- RHEL/CentOS:sudo yum install tcpdump(或使用 dnf)
- 抓包:sudo tcpdump -i eth0
- 写入文件与读取复盘
- 保存:sudo tcpdump -i eth0 -w capture.pcap
- 读取:tcpdump -r capture.pcap -nn -l
- 常用显示与过滤
- 只看HTTP:sudo tcpdump -i eth0 port 80
- 只看源/目的IP:sudo tcpdump -i eth0 host 192.168.1.10
- 只看TCP SYN:sudo tcpdump -i eth0 ‘tcp[tcpflags] & tcp-syn != 0’
- 只看某主机且只看80端口:sudo tcpdump -i eth0 ‘host 192.168.1.10 and port 80’
- 提高可读性:加 -nn(不解析主机名/端口名)、-v/-vv(更详细)、必要时加 -X(十六进制+ASCII 负载)
- 实用提示
- 使用 -c N 限制抓取包数,避免失控
- 使用 -w 先落盘,再用 Wireshark 做深度分析,效率更高
三、Wireshark图形化分析要点
- 打开**.pcap**后,用显示过滤器快速聚焦:
- HTTP:http
- DNS:dns
- TCP重传:tcp.analysis.retransmission
- TCP握手异常:tcp.flags.syn == 1 and tcp.flags.ack == 0(SYN 无 ACK)、tcp.flags.reset == 1(RST)
- 典型分析路径
- 性能问题:Statistics → IO Graphs 观察吞吐与抖动;Analyze → Expert Info 查看重传、乱序、重复ACK等异常;Follow → TCP Stream 重建会话,定位慢在哪一跳/哪条SQL/哪个接口。
- 安全问题:搜索关键字(如“select、union、script、login”等)或异常 UA/Referer;检查明文凭证与异常子域访问。
- 命令行配合:Wireshark 的 tshark 可用于批量统计与自动化分析,例如:
- tshark -r capture.pcap -q -z io,stat,1,“tcp.analysis.retransmission”
四、常见攻击与异常的特征识别
- DDoS/异常突发:流量在短时间出现突发峰值或单一来源/目的占比异常,IO Graphs 呈“尖峰”。
- 扫描与暴力尝试:短时间内大量SYN且无后续握手、或反复连接失败;可结合端口与服务指纹识别。
- SQL注入:HTTP 请求参数或 URI 中出现select、union、–、’ or 1=1等特征字符串。
- XSS:HTTP 响应中包含可疑**** 等脚本片段。
- 可疑登录:频繁失败的 HTTP POST /login、SSH 暴力登录(多源/高频失败)。
五、合规与性能注意事项
- 合法合规:仅在获得明确授权的网络与主机上抓包,避免侵犯隐私与触犯法律。
- 权限与模式:抓包通常需要root或具备相应能力;网卡置于混杂模式会接收更多帧,注意对系统与网络的影响。
- 性能与存储:全量抓取会产生大量数据,建议用BPF过滤收敛范围、限制包数、必要时落盘分析,避免影响业务与磁盘空间。