これらのパケットが自分のものではない場合でも、すべての着信パケットをNICにキャプチャする方法


13

知る限り、NICはローカルエリアネットワークのワイヤからすべてのパケットを受信しますが、宛先アドレスがそのIPと等しくないパケットを拒否します。

ユーザーのインターネット利用を監視するアプリケーションを開発したい。各ユーザーには固定IPアドレスがあります。

私と他の一部の人々は、DES-108 8ポートファストイーサネットアンマネージドデスクトップスイッチに接続されています

前に述べたように、私は自分に属するパケットだけでなく、すべてのユーザーからのすべてのトラフィックをキャプチャします。

NICまたは他のコンポーネントにすべてのパケットを強制的に受信させるにはどうすればよいですか?


1
安価で管理されたスイッチを約30ユーロで購入し、ゲートウェイへのリンクでポートミラーリングを有効にします。
マックスリード

回答:


27

知る限り、NICはローカルエリアネットワークのワイヤからすべてのパケットを受信しますが、宛先アドレスがそのIPと等しくないパケットを拒否します。

修正:宛先MACアドレスがMACアドレス(またはマルチキャストまたはフィルター内の追加アドレス)と等しくないパケットを拒否します。

パケットキャプチャユーティリティは、ネットワークデバイスを無差別モードにすることができます。つまり、上記のチェックがバイパスされ、デバイスは受信したすべてを受け入れます。実際、これは通常デフォルトです。withを使用しない場合はtcpdump-pオプションを指定する必要があります。

より重要な問題は、興味のあるパケットがスニッフィングポートにワイヤで送られているかどうかです。管理されていないイーサネットスイッチを使用しているため、ほとんど確実に使用されていません。スイッチは、ネットワークデバイスがパケットを見る前に、自分のものではないパケットをポートから除去することを決定しています。

これを行うには、管理対象イーサネットスイッチ上の特別に構成されたミラーリングポートまたは監視ポートに接続する必要があります。


1
または、イーサネットハブ...屋根裏部屋で錆びているものを見つけることができる場合:) 1000Base-Tにはまだあるとは思わないが、ウィキペディアでは、ギガビットハブは半二重リンクのみをサポートしており、現在廃止されています。
-chx

1
@chx、すべての真のハブは半二重のみをサポートしていました。個人的には、1000Base-Tを見たことがない。
セラダ

これは、Gigabit Ethernetの遅い取り込みに関係していると思います-802.3ab規格は1999年に発表されましたが、取り込みはIntelがGigabit Ethernet用の専用CSAバスを備えた875Pチップセットを最初にリリースした2003/2004まで非常に遅かったです。 2004年には、PCI Expressがギガビットイーサネットに十分な帯域幅を引き継ぎました。そしてそれまでに、スイッチは十分に安価でした。
chx

イーサネットスイッチは常にフレームをブロードキャストしません。フレームをユニキャストするための独自のスイッチングテーブル(スイッチポートとMACアドレスのマップを含む)があります。テーブルにフレーム内のMACのエントリがない場合、フレームをブロードキャスト/フラッディングします。デスクトップが他のフレームを受け取ることはありません。答えのように、スイッチに到着するすべてのフレームをキャプチャするには特別なスイッチを使用する必要があります。
ヴァラルピライ

8

イーサネットハブ(スイッチではない)の初期の言い方では、送信されたパケットはサブネット上のすべてのホストで利用できますが、意図した受信者ではないホストは無視することになっています。

明らかに、サブネットが飽和するのに長くはかからなかったので、問題を解決するためにスイッチテクノロジーが生まれました。そして、ネットワークスイッチがそのホスト宛てのパケットのみをそのポートにルーティングするようにしました(プラスandyブロードキャストトラフィック)。

これは、ホスト用のパケットのみをスニッフィングできるため、ネットワークの監視/スニッフィングを複雑にします。これはセキュリティの観点からは良いことと考えられていましたが、ネットワーク監視の観点からはそれほど良くありませんでした。ネットワーク監視を機能させるために、ベンダーはポートミラーリングと呼ばれる機能を実装しています。これはネットワークスイッチで設定する必要があり、以下のリンクはDリンク製品の正しい方向を示しているはずです。スイッチ管理ソフトウェアまたはWeb管理インターフェイスのどこかにあります。これらの機能が見つからない場合、その特定のデバイスで機能が提供されていない可能性があります。

http://www.dlink.com/uk/en/support/faq/switches/layer-2-gigabit/dgs-series/es_dgs_1210_como_monitorear_trafico_de_un_puerto_port_mirroring


2

最初に、NICを無差別モードに切り替える必要があります。NICインターフェイスがeth0であると仮定しましょう。

root@linux#ifconfig eth0 promesc

スイッチネットワークを使用している場合、スニッフィングは、スイッチポートに接続するコリジョンドメインに限定されます。macofスイッチの転送テーブルを圧倒するために実行できます。

root@linux#macof -i eth0

その後、wiresharkまたはtcpdumpを使用して、すべてのトラフィックをキャプチャできます。

root@linux#tcpdump -i eth0 -w outputfile

スイッチドネットワークに接続していない場合は、混合モードを有効にしてを使用しますtcpdump


1
tcpdump無差別モードが有効になります。手動で行う必要はありません(完了したら元に戻すのを忘れないでください)。
セラダ

0

あなたは車輪を再発明しています。

クライアントがスイッチに接続し、インターネットへのデフォルトゲートウェイを備えた単純なネットワークがある場合、そのデフォルトゲートウェイデバイスでのみ監視する必要があります。これは、LANクライアントとインターネット間のすべてのトラフィックを表示するためのチョークポイントになります。

LANクライアントからLANクライアントへのトラフィックは、同じIPサブネット内のすべてのIPアドレスでローカルトラフィックがデフォルトゲートウェイに触れないため、興味がないと仮定しています。

すべてのトラフィックを本当に見たい場合は、各ユーザーが自分のIPネットワークにいる必要があり、他のネットワークへのトラフィックはデフォルトゲートウェイを経由します。/ 28を各人に割り当てることができ、彼らは自分自身に14個のIPを持つことができます。

あなたの平均的なホームグレードのルーターはこれの多くを処理しません。専用のファイアウォールディストリビューションを調べる必要があります。個人的にはpfsenseが私の頼りになるでしょうが、多くの選択肢があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.