ネットワークのトラブル解析や、アプリケーションの通信内容などを確認する場合に、Wiresharkでパケットキャプチャしたデータを解析することがあります。
今回は必要なパケットのみを抽出するフィルタ機能をまとめてみました。
- フィルタ設定することで必要なパケットのみを抽出して解析できる
- プロトコル指定のフィルタ記載方法がわからなくても右クリックから指定できる
- フィルタしたデータのみを保存ができる
Wiresharkのフィルタについて
Wiresharkのフィルタでは、ツールバーに文字列を入力することによってパケットの抽出を行うことができる。
用途としては、解析がメイン。例えば・・・
- 特定の端末から通信ができないときにちゃんとパケットをだしているか?また、相手から返信があるか?
- WEBアクセスする際に、IPv6とIPv4のどっちで通信を行っているか?
- 通信するときにどんなプロトコルを利用しているか?
といった感じで解析する際に、通常だとネットワーク内の関係のない通信もパケットデータに含まれていることが多く、調べたいデータを選別する際にフィルタ機能を利用すると、解析が効率的に行えます。
右クリックからのフィルタ設定
キャプチャしたデータの中で、特定の情報などを抽出したい場合は、抽出したい情報を右クリックして、「フィルタとして適用」→「選択済」をするとフィルタツールバーに文字を自動で入力してくれます。
フィルタの設定は、プロトコルなど指定するための関数のようなものが多岐に渡りますが、この設定を知っていれば関数を知らなくても目的のパケット抽出が可能になります。
DNSのパケットだけを抽出する例を動画で説明していますので参考にしてください。
私がよくやるのは、特定MACアドレスやIPアドレスの送受信のデータを抽出するのに、入力が面倒なので、一度、右クリックで宛先のみ指定してフィルタ内容を書き換えてフィルタしたりします。
こちらも動画で!
また、複数の指定も可能です。
以下の動画では、「送信元IPアドレス指定」にさらに「DNS」と2つの条件を指定しています。
この右クリックからのフィルタ作成を覚えると、飛躍的にパケット解析の効率がよくなります。
よく使うフィルタについて
右クリックからのプロトコル指定とは別で自分がよく手動入力で利用するフィルタについて参考にいくつか記載しておきます。
MACアドレス指定
eth.addr == [MACアドレス]
指定したMACアドレスが送信元 or 宛先のものが抽出されます。ネットワーク内の特定の端末がどんな通信しているのかみたい場合に指定します。IPレイヤより下のレイヤ2での指定になるので、IPv4/IPv6の両方の通信が該当します。
特定PCがIPv4またはIPv6どっちの通信しているかなどが把握できます。
パケット番号指定
frame.number >= [パケット番号]
frame.number == [パケット番号]
frame.number <= [パケット番号]
:
特定区間のパケットのみ抽出したい場合の利用します。大量のパケットデータから一部部分だけ切り出したいときに利用します。
「and」を利用して範囲を絞って利用できます。
以下の動画では、パケットの15番目から20番目を抽出しています。
フィルタしたデータのみを保存
フィルタしたデータのみを別ファイルで保存することができます。
パケットデータをメール等で送る場合に、不要なパケットなどを省くことによってデータサイズを小さくすることができます。
フィルタ設定後に、「ファイル」-「指定したパケットをエクスポート」で保存可能です。
Wireshaerkは、フィルタ機能以外にも、知っていると効率的に解析が可能になるので、次回以降紹介していきたいと思います。
今日はここまで、、
コメント