Wiresharkでネットワーク・プロトコルを解析する(基本操作編):Tech TIPS
ネットワークのトラブルシューティングでは、パケットをキャプチャして解析できると便利である。Wiresharkはフリーの高機能なネットワーク・プロトコル・アナライザであり、Windows OS以外でも広く使われている。Wiresharkでは、MS-RPCプロトコルの内部も解析できる。
対象ソフトウェア:Wireshark
解説
ネットワークのトラブルシューティングでは、ネットワーク・ケーブル上を流れるパケットをキャプチャしてダンプ/解析する必要に迫られることがある。このような場面で役に立つのが、いわゆるネットワーク・プロトコル・アナライザと呼ばれるツールである。Windows OS上では、マイクロソフトから提供されているネットワーク・モニタがよく使われる。その最新版であるネットワーク・モニタのVer.3.xはダウンロード・センターで提供されている。具体的な使い方についてはTIPS「ネットワーク・モニタ3.1を使う(基本編)」や、その関連TIPSを参照していただきたい。
ネットワーク・モニタ以外にも多くのプロトコル・アナライザ・ソフトウェアがあるが、フリーで提供されていて、UNIXやLinux、Macなど、多くのプラットフォーム上で動作することから、Wiresharkというソフトウェアも広く普及している。これはもともとはEtherealという名前のソフトウェアであったが、2006年に名称変更して開発が続けられている。本TIPSではこのWiresharkのインストールと基本的な使い方について紹介する。
Wiresharkサイト
長らくEtherealという名称で開発が続けられてきた、オープン・ソースでフリーのネットワーク・プロトコル・アナライザ・ソフトウェア。UNIXやLinux、Mac、WindowsなどさまざまなOS上で利用できる、高機能なツールである。
(1) ここをクリックすると、Windows版のWiresharkのインストール・ファイルがダウンロードできる。
Wiresharkは、さまざまなOS上で動作するだけでなく、ウィンドウ・ベースのGUI画面のほか、コマンドライン・ベースでのキャプチャ、解析機能も持つ。ライブ・キャプチャ(キャプチャしながらの解析結果の表示)や数多くのプロトコルのサポート、カラフルで分かりやすいウィンドウ画面、多くのフォーマットをサポートしたキャプチャ・データのインポート/エクスポート(ネットワーク・モニタは.capファイルのみサポート)などの特長がある。さまざまなOS上で利用できるため、Windows OS以外のユーザーにはネットワーク・モニタよりもWiresharkの方が使いやすいかもしれない。Windowsネットワーク管理者の視点からいえば、MS-RPCプロトコルの内部(ネットワーク階層的にいえば、MS-RPC中を流れている、1つ上位のプロトコル)まで解析できる点が、ありがたい点だろうか(後述の例参照)。
操作方法
Wiresharkの入手とインストール
Wiresharkのインストール・ファイルは、上記のサイトの[Get Shark Now]ボタンをクリックすると自動的にダウンロードされる。2008年7月現在の最新版はVer.1.0.1である。入手したファイル(wireshark-setup-1.0.1.exeなど)をダブルクリックするとインストールが始まる。インストール・オプションは特にデフォルトのままで構わないだろう。途中でWinpcapというキャプチャ・ドライバ(サービス)がデフォルトでインストールされるが、これはWindows OS(ネットワーク・モニタ)における「ネットワーク モニタ ドライバ」に相当する。このように、Wiresharkではネットワーク・モニタ・ドライバは使わず、別のキャプチャ・ドライバを使用して、ネットワーク・パケットをキャプチャしている。
Wiresharkのインストール・オプションの設定画面
ユーザー・インターフェイスやインストールする各種のサブツールを選択する。通常はデフォルトのままでよいだろう。TsharkやRawsharkは、コマンド・プロンプト上などで利用するサブツールである。
(1)ユーザー・インターフェイスのデザインの選択。
Wiresharkでキャプチャ/解析する
インストールされたWiresharkのアイコンをクリックすると、次のような初期画面が表示される。
何も表示されていないが、これはキャプチャするインターフェイスが指定されていないからである。ツール・バーの一番左にあるボタンをクリックすると([Capture]メニューの[Interface]項目でもよい)、次のようなインターフェイスの選択画面が表示される。
インターフェイスの選択画面
この画面で、キャプチャしたいネットワーク・インターフェイスを選択し、[Start]ボタンをクリックするとキャプチャが始まる。
(1)インターフェイスの一覧。VPN用の仮想インターフェイスなども表示される。
(2)インターフェイスやIPアドレスなどを確認して、[Start]ボタンをクリックすると、そのインターフェイスのパケットがキャプチャされる。
ここでは、一番下にあるイーサネット・インターフェイスのパケットをキャプチャしてみよう。インターフェイス名やIPアドレスなどを確認して、[Start]ボタンをクリックする。するとキャプチャが開始されると同時に、解析されたパケットが、すぐに表示される(ライブ・キャプチャ機能)。
キャプチャ/解析表示中のWireshark画面
キャプチャされると同時に、解析結果のプロトコル階層が表示される。いちいちキャプチャを止めてから解析画面に移動する必要はない(ネットワーク・モニタでも、Ver.3.x以降で利用可能)。
(1)キャプチャの停止ボタン。停止しなくても解析結果は表示されるが、パケットを保存するためには、いったん停止する必要がある。処理が重かったり、解析すべき部分のキャプチャが終了したら、停止してもよいだろう。ただしいったん停止すると、同じバッファに追加してキャプチャはできない(再開すると、既存のバッファ内容はクリアされる)。キャプチャに関するオプション(キャプチャ・バッファのサイズなど)は、左から2番目のボタンで設定する。
(2)キャプチャのリセット(キャプチャしたパケットを全部削除する)。
(3)パケットの保存ボタン。ネットワーク・モニタなどでよく使われる.cap以外にも、さまざまなフォーマットで保存できる。
(4)表示フォントサイズの拡大や縮小のためのボタン。
(5)表示やキャプチャのためのフィルタの設定。
(6)キャプチャしたパケットの一覧。時間順に並んでいる。表示される項目はネットワーク・モニタなどとほぼ同じである。プロトコルの種類や条件別に色分けして表示されるので、分かりやすい(色はカスタマイズも可能)。
(7)プロトコル階層別に解析して表示された、プロトコルの詳細画面。(6)で選択したパケットが解析されて表示されている。
(8)DCE RPCとはMS-RPCプロトコルのこと。
(9)MS-RPCプロトコルの中のRemote Registry Serviceのコマンドまで解析して表示されている。ネットワーク・モニタでは、この部分は単なるバイナリ列として表示される。
(10)[+]アイコン部分を展開すると、このようにプロトコルの詳細が表示される。関連するパケットの場合はこのようにリンクが表示される。リンク部分をクリックすると、該当するパケットまでジャンプしてくれるので、便利である。
(11)16進タンプ。
(7)の部分が解析されたプロトコルの詳細であるが、SMBプロトコルの下側にDCE RPC((8)。MS-RPCと同じ)とRemote Registry Service((9))が表示されている(MS-RPCについてはTIPS「リモートの手続きを呼び出すMS-RPCとは?」参照)。その結果、このパケットは、レジストリのCloseKeyコマンドであることが分かる。これに対しネットワーク・モニタ(次の画面参照)の場合は、MS-RPC以下の階層が表示されておらず、何を実行しているコマンドが分からない(解析できない)。このようにWiresharkの方が、(機能によっては)便利なことも少なくない。目的によって両者を使い分けるとよいだろう。
ネットワーク・モニタ3.1の実行例
上のパケットと同じものを解析した場合の例(Wiresharkで保存した.capファイルをネットワーク・モニタでオープンして表示させている)。
(1)MS-RPCプロトコルの解析結果。この中にあるレジストリ操作のためのコマンド部分は解析されないので、必要なら16進ダンプ・データを自力で調査する必要がある。
■この記事と関連性の高い別の記事
- ネットワーク・モニタ3.1を使う(基本編)(TIPS)
- netcapコマンドでネットワーク・パケットをキャプチャする(TIPS)
- ネットワーク・モニタでコンピュータ名を定義する(TIPS)
- ネットワーク・モニタのキャプチャ・フィルタを利用する(TIPS)
- ネットワーク・モニタ3.0の表示フィルタを活用する(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.