自分のものではないパケットも含め、NIC へのすべての着信パケットをキャプチャする方法

自分のものではないパケットも含め、NIC へのすべての着信パケットをキャプチャする方法

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

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

私と他の何人かの人々はDES-108 8ポート ファストイーサネット アンマネージド デスクトップ スイッチ

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

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

答え1

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

訂正:宛先がマックアドレスがMacアドレス(またはマルチキャスト、またはそのフィルター内の追加アドレス。

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

さらに重要な問題は、関心のあるパケットがスニッフィング ポートに実際に転送されているかどうかです。管理されていないイーサネット スイッチを使用しているため、転送されていない可能性がほとんどです。スイッチは、ネットワーク デバイスがパケットを認識できるようになる前に、ポートから自分に属さないパケットを削除することを決定しています。

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

答え2

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

当然のことながら、サブネットが飽和状態になるまでにそれほど時間はかかりませんでした。そのため、問題を解決するためにスイッチ テクノロジが誕生しました。スイッチ テクノロジによって実現されたことの 1 つは、ネットワーク スイッチがそのホスト宛てのパケットのみをそのポートにルーティングするようにしたことです (および andy ブロードキャスト トラフィック)。

これにより、ホスト宛のパケットしかスニッフィングできないため、ネットワーク監視/スニッフィングが複雑になります。これは、セキュリティの観点からは良いことだと考えられていましたが、ネットワーク監視の観点からはあまり良くありません。ネットワーク監視を機能させるために、ベンダーはポートミラーリングと呼ばれる機能を実装しています。これはネットワークスイッチで設定する必要があり、以下のリンクは D-link 製品に関する正しい方向を示しています。スイッチ管理ソフトウェアまたは 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

答え3

まず、NIC をプロミスキャス モードに切り替える必要があります。NIC インターフェイスが eth0 であると仮定します。

root@linux#ifconfig eth0 promesc

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

root@linux#macof -i eth0

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

root@linux#tcpdump -i eth0 -w outputfile

スイッチ ネットワークを使用していない場合は、プロミスキャス モードを有効にして を使用しますtcpdump

答え4

あなたは車輪の再発明をしているのです。

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

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

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

一般的な家庭用ルーターでは、こうした機能のほとんどを処理できないため、専用のファイアウォール ディストリビューションを探す必要があります。個人的には pfsense が頼りになりますが、選択肢は多数あります。

関連情報