WireSharkを使ってネットワークパケットをキャプチャした際に、日時が不明だったり、膨大なキャプチャ結果から特定のパケットを参照するにはどうすればいいのだろうと試行錯誤してみたり、といった経験をしたことはありませんか。
ここでは WireSharkを使ってパケットをキャプチャする際のテクニックを紹介します。
※ 本記事ではWireshark のインストールや基本的なキャプチャ方法については割愛します。
前提条件
本記事は以下の環境で実施した内容を元にしています。
- Windows 11
- Wireshark Version 4.2.5
時刻の表示形式と基準時刻
時刻の表示形式
キャプチャしたパケットには、システム時刻をもとにタイムスタンプが付与されます。
デフォルトの設定は「最初にキャプチャしたパケットからの経過時間」ですが、キャプチャした日時や時刻などを確認したい場合は日時の表示に変更することが可能です。
時刻の表示形式を変更するには、メインメニューの「表示」-「時刻表示形式」から「日時」に変更します。
また、日時の表示から、「前にキャプチャされたパケットからの秒数」に変更することも可能です。
時間調整
ネットワークの不具合調査で複数のポイント ( 例:ファイアウォールの手前と越えた後など)からキャプチャをすると時刻が同期していない場合があります。キャプチャ端末で時刻が数秒ずれている場合、キャプチャ結果のタイムスタンプを変更することが可能です。
タイムスタンプを変更するには「編集」-「時間調整 」を選択するか、Ctrl+ Shift + T を押して「Time Shift ( 時間調整 ) 」ダイアログを開き、タイムスタンプを変更したいパケットの範囲を指定します。
また、個別に時間を変更することもできます。以下の例では各パケットに1分30秒プラスして、キャプチャしたすべてのパケットのタイムスタンプを変更しています。
フィルタ
キャプチャフィルタ
キャプチャしたパケットは解析時にフィルタをかけることが出来ますが、パケットを取得する時点でフィルタをすることも可能です。
キャプチャフィルタを行うことで対象のパケットを限定することができます。解析がしやすくなる他、キャプチャ結果をファイルに保存する場合はサイズを小さくすることができます。また、パケットキャプチャに使用するCPUリソースも少なくすることができます。
例えば、TCPポート80番のWebサーバとのトラフィックを対象とする場合、以下のように設定することでキャプチャすることが可能です。
- 「キャプチャ」メニューより「オプション」を開く
- キャプチャに使用するインターフェースの右側の「キャプチャフィルタ」をダブルクリックする
- 「port 80」を入力し「開始」ボタンをクリックしてキャプチャを開始
また、構文を使用することにより、さらに対象のキャプチャを絞ることも可能です。
src host 192.168.0.8 && tcp port 80
開始ボタンを押してキャプチャを開始します。
表示フィルタ
キャプチャフィルタでは、パケットをキャプチャする際にフィルタを行いました。
表示フィルタでは、キャプチャしたパケットの一覧から参照したいパケットのみフィルタを行うことができます。表示フィルタはパケット一覧の上部、表示フィルタボックスに設定します。
ip.addr == 192.168.0.1 and tcp.port == 80
フィルタの保存
フィルタを繰り返し使用する場合は設定を保存しておくことができます。
キャプチャフィルタの保存
キャプチャフィルタの設定を保存する方法です。
- メニューから「キャプチャ」-「キャプチャフィルタ」をクリックし「キャプチャフィルタ」を開く
- 左下の「+」ボタンをクリックし新たなフィルタを作成
- フィルタ名:名前を入力
- フィルタ式:フィルタの条件を入力
「OK」ボタンをクリックして保存します。
表示フィルタの保存
表示フィルタを保存する方法です。
- 表示フィルタを表示フィルタボックスに入力
- 左側のリボンをクリック
- 「このフィルタを保存」をクリック
フィルタダイアログが開きますのでフィルタ名を入力し「OK」ボタンをクリックして保存します。
まとめ
今回は Wireshark を使用してパケットキャプチャする際のテクニックを紹介しました。
実際にパケットをキャプチャすると膨大な量になります。時間の表示やパケットフィルタを使用して対象を絞り込むことにより、解析を効率よく進める事が出来ます。
冨田 克樹(日本ビジネスシステムズ株式会社)
クラウドソリューション事業本部に所属。中部事業所にてネットワーク構築案件を担当。Cisco L2,L3SW、Paloalto PAシリーズなど扱っています。
担当記事一覧