10

是否有可能根据 tcp 连接时间(连接持续时间)过滤 tcpdump(实时或创建转储后)?

我正在记录 http json rpc 流量。我只想记录长度超过 1000 毫秒的连接。

在wireshark中,菜单->统计->对话(TCP选项卡)中有工具,我可以按“持续时间”排序。但我想记录(或过滤)之前的长期连接(而不是在wireshark中)。

在伪命令中,我想做这样的事情:

tcpdump -i eth0 port 80 and connectionTime>1000ms -w data.pcap

或录制后:

cat data.pcap | SOMETOOL -connectionTime>1000ms > dataLongConnections.pcap

SOMETOOL 必须将过滤后的数据导出为 Wireshark 能够理解的格式。因为过滤后我想在 Wireshark 中分析该数据。

我怎么能做到这一点?

4

2 回答 2

2

SplitCap可能适合您。它将 PCAP 作为每个 TCP/UDP 会话的输入和输出单独的 PCAP。拆分后,您可以从输出 PCAP 中过滤出要保留的有趣的 PCAP。

于 2013-05-19T11:49:58.027 回答
1

您需要在流量级别而不是数据包级别考虑您的流量。

如果您使用NetFlow,您可以使用flow-toolsflow-nfilter按持续时间过滤流。因此,您可以将您的 pcap 转换为 NetFlow,然后对其进行过滤。

缺点是在输出中你得到的是 NetFlow,而不是 PCAP。建立一些统计数据就足够了,但检查数据包 - 不一定。

您还可以使用 C 中的libpcap(硬方式)或python 中的scapy (更简单的方式)构建自己的工具。后一个选项应该不会太难(前提是你使用 python)

于 2013-04-30T23:12:35.333 回答