Wiresharkを使用してパケットをキャプチャ、フィルタリング、および検査する方法

以前はEtherealとして知られていたネットワーク分析ツールであるWiresharkは、パケットをリアルタイムでキャプチャし、人間が読める形式で表示します。Wiresharkには、ネットワークトラフィックを深く掘り下げて個々のパケットを検査できるようにする、フィルタ、色分け、およびその他の機能が含まれています。

このチュートリアルでは、パケットのキャプチャ、フィルタリング、および検査の基本について理解します。Wiresharkを使用して、疑わしいプログラムのネットワークトラフィックを検査したり、ネットワーク上のトラフィックフローを分析したり、ネットワークの問題をトラブルシューティングしたりできます。

Wiresharkの入手

Wireshark forWindowsまたはmacOSは公式Webサイトからダウンロードできます。Linuxまたは他のUNIXライクなシステムを使用している場合は、おそらくパッケージリポジトリにWiresharkがあります。たとえば、Ubuntuを使用している場合、WiresharkはUbuntuソフトウェアセンターにあります。

簡単な警告:多くの組織は、ネットワーク上でWiresharkや同様のツールを許可していません。許可がない限り、このツールを職場で使用しないでください。

パケットのキャプチャ

Wiresharkをダウンロードしてインストールした後、Wiresharkを起動し、[キャプチャ]の下のネットワークインターフェイスの名前をダブルクリックして、そのインターフェイスでパケットのキャプチャを開始できます。たとえば、ワイヤレスネットワーク上のトラフィックをキャプチャする場合は、ワイヤレスインターフェイスをクリックします。[キャプチャ]> [オプション]をクリックして高度な機能を構成できますが、現時点では必要ありません。

インターフェイスの名前をクリックするとすぐに、パケットがリアルタイムで表示され始めます。Wiresharkは、システムとの間で送受信される各パケットをキャプチャします。

無差別モードが有効になっている場合(デフォルトで有効になっている場合)、ネットワークアダプター宛てのパケットだけでなく、ネットワーク上の他のすべてのパケットも表示されます。無差別モードが有効になっているかどうかを確認するには、[キャプチャ]> [オプション]をクリックし、このウィンドウの下部にある[すべてのインターフェイスで無差別モードを有効にする]チェックボックスが有効になっていることを確認します。

トラフィックのキャプチャを停止する場合は、ウィンドウの左上隅にある赤い[停止]ボタンをクリックします。

カラーコーディング

おそらく、さまざまな色で強調表示されたパケットが表示されます。Wiresharkは色を使用して、トラフィックのタイプを一目で識別できるようにします。デフォルトでは、薄紫はTCPトラフィック、水色はUDPトラフィック、黒はエラーのあるパケットを識別します。たとえば、パケットが順不同で配信された可能性があります。

カラーコードの意味を正確に表示するには、[表示]> [カラーリングルール]をクリックします。必要に応じて、ここからカラーリングルールをカスタマイズおよび変更することもできます。

サンプルキャプチャ

自分のネットワークで検査する興味深いものが何もない場合は、Wiresharkのwikiでカバーされています。Wikiには、ロードして検査できるサンプルキャプチャファイルのページが含まれています。[ファイル]> [Wiresharkで開く]をクリックし、ダウンロードしたファイルを参照してファイルを開きます。

独自のキャプチャをWiresharkに保存して、後で開くこともできます。[ファイル]> [保存]をクリックして、キャプチャしたパケットを保存します。

パケットのフィルタリング

プログラムが自宅に電話をかけるときに送信するトラフィックなど、特定の何かを検査しようとしている場合は、ネットワークを使用している他のすべてのアプリケーションを閉じて、トラフィックを絞り込むことができます。それでも、ふるいにかけるパケットが大量にある可能性があります。そこで、Wiresharkのフィル​​ターが登場します。

フィルタを適用する最も基本的な方法は、ウィンドウの上部にあるフィルタボックスにフィルタを入力し、[適用]をクリックする(またはEnterキーを押す)ことです。たとえば、「dns」と入力すると、DNSパケットのみが表示されます。入力を開始すると、Wiresharkがフィルターのオートコンプリートを支援します。

[分析]> [フィルターの表示]をクリックして、Wiresharkに含まれているデフォルトのフィルターからフィルターを選択することもできます。ここから、独自のカスタムフィルタを追加して保存し、後で簡単にアクセスできるようにすることができます。

Wiresharkのディスプレイフィルタリング言語の詳細については、Wiresharkの公式ドキュメントの「Buildingdisplayfilterexpressions」ページを参照してください。

もう1つの興味深いことは、パケットを右クリックして、[フォロー]> [TCPストリーム]を選択することです。

クライアントとサーバー間の完全なTCP会話が表示されます。該当する場合は、[フォロー]メニューで他のプロトコルをクリックして、他のプロトコルの完全な会話を表示することもできます。

ウィンドウを閉じると、フィルターが自動的に適用されていることがわかります。Wiresharkは、会話を構成するパケットを表示しています。

パケットの検査

パケットをクリックして選択すると、掘り下げて詳細を表示できます。

ここからフィルターを作成することもできます。詳細の1つを右クリックし、[フィルターとして適用]サブメニューを使用して、それに基づいてフィルターを作成します。

Wiresharkは非常に強力なツールであり、このチュートリアルは、Wiresharkでできることのほんの一部にすぎません。専門家はこれを使用して、ネットワークプロトコルの実装をデバッグし、セキュリティの問題を調べ、ネットワークプロトコルの内部を検査します。

詳細については、Wiresharkの公式ユーザーガイドおよびWiresharkのWebサイトの他のドキュメントページを参照してください。