数据包捕获会记录在所选观察点可见的流量。它可以揭示协议交换和时序,也可能收集凭据、个人数据以及无关用户的流量。应先获得授权、尽量缩小范围、保护文件并遵守保留策略。
故障排除 · 第 5 课
数据包分析
了解如何捕获范围有界、经过过滤的数据包轨迹,并使用 tcpdump 安全分析。
选择观察点
在受影响流实际经过的接口和网络命名空间中抓包。网桥、容器、VPN、链路聚合、VLAN 和卸载功能都会改变某个接口能看到的内容。抓包前使用 ip route get 和 ip link 确定候选位置。
为什么抓包接口的选择很重要?
捕获有界的数据流
禁用名称解析,将范围限制到某台主机和一个 TCP 端口,并最多捕获 100 个数据包:
$ sudo tcpdump -i enp1s0 -n -c 100 -w incident.pcap \
'host 192.0.2.25 and tcp port 443'
-i 选择接口,-n 保持数字形式,-c 限制数据包数量,-w 写入 pcap 数据,最后的表达式是捕获过滤器。如果流量可能一直不出现,还应在外部设置时间限制。
-c 100 有什么作用?
读取已捕获的数据包
分析已保存的文件而不修改它:
$ tcpdump -n -tttt -r incident.pcap
根据具体协议解读时间戳、协议、源、目的地、标志、序列或确认数据以及长度。捕获时间戳表示在本主机观察到数据包的时刻,不一定是它在别处发出的准确时间。关联多个系统的抓包时,时钟同步非常重要。
哪个选项从已保存的 pcap 文件读取数据包?
解读缺失与加密
没有捕获到数据包,可能是接口或命名空间错误、抓包丢失、过滤器过窄、卸载功能影响、流量经别处路由,或确实没有流量。检查 tcpdump 的已接收和已丢弃计数器,并重现一个已知事件。
TLS 和其他加密通常会隐藏应用程序载荷,但仍会留下端点、时序、大小、TCP 行为和部分握手等有用元数据。不要尝试未经授权的解密,也不要随意收集私钥。
一次空的过滤抓包能证明什么?
保护与共享证据
使用严格权限存储 pcap,记录命令、主机、接口、时区、过滤器和事件时间窗口;完整性很重要时,还要对证据计算哈希。共享前,应使用能够保留所需字段的工具和流程尽量减少或清理数据;数据包载荷乃至元数据都可能识别用户与系统。
应该如何处理事件 pcap?
课程已完成
你已完成 数据包分析
现在,你可以创建有用的数据包捕获,同时避免范围不必要地扩大或处理方式不安全。
选择正确的接口和网络命名空间。
用过滤器、数据包数量和时间限制捕获范围。
保存原始数据包,并以只读方式分析文件。
在正确认识局限的前提下看待数据缺失与加密载荷。
保护捕获数据的机密性、完整性与来源信息。