抓包应该发生在数据包本来就流经的地方,而远程的分析人员很少坐在那里。可行的安排是:在观察点所在网段放一台传感器,再用 VPN 只承载管理与取回,而不是把整条镜像链路搬走。这样的分工让分析人员的笔记本电脑不进入抓包路径,敏感载荷也留在现场。下面的步骤依次选择接口、限定文件,并且只搬运问题真正需要的内容。

远程笔记本不是分光点

通过 VPN 加入网络,只是让你的机器有一条通往传感器的路由,并不能看到其他主机之间的流量。在你笔记本上抓到的包,只包含送到该笔记本接口的报文。观察交换机链路要由网络所有者提供一份镜像或分光,把流量喂给现场传感器。即便这样,镜像也有界限,因为被过度订阅的端口会丢帧,而网关永远看不到留在同一 VLAN 内部的流量。

加密流量在传感器处同样保持加密,因为 TLS 载荷属于两端主机。抓包得到的是报头、时序和流量大小,而不是明文。

选择能看见流量的接口

在过滤任何东西之前,先列出接口,确认哪一块承载了你被询问的路径。在物理端口、绑定接口和网桥之间猜,是收集到空文件的常见原因。

ip -br link
dumpcap -D

把接口名字对齐变更记录里的观察点,而不是对齐你从别的主机记下的名字。如果服务明显繁忙而报文计数始终为零,说明传感器挂在了错误网段,或者镜像配成了反方向。先用一次已知交互验证路径,别把坏掉的镜像误当成安静的应用。趁记忆还新,把接口和镜像的细节写进抓包记录。

用过滤器和环形缓冲限定抓包

不加限制的抓包会填满磁盘,也会收进远超问题所需的内容。把允许的源、目的和协议写进过滤器,再限定文件大小和文件数量。

tcpdump -i eth0 -n -s 128 -c 5000 -W 4 -C 25 -w /var/tmp/cap.pcap 'host 203.0.113.10 and tcp port 443'

上面的地址和端口是文档示例网段里的例子,请换成已批准的值,并把时间窗留得足够短,让证据能在环形写入后幸存。快照长度会截断载荷而保留报头,这对连通性问题通常够用,也更容易存储。要读 tcpdump 退出时打印的内核丢包那一行,因为丢包数很高意味着抓包并不完整,而不是现场安静。在环形缓冲覆盖之前保存你需要的时间窗,并把过滤字符串记在文件名旁边。

搬运文件,而不是整条链路

通过管理通道取回抓好的文件,而不是把镜像实时推过广域网。一次传输比持续导出更容易授权、记录和删除。

scp [email protected]:/var/tmp/cap.pcap ./

把文件权限限制为只有运维账号可读,并在核对分析副本后把它从传感器删除。如果确实要求实时导出,就把镜像封装和传输一起估算,因为额外开销可能超出链路预算。无论哪种方式都要记录可见性缺口,因为抓包是带有已知观察点的证据,而不是网络的完整记录。

相关文章