今回はPAシリーズのパケットキャプチャー機能についてご紹介します。
トラブルシューティングの際に実際に流れているパケットをキャプチャしたいというケースはよくあると思います。L3SWやL2SWでパケットキャプチャーを行う場合、ミラーポートを作成して、キャプチャ用PCを用意してWireSharkで・・・のような作業を行う必要がありましたが、PAシリーズではリモートから簡単にパケットキャプチャを行うことができます。
パケットキャプチャーの手順
PAシリーズのパケットキャプチャの設定は、Ciscoスイッチなどのように「キャプチャを行うインタフェースを指定した上でミラーポートから出力する」というようなインタフェース単位での設定ではなく、ファイアウォール内のデータプレーンで処理したパケットをキャプチャします。キャプチャしたファイルはファイアウォールのディスク内に保存され、GUI(ブラウザ)またはCLI(FTP、SCP)を利用して外部に出力することができます。
キャプチャ ステージ
データプレーンで処理するパケットのキャプチャのための4つのステージが用意されており、どのタイミングでパケットをキャプチャするかを指定することができます。
- Receive Stage(パケット受信)
- インタフェースに入ってきたパケットをキャプチャします。
- Firewall Stage(ファイアウォール処理)
- パケット受信後にファイアウォール処理をするパケットをキャプチャします。
- Transmit Stage(パケット送信)
- ファイアウォール処理後に許可されたパケットがインタフェースから外部に転送されるパケットをキャプチャします。
- Drop Stage(パケット ドロップ)
- 上記①〜③に加え、IPSやAntiVirusなどのセキュリティ機能でパケットがドロップされた際のパケットをキャプチャします。
- Receie Stageでの不正なパケット(セッションにマッチしないパケットなど)
- Firewall Stageでのセキュリティポリシーによるドロップされたパケット
- セキュリティプロファイル(IPS、AVなど)でドロップされたパケット
- 上記①〜③に加え、IPSやAntiVirusなどのセキュリティ機能でパケットがドロップされた際のパケットをキャプチャします。
ファイアウォールはパケットをドロップする製品であるためトラブル時に最初に疑われる製品のひとつかな・・・と思いますが、このステージごとにキャプチャを行うことで、たとえば「Receive StageとTransmit Stageに同じパケットが記録されているのでパケット受信して転送もしている」ということを確認できるようになっています。
キャプチャ設定
ステージの追加
キャプチャステージを追加します。【MONITORタブ】→【パケットキャプチャ】→【キャプチャの設定】で追加をクリックします。
キャプチャステージと出力されるファイル名を指定します。(ファイル名の拡張子は”.pcap”等にしておくと後でWireSharkなどで確認する際に便利です。)
基本的にステージは4つとも作成しておくことを推奨します。設定後はこんな感じになります。
パケットキャプチャの有効化
パケットキャプチャのトグルスイッチをクリックします。
パケットキャプチャの利用に対する警告が表示されます。OKをクリックします。
画面右上の更新ボタンをクリックするとキャプチャされたファイルが右側ペインに表示されます。表示されたファイルをクリックすることで各キャプチャファイルをダウンロードすることができます。
キャプチャファイルは1ファイルあたり最大200Mまで保存可能です。200Mを超えると<ファイル名.1>というファイルにローテートされ、このファイルが200Mを超えると再度元のファイルにローテートされます(つまり最大で200M x 2ファイルまでキャプチャ可能)。
ダウンロードしたファイルはWireSharkなどで開くことができます。
キャプチャパケットのフィルタリング
PAのパケットキャプチャは1ファイルあたり200MBまでしか保存できません。帯域使用量の多い環境では、すぐに200MBを超えてしまってキャプチャしたかったデータを取得できない場合があります。フィルターオプションを利用することで、このような場合に特定のパケットだけをフィルタしてキャプチャを行うことができます。
【フィルタリングの設定】→【フィルタの管理】をクリックします。【パケット キャプチャ フィルタ】ウィンドウでフィルタを設定します。設定可能な項目は以下です。フィルタを空欄にした場合はanyとして動作します。
ID | フィルタのID番号(必須。最大4つまで) |
Ingress Interface (入力インターフェイス) | 入力元インタフェースを指定 |
Source(送信元) | 送信元 IP アドレスを指定 |
Destination(宛先) | 宛先 IP アドレスを指定 |
Src Port(送信元ポート) | 送信元ポートを指定 |
Dest Port(宛先ポート) | 宛先ポートを指定 |
Proto(プロトコル) | プロトコル番号を指定 (ICMP:1、TCP:6、UDP:19 など) |
Non-IP(非IP) | ARPやブロードキャストなどの非IPトラフィックを キャプチャ対象とするかどうかを指定。 ・include:非IP トラフィックを含める ・exclude:非IP トラフィックを除外 ・only:非IPトラフィックのみ |
IPv6 | IPv6パケットをキャプチャする場合指定 |
例えば、「172.16.1.75 と 8.8.8.8」間の通信をキャプチャしたい場合は以下のようなフィルタを設定します(フィルタはOKを押した直後から適用されます)。また、フィルタの有効/無効は【フィルタリング】のトグルスイッチで行うことができます。
キャプチャできないパケット
一般的なL2/L3スイッチなどと異なり、PAシリーズがキャプチャできるのはデータプレーン上で処理するパケットです。例えばルート検索に失敗する等、データプレーン上のキャプチャステージで処理する前にドロップされるパケットはキャプチャの対象外になります。また、上位機種で処理高速化のためにFPGAなどにオフロードされるパケットもデータプレーンをバイパスするためにキャプチャ対象外になります。
事前解析一致(Pre-Parse Match)オプション
事前解析一致オプションを有効にすると、このようなパケットも含めてキャプチャすることができる場合があります。
オフロード の無効化
オフロード機能を無効化することで、キャプチャできなかった一部のパケットをキャプチャすることが可能です。PAN-OS10.1からシステム全体のパフォーマンスへの影響を避けるために、特定の IP アドレスとポートに対してオフロードを選択的に無効化できるようになっています。
コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!