web-dev-qa-db-ja.com

複数のインターフェースでのTcpdump

2つのWANインターフェイスと1つのLANを備えたWebプロキシとして機能するCentOS 5サーバー上のトラフィックをキャプチャする必要があります。プロキシの奇妙な問題をトラブルシューティングするために、会話全体をキャプチャしたいと思います。外部接続は2つのWAN=インターフェース間でバランスが取れているので、すべてのインターフェースで同時にキャプチャーすることは可能だろうかと思います。

以前にtcpdumpを使用したことがありますが、一度に1つのインターフェースしか許可しません。 3つの並列プロセスを起動してすべてのインターフェイスでキャプチャできますが、最終的に3つの異なるキャプチャファイルができます。

これを行う正しい方法は何ですか?

17
Nahidul islam

Tcpdumpのmanページによると:

2.2以降のカーネルを備えたLinuxシステムでは、「 ‘any」というインターフェイス引数を使用して、すべてのインターフェイスからパケットをキャプチャできます。 「any」デバイスでのキャプチャは、プロミスキャスモードでは行われないことに注意してください。

したがって、実行できるはずです:tcpdump -i anyすべてのインターフェースのデータを同時に1つのキャプチャファイルにキャプチャするため。

27
Adam Rushad

私がこれに取り組む方法は、各インターフェイスで個別のファイルにダンプし、それらをマージすることです。 anyインターフェイスには、キャプチャを汚染する可能性のあるトラフィックも含まれます。

これにより、複雑なフィルタリングを行わなくても、インターフェイスごとのパケットストリームを分析できます。

私は3つの端末でキャプチャするか、&でコマンドをバックグラウンドでキャプチャします

フラグ-nnは速度のためにdns解決をオフにし、-s 0はパケット全体を保存し、-wはファイルに書き込みます。

tcpdump -i wan0 -nn -s 0 -w wan0.dump
tcpdump -i wan1 -nn -s 0 -w wan1.dump
tcpdump -i lan0 -nn -s 0 -w lan0.dump

次に、wiresharkのmergecapコマンドを使用してファイルをマージします。

mergecap -w merged.dump wan0.dump wan1.dump lan0.dump
10
Tim Fletcher

すべてのインターフェイスでtcpdumpをキャプチャするには、次を使用します。

tcpdump -i any
2
Vijay S B