1.コマンドの補足
各コマンドでは grep を利用し検索をかけることができます。
例えば Showコマンドで Configの内容を確認したい場合に、
> show | grep -f "internal"
と入力すると、以下のように Internal に関連した Config階層を一覧で出力させることができます。
-f のオプション以外に以下があります。
・-i 該当される検索文字のみ出力
・-n 項番を付けて出力 (Configの場合、Config内の番号順)
これは show コマンド以外にも get、diag と利用できます。
2)Ciscoでいうter len 0
デフォルトでは、CLIで長い表示をする場合に--More--で区切って表示される。
それは、以下のようにoutputが more になっているからである
FGT1 # get system console
mode : line
baudrate : 9600
output : more
login : enable
fortiexplorer : enable
そこで、設定をstandardに変更する
FGT1 # config system console
FGT1 (console) # set output standard
FGT1 (console) # end
FGT1 # get system console
mode : line
baudrate : 9600
output : standard
login : enable
fortiexplorer : enable
するとmore がなくなる。
たとえば、FGT1 # show full-configurationとすると、一気にすべての
Configが流れ出す。
2.各種コマンド
1)時間の確認
システム>ダッシュボード>ステータス より システム情報のシステム時間で確認できます
CLIでは、
> excute time
で確認できます。
2)CPU、メモリの利用率確認
> get system performance status
定期的に確認するには、
> get system performance top
3)各 Proxyデーモンの確認
> diag test application ”アプリケーション名” ”オプション番号”
DNSのキャッシュを確認する場合は、
> diag test application dnsproxy 7
DNSのキャッシュをクリアするには、
> diag test application dnsproxy 1
で実施。
3)物理ポートの確認
> diag hardware deviceinfo nic ”インターフェース名”
※MACアドレスや各カウンターを確認できます。
4)セッション、Flowの確認
> diag sys session list
※filterで出力結果を制御することもできます。
filterの vdで VDOM番号を指定できます。
設定した filterで任意のセッションのみ、クリアすることもできます。
> diag debug flow
通信の一連の流を追うことができます。
GUIでは以下の方法で確認できます。
システム>FortiView
FortiView で各セッション、UTMで処理された内容を一元的に確認できます。
例えば送信元アドレスをベースにしたセッション情報の場合、
のように、送信元アドレスを基準に、アプリケーション、宛先などをグライフィカルに確認できます。
UTMの場合は、脅威のカテゴリで確認できます。
AntiVirusで eicar を処理した場合は、
24時間の経過を追うことができ、対象項目をドリルダウンすることで誰が?何時?
など簡単に確認することができます。
5) トラブル時に取得するコマンド
> diag debug report
このコマンドは tech-support と同義です。
Configは一部(HA、Admin関連など)しか含まれませんので Configの Backupは必ず併せて
実施してください。
3.パケットキャプチャ
FortiGateでは2つの方法でパケットをキャプチャさせることができます。
① pcap ファイルで取得
② CLI上に Debugとして出力
まずは ① の pcap ファイルで取得する方法を説明します。
1) pcapファイルで取得
GUIより システム>ネットワーク>パケットキャプチャ を選択します。
「Create New」を選択します。
キャプチャを行う対象を選択します。
・インターフェース
どのインターフェースで送受信するトラフィックを対象にするか選択
・保存する最大パケット数
取得するパケット数を設定します
最大 10000 パケットを取得できます
フィルタ、IPv6、IPパケット以外 など必要に応じて選択、設定します
これで準備ができました
「進行」の項目が ”停止中” になっています。 を選択し、キャプチャを開始します。
キャプチャを停止するには、 を選択します。
キャプチャしたファイルをダウンロードするには を選択します。
のように sniffer_xx のファイル名でダウンロードされます。
このファイルを Wireshark で開きキャプチャ内容を確認します。
注意点は、ASIC(NP)に学習されたトラフィックは CPUで処理をされません。
よってパケットキャプチャでそのトラフィックを取得できません。
厳密にキャプチャを行うには、該当される Firewall Policyで以下を実施します。
※対象のトラフィックは限定した方が良いです。
”unset auto-asic-offload ” で ASIC処理を無効にできます。
2) CLIで取得
TCPダンプのようなことはもちろんできます。
>diag sniffer packet "インターフェース" ”パケットフィルタ” ”出力表示内容” "パケット数"
で実行します。
実際の設定は、以下がわかりやすい。
https://kb.fortinet.com/kb/documentLink.do?externalID=FD33124
こちらも同様にキャプチャを行うには、"unset auto-asic-offload ” で ASIC処理を無効にします。
Firewall Policy で以下を実施します。
https://kb.fortinet.com/kb/documentLink.do?externalID=FD33124
例は以下。ログの量が多いので、IPを制限した方がいいでしょう。ただし、srcとdstで指定すると、戻りパケットが取れないので、hostで指定する。
今回は、203.0.113.159を含むIPアドレスでTCPの通信を、ログレベル1で、10行、時刻表記を変更して表示している。
interfaces=[internal]
filters=[host 203.0.113.159 and tcp]
2018-01-01 01:12:48.025764 192.168.1.111.64005 -> 203.0.113.159.80: syn 148305027
2018-01-01 01:12:48.026162 192.168.1.111.64006 -> 203.0.113.159.80: syn 1691563316
2018-01-01 01:12:48.041343 203.0.113.159.80 -> 192.168.1.111.64006: syn 465222532 ack 1691563317
2018-01-01 01:12:48.041486 203.0.113.159.80 -> 192.168.1.111.64005: syn 3092072803 ack 148305028
2018-01-01 01:12:48.041654 192.168.1.111.64006 -> 203.0.113.159.80: ack 465222533
2018-01-01 01:12:48.042560 192.168.1.111.64005 -> 203.0.113.159.80: ack 3092072804
何点か補足
①ログのレベル
デフォルトは1であるが、数字を変えることで、ログの深さを変更できる。通常は1でいい。トラブルシュートなどで詳細を見るなら、もっとも詳細なのが3である。
以下は、上記のURLからのコピペ
1: print header of packets (default)
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
最後の時刻は、何もつけないか、1かaである。試してみればわかるが、aがUTCなので一番見やすい。ただ、本体の設定で日本のGMT+9にしておいても、ログだとこの設定が反映されず、9時間早い時間で表示される。→なにか対処策があるような気がする。