wireshark

何をするもの?

Wiresharkは、ネットワークを流れるデータを取得、解析してその内容を表示するものです。
ネットワークで送受信されるデータには、本来送りたいデータ(テキスト、音声、動画等)に加え、宛先や誤り訂正のための符号等を含む、
多種多様な制御情報が付加されています。
Wiresharkはその制御情報を解析し、見やすいように表示する機能を持っています。
ネットワーク管理者はもとより、サーバ運用やトラブルシューティングには不可欠の道具です。
Linux, MacOS, 各種Unixの他Windowsでも動作します。なお、Windowsでは同様のことを行うMicrosoft Network Monitorというソフトウェアもあります。

なお、ネットワークを流れるデータを取り込むことを「キャプチャする」と言います。

インストール

まずは、Wiresharkをインストールして使えるようにする。
Linuxでは、例によって
$ sudo apt-get install wireshark
で必要なファイルをインストールする。

なお、開発・配布元のWebページ http://www.wireshark.org/ も見ておくこと。 Windows版バイナリはここでダウンロードできる。

起動

Unix/LinuxではWiresharkを起動するのにroot特権が必要なので、

$ sudo DISPLAY=:0 XAUTHORITY=$XAUTHORITY wireshark

自分のパスワードを入力するとwiresharkが起動し、ウィンドウが一つ開く。
"This could be dangerous."というwarningのダイアログボックスが開くかもしれないが、当面やむを得ない。OKしておく。
以後、このウィンドウ内で操作する。

キャプチャ開始

主画面左側に"Capture"という欄があり、その下にネットワークインターフェイス名が並んでいる。
  • eth0をクリックすると、直ちにキャプチャが始まり、データが表示され始める。
  • 止めるときには、ひだりから4つめの、赤丸にxがついているアイコンをクリックする。
  • 再開するには、左から3つめのアイコンをクリックする。ダイアログボックスが出るが、特に必要がなければ"Continue without Saving"を選べばよい。
中程のパネルにどんどん表示されていた一行一行がデータの固まり(フレーム)に対応している。
適当な行を選び、クリックすると、一番下のパネルにフレームの内容の詳細が表示される。
左側に1バイト毎のデータを16進数で表したものが並び、その中でASCIIコード(英数字記号等)と解釈できるものについて右側に対応する表示が出ている。
よく見ると読み取れる文字列が並んでいることに気づくはず。
ただし、実習用PCはすべて204号室内実習用ネットワークに接続されていて、
このネットワークは実習専用でよけいなものがつながっておらず「静か」なので、なかなか増えないかもしれない。
別ページ network programming sample のクライアントプログラムを動かすと、コマンドのやり取りを見ることができる。

Web

キャプチャを行いながら、Webブラウザを起動し、適当なページを表示する。どのようなデータが表示されるか?
適当なフレームを選び、内容の詳細を表示させてみると、HTTPプロトコル、HTMLのデータが流れていることが確認できる。

Packet Filter

単純にキャプチャしたのではデータが多すぎる場合、 設定した条件に合うフレームのみをキャプチャする機能がある。
左から2つ目のアイコンをクリックし、Capture Optionsを設定することで絞り込むことができる。

保存

キャプチャしたデータはファイルに保存しておくことができる。
不正アクセスに対処するとき、ネットワークの挙動がおかしいとき、様々な場合に保存したキャプチャデータが活用される
(あまり出会いたくない状況ではあるが…)

逆に、保存が不要な場合は、Startを選択した際やWiresharkを終了する際に現れるダイアログで Continue without Savingを選べばよい。
Comments