パケットキャプチャ機能(マネジメントポート編)

今回は、PAシリーズのマネジメントポートでのパケットキャプチャ方法について記載します。

Take a Packet Capture on the Management Interface

パケットキャプチャ手順

パケットのキャプチャ方法

マネジメントポートのパケットキャプチャはすべてCLIで実行します。

コマンド構文
tcpdump [filter] "フィルター設定" [snaplen] バイト数

キャプチャを行うだけであれば単に”tcpdump“と打つだけでOKです。

admin@PA-440> tcpdump
Press Ctrl-C to stop capturing

dropped privs to tcpdump
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

^C38 packets captured              <---- 「Ctrl+C」 を押してキャプチャを停止
59 packets received by filter     <---- 取得したパケットの数
0 packets dropped by kernel     <---- 取得に失敗したパケットの数
admin@PA-440>

キャプチャしたパケットの確認方法

取得したパケットをCLI上で確認する場合”view-pcap“コマンドを利用します。

admin@PA-440> view-pcap mgmt-pcap mgmt.pcap
reading from file /opt/pan/.debug/mgmtpcap/mgmt.pcap, link-type EN10MB (Ethernet)
15:51:43.467904 IP 172.16.1.244.ssh > 172.16.1.246.55786: Flags [P.], seq 2946402673:2946402733, ack 374876931, win 269, options [nop,nop,TS val 263447547 ecr 1675660883], length 60
15:51:43.468304 IP 172.16.1.244.ssh > 172.16.1.246.55786: Flags [P.], seq 60:176, ack 1, win 269, options [nop,nop,TS val 263447547 ecr 1675660883], length 116
15:51:43.468351 IP 172.16.1.244.ssh > 172.16.1.246.55786: Flags [P.], seq 176:212, ack 1, win 269, options [nop,nop,TS val 263447547 ecr 1675660883], length 36
15:51:43.487316 IP 172.16.1.246.55786 > 172.16.1.244.ssh: Flags [.], ack 60, win 2047, options [nop,nop,TS val 1675661081 ecr 263447547], length 0
15:51:43.487357 IP 172.16.1.246.55786 > 172.16.1.244.ssh: Flags [.], ack 212, win 2044, options [nop,nop,TS val 1675661081 ecr 263447547], length 0
15:51:43.488716 IP 11.114.85.34.bc.googleusercontent.com.https > 172.16.1.244.40100: Flags [P.], seq 1143128292:1143128369, ack 2975289358, win 3876, options [nop,nop,TS val 2096383958 ecr 1957061069], length 77

pcapを外部に転送するためには、SCPコマンドもしくはTFTPコマンドを利用します。

コマンド構文
{scp|tftp} export mgmt-pcap [remote-port] ポート番号 [source-ip] 送信元IP <from> mgmt.pcap <to> ユーザー名@宛先IP:ファイルパス

filter オプション

取得するパケットをフィルタリングしたい場合は filter オプションを利用します。filter の記載方法はtcpdumpコマンドに準拠したかたちになっています。

コマンド例
・ 8.8.8.8 でフィルタ
   admin@PA-440>  tcpdump filter "host 8.8.8.8"

・ 送信元 8.8.8.8 でフィルタ
   admin@PA-440>  tcpdump filter "src host 8.8.8.8"

・ 宛先 8.8.8.8 でフィルタ
   admin@PA-440>  tcpdump filter "dst host 8.8.8.8"

・ 宛先 8.8.8.8、宛先ポート 53 でフィルタ
   admin@PA-440>  tcpdump filter "dst host 8.8.8.8 && dst port 53"

・ ネットワーク 172.16.1.0/24 でフィルタ
   admin@PA-440>  tcpdump filter "net 172.16.1.0/24"

・ 複数のフィルタを組み合わせる場合は、andor を利用します。
  送信元 172.16.1.75、宛先 8.8.8.8 でフィルタ
   admin@PA-440>  tcpdump filter "src host 172.16.1.75 and dst host 8.8.8.8"

・ フィルタした条件を除外する場合は、not を利用します。
   宛先8.8.8.8 を除外
   admin@PA-440>  tcpdump filter "not dst host 8.8.8.8"

snaplen オプション

snaplen オプションは、キャプチャするデータ1パケットあたり何バイトまで取得するかを指定するオプションです。以下のように機種ごとに取得するデータ長が異なるようですが、PA-5200で確認したところ、オプションを利用しなくても最大値(65535)になっていたので現在はあまり気にする必要はないかもしれません。

admin@PA5250> tcpdump
Press Ctrl-C to stop capturing

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

^C10 packets captured
14 packets received by filter
0 packets dropped by kernel

Each platform has a default number of bytes that tcpdump captures.
The PA-220 firewalls capture 68 bytes of data from each packet and anything over that is truncated. The PA-7000 Series firewalls and VM-Series firewalls capture 96 bytes of data from each packet. To define the number of packets that tcpdump will capture, use the snaplen (snap length) option (range 0-65535).
Setting the snaplen to 0 will cause the firewall to use the maximum length required to capture whole packets.

pan-os-11.1 admin-guide

コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!

タイトルとURLをコピーしました