自宅に小さなローカルネットワークがあり、2台のコンピューターがモデムルーターに接続されています。ルーターから特定のサーバーに送信されるパケットをキャプチャしたい(サーバーのIPアドレスがわかっている)。
ルーターの製造元はD-Linkです。
自宅に小さなローカルネットワークがあり、2台のコンピューターがモデムルーターに接続されています。ルーターから特定のサーバーに送信されるパケットをキャプチャしたい(サーバーのIPアドレスがわかっている)。
ルーターの製造元はD-Linkです。
回答:
まず、すべてのトラフィックの間に入らなければなりません。これはさまざまな方法で行うことができますが、おそらく最も簡単な方法は、両方のコンピューターからのトラフィックが本当に必要なのか、単一のコンピューターからのトラフィックだけが必要なのかを識別することです。
両方が必要な場合は、コンピューターをハブに接続してからルーターに接続します。ハブはすべてのネットワークトラフィックをすべてのポートに送信し、スイッチはそれを目的の宛先にのみ送信します。
スイッチが1つしかない場合、1台のコンピューターをゲートウェイとしてリグし、2台目のコンピューターをその方向に向けることができると思いますが、これは面倒です。
ルーターも含めてすべてのトラフィックが必要な場合は、ルーターの後にハブを置き、コンピューターを接続します。これはおそらく、キャプチャしようとしているトラフィックが、パケットをキャプチャするために使用しているマシンから発信されていない場合にのみ機能します。そうでない場合は、より厄介な設定が実行されます。
すべてのトラフィックがコンピューターのNICを通過したら、パケットスニッファー(実際にはWiresharkよりもWindowsネットワークモニターの方が好きです)をつかみ、パケットの取得を開始します。おそらく、問題のサーバーを表示するためだけにトラフィックをフィルターしたいでしょう。Microsoftネットワークモニターのフィルターは非常にユーザーフレンドリーです。
ホームルーターでDD-WRTを実行する場合、ルーターでtcpdumpを直接実行し、出力を後で処理するためにローカルシステムに戻すことができます。
例:
ssh root@192.168.1.1 -c "tcpdump -v -w - -i eth2" > mypackets.pcap
完了したらCtrl-Cを押し、Wiresharkなどのお気に入りの分析ツールにキャプチャファイルを読み込みます。
tcpdump
そこに乗れますか?
エンタープライズグレードのルーターまたはスイッチを使用すると、ポートをミラーリングし、wiresharkやnetmonなどのパケットキャプチャプログラムを使用してこれを行うことができます。d-linkルーターでは、これを構築する方法は本当にありません。
1つの解決策は、ネットワークハブ(スイッチではなく、ハブ)を取得して、内部ネットワークに配置することです。次に、ハブのアップリンクをルーターのポートに差し込みます。これで、ハブを使用しているため、ネットワークを出入りするすべてのトラフィックがマシンのすべてのNICにヒットする状況が作成されました。これを行うと、wiresharkまたはnetmonを無差別モードで実行し、このトラフィックをすべてキャプチャできるようになります。特定のIPとの間でトラフィックを分離するフィルターを作成するのは簡単です。
パケットがルーター自体から発信されている場合を除き(可能性はありますが、可能性は低い)、パケットは接続されたコンピューターの1つから発信される必要があります。この場合、packet-snifferを使用できます。SmartSniffは非常に使いやすく、特定のIP、ポートなどとの接続のみをキャプチャおよび/または表示するように構成できます。