FortiGateでパケットキャプチャする方法
GUIでのパケットキャプチャ
GUIより システム>ネットワーク>診断 を選択します。

今回の例では
ホスト:39.111.110.113
プロトコル番号:1(ICMP)
でpingを取得してます
対象のIFを通る全てのパケットを取得したい場合は対象のインターフェイスのみとして、フィルタはOFFとします。
※下記の注意あり
上記でフィルタをしない場合の注意点
設定——————-
config firewall policy
edit <ポリシーID>
set auto-asic-offload enable <– 有効(デフォルト)
set auto-asic-offload disable <– 無効
next
end
パケットキャプチャできるのはCPUで処理されたパケットです。
デフォルトではASICで処理されるのでパケットはキャプチャできません。
全てのパケットを取得したい場合はポリシーでASIC処理をオフにします。
対象のポリシーが複数ある場合は全部に入れる必要があります。
※CPU負荷が上がるのでキャプチャが終了したら設定は戻しておきましょう

パケットが取得できていることが確認出来たら、「キャプチャを停止」を実施

「pcapで保存」を選択するとキャプチャファイルをダウンロードできます。
CLIでのパケットキャプチャ
diag sniffer packet "インターフェース" ”フィルタ” ”詳細 | 指定無” "パケット数 | 無限"
<オプション>
インターフェイス:インターフェイス名を指定
指定しない場合は「any」
フィルタ:複数の場合は「and」「or」 除外の場合は「not」
フィルタは””で囲まないとエラーになるので注意
例:”host 8.8.8.8 and port 53″ アドレスが 8.8.8.8 でポートが 53の場合
”host 8.8.8.8 and udp port 53″ アドレスが 8.8.8.8 でUDPのポートが 53の場合
”host 8.8.8.8 or port 53″ アドレスが 8.8.8.8 か ポートが 53の場合
”net 8.8.8.0 mask 255.255.255.0″ サブネットマスクで指定
”not host 8.8.8.8″ アドレスが 8.8.8.8 以外
詳細(Verbose):1~6
1: print header of packets
2: print header and data from ip of packets
3: print header and data from ethernet of packets (if available)
4: print header of packets with interface name
5: print header and data from ip of packets with interface name
6: print header and data from ethernet of packets (if available) with intf name
パケット数 :パケット数指定
終了するのは「Ctrl+c」
オプション指定しない場合はすべてのインターフェイスで取得します
CLIでのパケットキャプチャしたパケットをWiresharkで確認
CLIでのキャプチャしたパケットをWiresharkで確認するには一手間必要になります。
詳細(Verbose) レベル3・6 で取得したパケットが必要ですので、レベルを3・6で指定してください

取得したパケットをコピーしてメモ帳などに張り付けて保存してください
左記は3で所得した時の表示です

下記サイトから「fgt2eth.exe.12.2014.zip」をダウンロードする。
https://kb.fortinet.com/kb/documentLink.do?externalID=11186
このツールはFortigateで取得したパケットキャプチャをpcap形式に変換するためのツールです。
ダウンロードしたら任意の場所にzipファイルを解凍してコマンドプロンプトで下記のコマンドを実行
※例ではダウンロードしたフォルダで直接実行してます。ファイル場所は自身の環境で調整ください
fgt2eth.exe -in [キャプチャのテキストファイル] -out [出力後のファイル名.pcap]


作成したファイルを開くと確認可能です
コメント