FortiGate 60F CLIチートシート|GUIが落ちても困らないdiagnose・execute逆引き【FortiOS 7.6/8.0】

2026年10月22日、Fortinetは、FortiOSの重大度Critical/Highの脆弱性をまとめて修正したバージョン(7.6.8、8.0.2など)を公開しました。脆弱性の詳細は11月10日に公表される予定で、それまでは中身が分からないまま更新を急ぐ必要があります。その9日前、10月13日にもFortinetはFortiOSのHTTPS管理画面(GUI)を、認証なしでサービス停止に追い込める脆弱性を公表しています(FG-IR-26-181)。もし管理画面が応答しなくなったら、そのときに頼れるのはSSHかコンソールから叩くCLIだけです。

6月に大きく報じられたFortiBleed(FortiGateの認証情報が大量に出回った件)でも、Fortinetが最初に求めたのは「管理者セッションを切る」「見覚えのないアカウントを探す」といった点検でした。どれもCLIなら数行で終わる作業です。ネットワークエンジニア(以下、NE)として現場でFortiGateを触っていても、本当に困ったときに効くのはdiagnose系・execute系のコマンドだと感じます。

この記事は、自宅ラボのFortiGate 60F(FortiOS 7.6系)を前提に、「GUIではできない・GUIより確実にできる」作業だけを逆引きで集めたチートシートです。状態確認/通信トラブルの切り分け/セキュリティ点検/セッション・ログ操作/バックアップとアップグレードの5つに分けています。情報は2026年10月25日時点のものです。

60Fの構築がまだの方は、先にFortiGate 60F 初期設定の記事からどうぞ。

2026年秋、FortiGateのCLIを手元に置いておくべき理由

今年のFortiGateまわりは、GUIの外で動ける力が試される出来事が続きました。

2026年のFortiGate関連の主な出来事:4月FortiOS 8.0.0公開、6月FortiBleed、10月13日GUIのDoS脆弱性公表、10月22日脆弱性の一斉修正、11月10日詳細公表予定
2026年のFortiGate関連の主な出来事

AIが見つけた脆弱性の一斉修正(10月22日)

10月22日の修正版は、FortinetによればAIを使った社内のセキュリティテストで見つかった脆弱性を初めてまとめて直したリリースです。修正版はFortiOS 8.0.2、7.6.8、7.4.13、7.2.14以降で、FortiManagerやFortiAnalyzerも同時に更新されています。公表時点で悪用は報告されていませんが、CVEなどの詳細は11月10日まで伏せられます。

Fortinetは、攻撃側もAIで修正前後の差分を解析し、短時間で攻撃コードを作れるようになっていると警告しています。インターネット側に管理画面を出している機器から優先して更新し、すぐに上げられない場合は管理アクセスの制限やMFAで時間を稼ぐ、というのが公式の推奨です。この記事の公開時点(11月1日)は、まさに「詳細公表前に上げ切る」期間の中にあります。

GUIを止められる脆弱性(FG-IR-26-181)

10月13日公表の脆弱性は、細工したHTTPリクエストで管理画面を停止させられるものです。CVSSは6.7(Medium)で、公表時点で悪用は確認されていません。この脆弱性自体は7.6.7と8.0.1で直っていますが、10月22日の修正を含めると、7.6系なら7.6.8以降、8.0系なら8.0.2以降が今の目安です。4月にこのブログで7.6.6へ上げる手順を紹介しましたが、その7.6.6も対象に入っています。まずは get system status で自分のバージョンを確認してください。

FortiBleed後に求められた「点検」

FortiBleedについてFortinetは、新しい脆弱性ではなく、過去に漏れた認証情報の使い回しや、MFAなし・弱いパスワードの機器への総当たりが原因だと説明しています。そのうえで、セッションの切断、パスワード変更、MFAの有効化、見覚えのないアカウントの確認を推奨しました。経緯はFortiBleedの解説記事にまとめています。パッチを当てただけでは終わらないというのが今年の大きな教訓で、点検作業そのものはCLIのほうが速く確実です。

FortiOS 8.0でGUIは便利に、CLIの読み方はむしろ大事に

3月に発表されたFortiOS 8.0は、AI利用の可視化・制御や耐量子暗号を前面に出したリリースです。60Fも8.0.0のリリースノートで対応機種に含まれています。一方で、CLIリファレンスを見ると、8.0.0にあった config llm 系の設定が8.0.1で削除されるなど、マイナーアップデートでもコマンド体系が動いています。GUIやAIアシスタントが何をしているかを確かめるにも、結局はCLIの出力を読めることが前提になります。耐量子暗号の話はFortiGateのPQC移行の記事で詳しく扱っています。

この記事の前提と使い方

前提は以下のとおりです。

  • 機種:FortiGate 60F(自宅ラボ実機)
  • ファームウェア:FortiOS 7.6系(8.0系でも基本は同じだが、細部はリリースノートで要確認)
  • 接続方法:SSH(コンソールケーブルでも同じコマンドが使えます)

コマンド表は「やりたいこと」→「コマンド」→「補足」の順です。diagnose系は参照が中心ですが、execute系には再起動や初期化など戻せない操作が含まれます。補足に「要注意」とある行は、本番機ではバックアップ取得後に実行してください。

FortiOSのCLIは省略入力ができ、diagnose sys session stat は diag sys session stat でも通ります。本記事では正式表記で統一します。なお、60Fのようなメモリ2GBのモデルでは、SSL VPNはすでに使えません。リモートアクセスはIPsec VPNが前提になります。

状態確認:GUIより深い情報をCLIで取る

ダッシュボードでは「CPUが高い」ことまでは分かっても、どのプロセスが原因かまでは追えません。そこから先はCLIの出番です。

やりたいことコマンド補足
バージョン・シリアル・稼働時間を見るget system status脆弱性情報の該当確認はまずここから
CPUを消費しているプロセスを特定するdiagnose sys top 5 305秒間隔で上位30プロセスを表示。qで終了。並べ替えは大文字のP(バージョンによってはC)でCPU順、Mでメモリ順
メモリの内訳を確認するdiagnose hardware sysinfo memoryコンサーブモード調査の起点。2GBモデルでは特に重要
NICのエラーカウンタを見るdiagnose hardware deviceinfo nic wan1CRCエラーやドロップの確認に。ケーブル・対向機器の切り分けに有効
ルーティングテーブル全体を見るget router info routing-table all静的・動的経路をまとめて確認できる
ARPテーブルを確認するget system arpクリアは execute clear system arp table(CLIのみ)
NTPの同期状態を確認するdiagnose sys ntp statusログの時刻ずれ調査に。点検時の時系列整理にも必須
シグネチャのバージョンを一覧するdiagnose autoupdate versions手動更新は execute update-now。仮想パッチの反映確認にも使う
再起動・クラッシュの履歴を読むdiagnose debug crashlog read「いつの間にか再起動していた」調査の第一歩
セッション数の統計を見るdiagnose sys session statセッション枯渇の疑いがあるときにまず実行

通信トラブルの切り分け:debug flowとパケットキャプチャ

「通信が通らない」ときの二大武器がdebug flowとパケットキャプチャ(sniffer)です。debug flowは、FortiGateがそのパケットをどのポリシーで許可・破棄したかを内部処理のレベルで見せてくれます。GUIのログに「Deny」の1行しか出ない場面でも、理由まで追えます。

切り分けの順番は「状態確認 → debug flow → sniffer →(VPNなら)IKEのdebug」が基本です。

FortiGate 60Fで通信が通らないときのCLI切り分け順:状態確認(session stat)→debug flow→sniffer→IKE debug、最後にdebug disableとdebug reset
通信が通らないときのCLI切り分けフロー
やりたいことコマンド補足
パケットの許可/破棄の理由を追うdiagnose debug flow filter addr 192.168.1.10
diagnose debug flow trace start 10
diagnose debug enable
対象IPで絞ってから10パケット分をトレース。ポリシー未マッチや逆経路チェック失敗などが分かる
パケットキャプチャを取るdiagnose sniffer packet any 'host 192.168.1.10' 4 100末尾はverbosity 4・100パケット。フィルタはtcpdumpと同じ書き方
Wiresharkで読むためのキャプチャを取るdiagnose sniffer packet any 'host 192.168.1.10' 6 100 averbosity 6と絶対時刻で取得し、変換ツールでpcapにする前提
送信元IPを指定してpingを打つexecute ping-options source 192.168.1.99
execute ping 8.8.8.8
戻り経路の確認に。GUIからは送信元を細かく指定できない
経路を確認するexecute traceroute 8.8.8.8どこで途切れるかの切り分けに
IPsec VPNのネゴシエーション失敗を調べるdiagnose debug application ike -1
diagnose debug enable
Phase1/Phase2のどこで落ちているかが分かる。プロポーザル不一致の特定に
VPNトンネルの状態を確認するdiagnose vpn ike gateway list
diagnose vpn tunnel list
SAの確立状況やカウンタまで見える
LDAPサーバとの認証を単体でテストするdiagnose test authserver ldap <サーバ名> <ユーザ> <パスワード>実ユーザで認証が通るかまで確認できる
デバッグを確実に止める(後始末)diagnose debug disable
diagnose debug reset
debug系を使ったら必ず実行。出しっぱなしはCPU負荷の原因になる

セキュリティ点検:FortiBleed後に見直したいCLI

今年いちばん追加したかったのがこのカテゴリです。Fortinetが示した点検項目を、CLIで実行できる形に置き換えました。GUIに入れない、あるいはGUI自体を信用しきれない状況でも同じ手順で確認できます。

やりたいことコマンド補足
いまログインしている管理者を確認するget system info admin status見覚えのない接続元IPがないかを確認
管理者セッションを強制的に切るexecute disconnect-admin-session ?
execute disconnect-admin-session <番号>
?で表示される番号を指定。要注意:自分のセッションも切れるので番号をよく確認
管理者アカウントの一覧と許可元を見るshow system adminforticloud、fortiuserなど、作った覚えのないアカウントがないか。trusthostの設定有無も確認
VPN用のローカルユーザーを確認するshow user local最近追加されたユーザーや、心当たりのないユーザーがないか
管理アクセスを絞るポリシーを確認するshow firewall local-in-policyFortinetは信頼済みホストの指定、さらにlocal-inポリシーでの制限を推奨している
管理者のログイン履歴をCLIで読むexecute log filter category 1
execute log filter field subtype system
execute log display
イベントログのうちシステム系に絞る。見覚えのないIPからのログインを探す
IPsec VPNの接続をいったん切るdiagnose vpn ike gateway clear name <フェーズ1名>指定したトンネルのSAを切って張り直させる。要注意:名前を省くと全トンネルが対象。パスワード変更とセットで実施
GUIが固まったときに管理画面のプロセスを確認するdiagnose sys process pidof httpsd再起動は diagnose sys kill 11 <PID>。要注意:根本対策はバージョンアップ

Fortinetは、見覚えのない設定変更やアカウントが見つかった場合はその機器を侵害済みとして扱うよう求めています。設定を直して終わりにせず、正常時のバックアップとの比較や、AD・LDAP連携先の確認まで進めてください。VPN機器全般が狙われる背景は狙われるVPN機器の記事でも整理しています。

セッション・ログ操作:CLIだけの強制操作

既存セッションの強制切断は、ポリシー変更をすぐ反映させたいときの定番作業です。条件を絞って切る操作はCLIのほうが確実です。ログもGUIのほうが見やすいものの、SSHしか届かない障害時にはCLIでの閲覧が頼りになります。

やりたいことコマンド補足
特定の宛先のセッションだけ表示するdiagnose sys session filter dst 8.8.8.8
diagnose sys session list
filterで条件を決めてからlistする2段構え。解除は diagnose sys session filter clear
セッションを強制的に切るdiagnose sys session clear要注意:filterが未設定だと全セッションが切れる。必ずfilterを確認してから実行
DHCPのリース一覧を確認するexecute dhcp lease-listどの端末にどのIPを払い出したかをすぐ確認できる
トラフィックログをCLIで見るexecute log filter category 0
execute log display
category 0がトラフィック、1がイベント。条件の確認は execute log filter dump
テスト用のログを出すdiagnose log testSyslogやログ転送の疎通確認に使える

バックアップとアップグレード:前後で必ず叩くexecuteコマンド

10月の一斉修正のように「詳細が出る前にすぐ上げる」場面が増えています。上げる前の退避と、失敗したときの戻し方をセットで覚えておくと、慌てずに済みます。

やりたいことコマンド補足
コンフィグをTFTPサーバへ退避するexecute backup config tftp fg60f.conf 192.168.1.50作業前バックアップの基本形。点検時の「正常な状態」との比較用にも残す
コンフィグをUSBメモリへ退避するexecute backup config usb fg60f.confサーバ不要で手軽
コンフィグを戻すexecute restore config tftp fg60f.conf 192.168.1.50要注意:戻したあと自動で再起動する
2つのファームウェア領域の中身を確認するdiagnose sys flash listどちらの領域にどのバージョンが入っているかが分かる
起動する領域を切り替える(切り戻し)execute set-next-reboot secondaryアップグレードに失敗したとき旧バージョンへ戻す。手順はファームウェアアップグレードの記事で解説
ファームウェアをTFTPから入れ直すexecute restore image tftp <ファイル名> <サーバIP>GUIが使えないときの復旧手段。再起動を伴う
再起動する/停止するexecute reboot
execute shutdown
要注意:shutdownは電源が落ちるまで進む。リモートからは特に慎重に
工場出荷状態に戻すexecute factoryreset要注意:全設定が消える。侵害が疑われる機器を作り直すときや廃棄前に
サポートに出す情報をまとめて取るexecute tac report問い合わせ前に。各種diagnoseの結果をまとめて出力する

8.0系への移行を考えている場合は、リリースノートの「Changes in CLI」「Removed CLI commands」を必ず読んでからにしてください。前述のとおりマイナーアップデートでもコマンドが消えることがあり、古い設定が読み込めずに一部だけ反映される事故につながります。7.6系はサポート期間が長く残っているので、検証機で8.0を試しつつ、本番は7.6.8以降で固めるのが現実的だと考えています。

まとめ:GUIが使えない日に備えて

本記事では、FortiGate 60F(FortiOS 7.6系)で使う「GUIでできない・GUIより確実」なCLIコマンドを5つのカテゴリで逆引きできるようにまとめました。2026年は認証情報の大量流出、GUIを止める脆弱性、AIが見つけた脆弱性の一斉修正と、CLIで動ける力が試される一年でした。

まずは次の3つから試してみてください。

  • get system status でバージョンを確認し、7.6.8(8.0系は8.0.2)より前なら更新を計画
  • get system info admin status と show system admin で管理者まわりを点検
  • execute backup config で「正常な状態」のコンフィグを残しておく

関連記事もあわせてどうぞ。

このチートシートは、実機で検証するたびに追記していきます。ブックマークして現場でお使いください。意見や追加してほしいコマンドがあれば、Xの@ponflogまでお気軽にどうぞ。

WAN側で開けてはいけない設定は、実機画面を使ってチェックリストにまとめています。

👉 FortiGateのWAN側設定チェックリスト|管理アクセス・VPN・ファームウェアを実機で確認

PR