Fortigateでよく使うコマンド

Fortigate隠しコマンド

IPSec事前共有鍵

事前共有鍵を確認(FortiOS 5.4以降)

diagnose sys ha checksum show <vdom> vpn.ipsec.phase1-interface <interface>

事前共有鍵を確認(FortiOS 5.3まで)

diagnose sys ha showcsum vpn.ipsec.phase1-interface <interface>

ローカルユーザーのパスワード

ローカルユーザーのパスワードを表示する(FortiOS 5.4以降)

diagnose sys ha checksum show <vdom> user.local <user>

ローカルユーザーのパスワードを表示する(FortiOS 5.3まで)

diagnose sys ha showcsum user.local <user>

初期構築時によくつかう

初期化

execute factoryreset

vdom有効化

config system global
    set vdom-admin enable
end

swtich mode解除

config system dhcp
    server delete 1
end
config firewall policy
    delete 1
end
config system virtual-switch
    delete internal
end

古いバージョンはこちら

config system dhcp server
    delete 1
end
config firewall policy
    delete 1
end
config system global
    set internal-switch-mode interface
end

ルーティング

ルーティングテーブル表示

両方確認しておいた方が良いでしょう

get router info routing-table all
get router info routing-table data

BGP

BGPネイバー確認

get router info bgp summary

BGP受信ルート表示

get router info bgp neighbors <neighbor IP> received-routes

BGP広告ルート表示

get router info bgp neighbors <neighbor IP> advertised-routes

IPSec関連

IPSecがうまく張れないときのデバッグコマンド

diagnose debug app ike -1

止める

diagnose debug app ike 0

デバッグ開始

diagnose debug enable

デバッグ停止

diagnose debug disable

トンネルリスト表示

diagnose vpn tunnel list

事前共有鍵を確認(FortiOS 5.4以降)

diagnose sys ha checksum show <vdom> vpn.ipsec.phase1-interface <interface>

事前共有鍵を確認(FortiOS 5.3まで)

diagnose sys ha showcsum vpn.ipsec.phase1-interface <interface>

システム状態

バージョン確認

get system status

HA状態確認

get system ha status

起動時間確認

get system performance status

CPU・メモリ使用率確認

get system performance status

リアルタイムにCPU・メモリ使用率を表示

diagnose sys top-summary

システム操作

再起動

execute reboot

シャットダウン

execute shutdown

フェイルオーバー/フェイルバック

Master機のAgeタイマーをリセットすると切り替わる

diagnose sys ha reset-uptime

Ageタイマー確認

diagnose sys ha dump-by all-vcluster

詳細は以下の記事をご覧ください。

Fortigateで手動フェイルオーバー/フェイルバックさせるときに知っておきたいこと

トラブルシューティング系

パケットキャプチャ

diagnose sniffer packet <interface> <filter> [verbose] [count] [tsformat]

interface

インタフェースを指定します。トラブルシューティングの場合は「any」にすることをおすすめします。

例:

diagnose sniffer packet any

filter

フィルターはtcpdump形式のものが利用できます。フィルターの詳細は以下の記事をご覧ください。

インフラエンジニアのためのパケット解析入門

パケットフィルタはダブルクォート(”)あるいはシングルクォート(’)で囲む必要があるので注意してください。

例:

diagnose sniffer packet any “udp and port 53”

verbose

出力レベルは1から6まで指定できます。

1もっとも単純な出力
2パケットを16進数でダンプする
3イーサネットヘッダーを含めて16進数でダンプする
4インタフェース名を出力する
5インタフェース名に加えてパケットを16進数でダンプする
6インタフェース名に加えてイーサネットヘッダーを含めパケットを16進数でダンプする

例:

diagnose sniffer packet any “udp and port 53” 4

count

出力回数を指定します。0にすると回数制限をしません。

例:

diagnose sniffer packet any “udp and port 53” 4 0

tsformat

タイムスタンプを表示します。

aUTCで時刻を表示
lローカルタイムで時刻を表示

例:

diagnose sniffer packet any “udp and port 53” 4 0 l

通信が通っているはずなのにパケットキャプチャで表示されない場合

ASICで処理されたパケットはキャプチャできません。パケットキャプチャできるのはCPUで処理されたパケットのみです。

そのような場合はポリシーでASIC処理をオフにします。以下はポリシーIDが1の場合の設定です。

IPv4パケットの場合
config firewall policy
edit 1
set auto-asic-offload disable
next
end
IPv6の場合
config firewall policy6
edit 1
set auto-asic-offload disable
next
end
マルチキャストの場合
config firewall multicast-policy
edit 1
set auto-asic-offload disable
next
end

auto-asic-offload disableは性能影響が出るので、パケットキャプチャが済んだらenableに戻しておく事を忘れないでください。

パスワードが分からないとき

パスワードが分からなくてどうにもならない時。

Fortigateの裏面を見てシリアル番号を控える

「FGT」で始まるものです

シリアルケーブルでPCと接続します
Fortigateの電源を入れます(or 再起動)
「login:」が表示されるまで待ちます
「login:」が表示されたら30秒以内に次のユーザー名とパスワードでログインします
  • ユーザー名として「maintainer」を入力
  • パスワードとして「bcpbXXXxxxxxxxxxxxx」を入力(XXXxxxxxxxxxxxxは最初に控えたシリアル番号「例:bcpbFGT1234567890」)
ログインできます

通信フローデバッグ

通信フローデバッグ開始

diagnose debug flow filter <フィルタ>
diagnose debug show function-name enable
diagnose debug console timestamp enable
diagnose debug flow trace start <表示数>
diagnose debug enable

通信フローデバッグ停止

diagnose debug disable
diagnose debug flow trace stop
diagnose debug flow filter clear
diagnose debug reset