2013-04-30 13 views
10

tcp接続時間(接続時間)に基づいて、tcpdump(ライブまたはダンプ作成後)をフィルタリングする可能性はありますか?tcpdump - tcp接続時間/期間に基づいてフィルタリングする方法

http json rpc trafficを記録しています。 1000ミリ秒以上の接続しか記録しません。

wiresharkにはメニュー - >統計 - >会話(TCPタブ)のツールがあり、そこには "Duration"でソートすることができます。しかし、私は以前に(wiresharkではなく)長時間の接続を記録(またはフィルタリング)したい。

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

または記録後:私はこのような何かをしたい擬似命令で

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

SOMETOOLは、Wiresharkのは理解することをフォーマットするためにフィルタリングされたデータをエクスポートする必要があります。 フィルタリングの後、私はWiresharkでそのデータを分析したいからです。

どうすればいいですか?

+0

kauppiさんが提案したSplitCapを試しましたか?ステートフルなフィルタではないので、セッションの継続時間をtcpdumpでフィルタリングすることはできません。一見してSplitCapは、必要なものを提供するようです。 –

+0

Tom Regnerが言ったことを追加するには、 'tcpdump'はセッションの継続時間を記録しません。なぜなら、 'Wireshark'は単に' tcpdump 'を解析するのではなく、 'Wireshark'自体がセッションの持続時間を追跡しているからです。 –

答えて

1

代わりパケットレベルの流れレベルでトラフィックを考慮する必要があります。 で作業していた場合は、flow-toolsflow-nfilterを使用して期間別にフィルタをかけることができます。だから、convert your pcap to NetFlowとそれ以降はそれをフィルタリングすることができます。

出力がPCAPではなくNetFlowになるという欠点があります。いくつかの統計を構築するには十分ですが、パケットをチェックするのは確かです。

libpcapをC(難しい方法)で、scapyをPython(簡単な方法)で作成することもできます。後者のオプションはあまり難しくありません(あなたがPythonで作業するならば)

2

SplitCapが役に立つかもしれません。これは、PCAPを入力として受け取り、各TCP/UDPセッションごとに別々のPCAPを出力します。分割後、出力PCAPから興味深いものをフィルタリングすることができます。

関連する問題