温馨提示×

如何使用Linux Sniffer进行数据包捕获和分析

小樊
42
2025-12-07 09:02:07
栏目: 智能运维

Linux 下使用 Sniffer 进行数据包捕获与分析

一 工具选择与准备

  • 常用工具
    • tcpdump:Linux 上最常用、轻量的命令行抓包与过滤工具,适合服务器与快速排障。
    • Wireshark:图形化协议分析器,适合深度分析与可视化查看(可读取 pcap 文件)。
  • 安装
    • Debian/Ubuntu:sudo apt-get update && sudo apt-get install tcpdump
    • CentOS/RHEL:sudo yum install tcpdump
  • 基本检查
    • 查看网卡:tcpdump -D
    • 选择可用接口(如 eth0、ens33、wlan0)进行监听。

二 捕获数据包

  • 监听指定接口
    • 示例:sudo tcpdump -i eth0
  • 限制抓取数量
    • 示例:sudo tcpdump -i eth0 -c 100(仅抓取 100 个包)
  • 只抓取 ICMP(如 ping)
    • 示例:sudo tcpdump -c 5 -nn -i br0 icmp
  • 保存到文件便于后续分析
    • 示例:sudo tcpdump -i br0 -c 100 -nn -w kali.pcap port 22
  • 从文件读取
    • 示例:tcpdump -nn -r kali.pcap
  • 常用输出控制
    • -n/-nn:不解析主机名/端口名;-v/-vv:更详细输出;-X/-A:十六进制/ASCII 显示负载。

三 过滤与分析

  • 常用过滤表达式
    • 按端口:sudo tcpdump -i eth0 port 80
    • 按主机:sudo tcpdump -i eth0 host 192.168.1.10
    • 按网段:sudo tcpdump -i eth0 net 192.168.123.0/24
    • 按协议:sudo tcpdump -i eth0 icmp;sudo tcpdump -i eth0 arp
    • 组合条件:sudo tcpdump -i eth0 ‘tcp and src host 192.168.1.100 and dst port 443’
  • 显示更丰富信息
    • 显示链路层头部:sudo tcpdump -i eth0 -e
    • 避免截断:sudo tcpdump -i eth0 -s 0-s 65535
  • 读取与分析 pcap
    • 命令行:tcpdump -nn -r capture.pcap
    • 图形化:用 Wireshark 打开 capture.pcap 进行协议树与流分析。

四 实战示例

  • 定位 ARP 异常(检测 ARP 欺骗/风暴)
    • 抓取 ARP 流量:sudo tcpdump -i eth0 -nn arp
    • 快速筛查异常回复:sudo tcpdump -i eth0 -nn arp | grep reply
    • 若发现某 MAC 冒充网关,可结合 DHCP 租约文件(如 /var/lib/dhcp/dhcpd.leases)查找对应 IP/MAC 归属,进一步定位问题主机。
  • 排查 SSH 暴力登录
    • 抓取 22 端口失败握手:sudo tcpdump -i eth0 -nn -s0 ‘tcp dst port 22 and (tcp[13] & 4 != 0)’
    • 统计来源 IP:sudo tcpdump -i eth0 -nn -s0 ‘tcp dst port 22 and (tcp[13] & 4 != 0)’ | awk ‘{print $3}’ | sort | uniq -c | sort -nr | head
  • 抓取 HTTP 明文流量(端口 80
    • 示例:sudo tcpdump -i eth0 -nn -A -s0 ‘tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)’
    • 提示:HTTPS(端口 443)为加密流量,需导入密钥或改用服务器日志/其他手段分析。

五 合规与性能建议

  • 合法合规
    • 仅在获得明确授权的网络与主机上抓包,避免侵犯隐私或违反法律法规。
  • 最小权限与最小抓包
    • 必要权限运行,使用精准的BPF 过滤表达式减少无关流量,降低系统/网络负载。
  • 文件与性能
    • 长时间抓包务必写入 pcap 文件并定期轮转;必要时控制抓包长度(如 -s 0 或适度长度)与包数(-c),避免磁盘与内存压力。
  • 协同排障
    • 结合 iftop、NetHogs 等工具观察带宽与进程占用,与抓包结果交叉验证。

0