Linuxで動く便利ツール

ネットワークを見える化してくれる
「Wireshark」


北浦 訓行
2008/5/23


 
ソフトウェア名: Wireshark
バージョン: 1.0.0
ライセンス GNU GPL
入手先: http://www.wireshark.org/

概要

 Wiresharkは、グラフィカルなユーザーインターフェイスを持つネットワーク・プロトコル・アナライザです。Linux版はもちろんのこと、WindowsやMac OS X、Solarisなどでも使用することができます。

 Wiresharkは、元はEtherealという名称で公開されていましたが、主開発者の転職によってソースツリーが分岐して、Wiresharkとして開発が継続されています。

Wiresharkのインストール

 FedoraやCentOSには、リポジトリにWiresharkのパッケージが用意されています。従って、それらのディストリビューションではyumコマンドでインストールするといいでしょう。

# yum install wireshark-gnome

 パッケージが用意されていないディストリビューションや、古いバージョンしか用意されていない場合には、WiresharkのWebサイトから最新版のtarボールをダウンロードしてインストールします。その場合には、GTK+およびGLibが必要となります。また、libpcapの開発環境も必要となりますから、あらかじめ以下のようなコマンドでインストールしておく必要があります。

# yum groupinstall "GNOME Software Development"
# yum install libpcap-devel

 tarボールからのインストールは、一般的な手順で問題ありません。

$ tar zxf wireshark-1.0.0.tar.gz
$ cd wireshark-1.0.0
$ ./configure
$ make

 makeが完了したら、試しにWiresharkを実行してみましょう。端末でGNOMEを開いて、Wiresharkの作業ディレクトリに移動し、以下のコマンドを実行してみます。

$ ./wireshark

 Wiresharkのウィンドウが表示されれば、makeは成功です。最後に、バイナリをインストールします。

$ su
# make install

 以上でインストール作業は完了です。

アイコン Wiresharkの実行と画面構成

 Wiresharkの実行はroot権限で行います。リポジトリからインストールした場合は、GNOMEの[アプリケーション]メニューをクリックして、[インターネット]−[Wireshark Network Analyzer]を選択します。GHOME端末から起動する場合は、rootでログインしてwiresharkコマンドを実行してください。

画面1
画面1 起動直後のWireshark

 Wiresharkが起動したら、最初にパケットのキャプチャ設定を行います。ツールバーの左端にあるアイコン(List the available capture interfaces)をクリックするか、[Capture]メニューの[Interfaces]を選択します。すると、キャプチャ可能なインターフェイスの一覧が表示されますから、キャプチャしたいインターフェイスの[Start]ボタンをクリックします。

画面2
画面2 [Capture Interfaces]ダイアログボックス

 すると、すぐにパケットのキャプチャが始まり、画面にその内容が表示されます。

画面3
画面3 キャプチャ中のWireshark

 Wiresharkの画面は、上段の[Packet List]ペイン、中段の[Packet Details]ペイン、下段の[Packet Bytes]ペインに分かれています。

 [Packet List]ペインには、キャプチャしたパケットのサマリーが表示されます。このサマリーをクリックすると、その内容が[Packet Details]ペインと[Packet Bytes]ペインに表示されます。

 [Packet Details]ペインには、[Packet List]ペインで選択されたパケットの詳細な内容が表示されます。表示は、データリンク層やネットワーク層などに分類されていて、初期状態では折り畳まれています。項目を開いておのおのの項目を選択すると、その項目に該当する部分が、以下の[Packet Bytes]ペインで反転表示されます。

 [Packet Bytes]ペインには、[Packet List]ペインで選択されたパケットの内容が、16進数とアスキーキャラクタで表示されます。このペインであるデータを選択すると、[Packet Details]ペインの該当する項目が反転表示されます。

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

 Wiresharkでは、キャプチャしたパケットを2段階にフィルタリングすることができます。1つは、キャプチャ時のフィルタリング(Capture Filter)です。

 この設定を行うには、先述の[Capture Interfaces]ダイアログボックスで[Options]ボタンをクリックするか、[Capture]メニューの[Options]を選択します。すると、[Capture Options]ダイアログボックスが表示されます。

画面4
画面4 [Capture Options]ダイアログボックス

 [Capture Filter]ボタンをクリックすると、[Capture Filter]ダイアログボックスが表示されます。

画面5
画面5 [Capture Filter]ダイアログボックス

 このダイアログボックスでは、フィルタリング用の定義が用意されています。用意されているフィルタ定義で事足りるのであれば、それを選択して[OK]ボタンをクリックします。特別な定義が必要な場合は、[Properties]の[Filter name]に新しいフィルタの名前を、[Filter string]にフィルタリングしたい内容を記述して[新規]ボタンをクリックします。すると、新しい定義を作成できます。

 もう1つのフィルタリングは、キャプチャしたパケットを表示する際のフィルタリング(Display Filter)です。これにより、[Capture Options]ダイアログボックスの[Capture Filter]ボタンでUDPパケットのみをキャプチャしておき、その中からさらにNTPパケットのみを表示させるといったことが可能になります。

 キャプチャしたパケットをフィルタリングするには、ツールバーのフィルタリングボックスに検索する内容を入力します。また、[Filter]ボタンをクリックすると、[Display Filter]ダイアログボックスが表示されます。このダイアログボックスは、上述した[Capture Filter]ダイアログボックスに似ていますが、定義済みのフィルタの内容が異なりますし、[Expression]というボタンもあります。

画面6
画面6 [Display Filter]ダイアログボックス

 このダイアログボックスでは、より複雑なフィルタを定義することができます。その場合には、[Expression]ボタンをクリックして、[Filter Expression]ダイアログボックスを表示します。

画面7
画面7 [Filter Expression]ダイアログボックス

 左のペインでフィルタの内容を選択して、中央のペインでRelationを選択します。Relationによっては、右のペインで値を指定したり、範囲を選択します。表示のフィルタリングは、キャプチャ時のフィルタリングとは異なり、キャプチャした結果をどのように表示するかのフィルタリングですから、ツールバーの[クリア]ボタンをクリックすると、表示のフィルタリングが無効となり、キャプチャした全データが表示されます。

 Wiresharkには、フィルタリング以外にも多彩な機能があります。特に、[Statistic]メニューでは、さまざまな統計情報を表示することが可能です。一例を挙げると、キャプチャしたパケットの結果をグラフで表示する機能があります。グラフ化したデータをさらにフィルタリングして、特定のパケットのみ表示することもできます。

画面8
画面8 [Wireshark IO Graphs]画面

 以上がWiresharkのインストールと基本的なキャプチャの方法です。実際のネットワークに即した、より掘り下げた解析を行いたい場合は、以下の記事もぜひ参考にしてください。

Tips @IT関連記事
これまで掲載された記事の中から、Wireshark関連のものを紹介します
パケットをキャプチャするには
名前のないセキュアシェル(Master of IP Network)
消えたスイッチと2本のケーブル(Master of IP Network)
Etherealでパケットの実物を捕まえて中身をのぞき込もう(Master of IP Network)
Etherealでarpパケットをのぞき込もう(Master of IP Network)
DNSへの問い合わせをEtherealでのぞき込む(Master of IP Network)
分かるスライディングウィンドウ、見えるEthereal(Master of IP Network)
Ethereal(ネットワーク用語事典)
Linux Squareプロダクトレビュー


 Linux Squareフォーラム 製品情報・レビュー関連記事
特集:2007年、Linuxディストリビューションの歩みを振り返る
商用、非商用ともにメジャーバージョンアップが相次いだ2007年。主なディストリビューションを取り上げ、アップデート内容を紹介します
プロダクトレビュー[Ubuntu 7.10 日本語ローカライズド Desktop CD]
海外のみならず日本国内でも人気急上昇中のUbuntu。優れたインターフェイスを備えるとともに、豊富な機能がコンパクトにパッケージされている
特集:業務で使うデスクトップLinux カタログ
定型業務さえこなせればよいという部門も多い企業環境は、コンシューマ市場以上にLinuxへの移行が容易ともいえる。そこで、6つのLinuxディストリビューションを紹介する
特集:Linuxで動くリレーショナルデータベース・カタログ
データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい
特集:Windowsで動くXサーバ・カタログ
やや特殊な用途に用いられてきたXサーバだが、活用しだいでは普通の管理用途にも有用だ。そこで、Windowsで動作する6本のXサーバを紹介する。選択の参考にしてほしい
特集:Linuxで動くJavaアプリケーションサーバ・カタログ
アプリケーションサーバは、いま最も開発競争が激しいジャンルの1つだ。その中から、Linuxに対応する5つの商用製品を紹介する。製品導入の際の参考にしてほしい
特集:Linuxで動くWebグループウェア・カタログ
Linuxを業務用サーバに採用するケースも増えている。そこで、Linuxをサーバとして利用するWebベースのグループウェアを紹介しよう

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間