UbuntuでのWiresharkの使用

Wiresharkは、ネットワーク上のデータをスニッフィングするために使用できる強力なオープンソースのネットワークアナライザーであり、ネットワークトラフィック分析のトラブルシューティングの助けとしてだけでなく、ネットワークや通信プロトコルの原則を理解するための教育ツールとしても利用できます。

ほぼすべてのLinuxディストリビューションで入手可能であり、Ubuntuの場合は、Ubuntu Software Centerまたはターミナルを通じてインストールできます。

sudo apt-get install wireshark

Wiresharkを使用する前に、dumpcapユーティリティにrootとして実行する権限を与える必要があります。これがないと、Wiresharkは通常のユーザーとしてログインしているときにネットワークトラフィックをキャプチャできません(これはUbuntuのようなディストリビューションでは常にそうです)。dumpcapに“ setuid ”ビットを追加するには、次のコマンドを使用します。

sudo chmod 4711 `which dumpcap`

「which dumpcap」の周りの引用符は通常のシングルクォーテーションではなく、逆引用符文字であることに注意してください。Unix系システムでは、これによりコマンド置換が呼び出され、whichコマンドの出力がchmodコマンドのパラメータ(すなわち、dumpcapバイナリのフルパス)になります。

wireshark-Start-capture

Wiresharkを起動し、データをキャプチャするために使用したいネットワークインターフェイスをクリックします。有線ネットワークの場合、eth0である可能性が高いです。今すぐ「スタート」をクリックします。

Wiresharkはトラフィックのキャプチャを開始し、主ウィンドウに色分けされたリストとして表示します。TCPトラフィックは緑で、UDPパケットは薄い青、ARPリクエストは黄色、DNSトラフィックは濃い青で表示されます。

wireshark-live-capture

ツールバーのすぐ下にフィルターボックスがあります。特定の種類のネットワークパケットのみを表示するには、編集ボックスにプロトコル名を入力し、「適用」をクリックします。たとえば、ARP(アドレス解決プロトコル)メッセージのみを表示するには、フィルターボックスにarpと入力し、「適用」をクリックします。リストはARPメッセージのみを表示するように変更されます。ARPは、LAN上で特定のIPアドレスを使用しているマシンを発見するために使用されます。他の例としては、HTTP、ICMP、SMTP、SMBなどがあります。

Wiresharkはプロトコルタイプ以上の高度な基準を使用してフィルタリングすることができます。たとえば、特定のホストから来たすべてのDNS関連トラフィックを表示するには、フィルタip.src==192.168.1.101 and dnsを使用します。ここで、192.168.1.101はフィルタリングしたいソースアドレスです。

wireshark-follow-stream

2つのホスト間で興味深いやりとりを見つけ、その全体を確認したい場合、Wiresharkには「ストリームを追跡」するオプションがあります。交換の任意のパケットを右クリックし、「TCPストリームを追跡」をクリックします(またはプロトコルタイプに応じて「UDPストリームを追跡」や「SSLストリームを追跡」を選択します)。Wiresharkはその後、会話の完全なコピーを表示します。

これを試してみてください

Wiresharkの使用は、必要に応じて複雑にも単純にもなります。ネットワークの専門家向けの多くの高度な機能がありますが、ネットワークについて学びたい人々も使用することで得られる利点があります。Wiresharkについてさらに学びたい場合、以下のことを試してください。キャプチャを開始し、フィルターをICMPに設定します。次に、別のLinuxマシンまたはWindows PCのコマンドシェルから以下のようなコマンドを使用してLinuxマシンにpingを送信します。

ping 192.168.1.10

ここで、192.168.1.10はLinuxマシンのIPアドレスです。パケットリストを見て、pingのためのネットワークトラフィックを見つけてみてください。