【FortiGate】強制アップグレード(自動アップグレード)の仕様と回避対策

  • URLをコピーしました!
目次

はじめに

FortiGate を安全に運用する上で、ファームウェアのバージョン管理と脆弱性対策は非常に重要です。

近年、セキュリティ強化を目的として、FortiOS 7.4.8 以降のバージョンにおいて、特定の条件下にある FortiGate アプライアンスのファームウェアが「強制的に自動アップグレード(Forced Automatic Upgrade)」される仕様が追加されました。実務において意図しないタイミングでの再起動やバージョンアップを防ぐためには、この新仕様を正しく理解しておく必要があります。

本記事では、FortiGate における強制アップグレードが実行される条件や仕様、延期手順に加え、ライセンスが有効であるにもかかわらず強制アップグレードが走ってしまう特有のリスクと回避対策について解説します。

この記事でわかること
  • FortiOS 7.4.8 以降における強制アップグレードの基本仕様と発生条件
  • アップグレードスケジュールの確認と延期(ディレイ)の設定方法
  • ライセンス有効時に発生する「意図しない強制アップグレード」の原因と回避策

FortiGate における強制アップグレードの基本仕様

FortiOS 7.4.8 以降、脆弱性の放置を防ぎデバイスを保護するプロアクティブな対策として、特定のライセンス状態やサポート状況にある端末に対し、ファームウェアの自動アップグレードが強制的にスケジュールされる仕様が実装されました。

公式ドキュメントでは、この仕様追加の背景について以下のように記載されています。

参考: Fortinet Document Library
Automatic firmware upgrades for FortiGate appliances with invalid support contracts or that have reached EOES

“To enhance security and reduce vulnerabilities, FortiGates that are no longer under a valid Firmware & General Updates (FMWR) license or that have reached End of Engineering Support (EOES) will automatically upgrade to the latest patch within their current minor version. This proactive measure ensures that all devices remain protected with the most up-to-date security features.”

アップグレードされるバージョンの範囲

この強制アップグレードによって、意図せずメジャーバージョンやマイナーバージョンが大きく上がってしまう(例: 7.4.x 環境が勝手に 7.6.x へアップグレードされる)ことはありません。

適用されるのは、あくまで「現在のマイナーバージョン内における最新パッチ」に限定されます。例えば、現在稼働しているバージョンが 7.4.8 であり、そのマイナーバージョン(7.4系)の最新パッチが 7.4.9 である場合、7.4.9 へのアップグレードがスケジュールされます。

FortiGate のファームウェア管理や推奨バージョンの考え方については、以下の記事もあわせてご参照ください。

強制アップグレードが実行される条件と例外

FortiGate は毎日 FortiGuard へ通信を行い、新しいパッチの有無を確認しています。この確認プロセスにおいて、以下のいずれかの条件を満たしているとシステムが判断した場合、新しいファームウェアイメージへの強制アップグレードがスケジュールされます。

実行される条件

FMWR ライセンスの無効化(期限切れ)

Firmware & General Updates の契約が無効になっている場合

EOES(End of Engineering Support)到達

稼働中のバージョンがエンジニアリングサポート終了のフェーズに入っている場合

参考: Fortinet Document Library

“The FortiGate checks for a new patch upgrade on FortiGuard daily. If a new patch is discovered and the firmware license is invalid or the FortiGate has reached EOES, it will schedule an upgrade to the new firmware image.”

例外となる条件(実行されないケース)

ただし、機器が特定の管理下にある環境では、システム全体への影響を考慮して強制アップグレードの対象外(または独自挙動)となります。

Security Fabric に参加している場合

自動アップグレードは実行されません(また、アップグレードがスケジュールされている状態では Fabric に参加できません。

FortiManager に接続されている場合

自動アップグレードは実行されません。万が一スケジュールされた後に FortiManager へ接続した場合、そのスケジュールはキャンセルされます。

HA(冗長化)構成の場合

強制アップグレードは「プライマリ機」に対してのみ進行します。セカンダリ機自体が単独で強制アップグレードを実行することはありませんが、プライマリ機が主導する通常のクラスタアップグレードの仕組みを通じて、結果的に両機ともアップグレードされます。

アップグレードの延期方法とステータス確認コマンド

この新仕様において管理者が最も注意すべき点は、「一度スケジュールされた強制アップグレードは、キャンセル(取り消し)ができない」という事実です。 実際に execute federated-upgrade cancel コマンドを実行してもエラーとなり、システムに拒否されます。

ただし、日中の業務時間内での予期せぬ再起動を避けるために、インストールのタイミングを「延期(ディレイ)」することは可能です。

参考: Fortinet Document Library
“While this enforced compliance upgrade cannot be canceled, the installation schedule can be adjusted in two ways:”

アップグレードの延期方法

スケジュールの調整には、以下の2つのアプローチが用意されています。

config によるスケジュール調整

config system fortiguard 階層にて auto-firmware-upgrade-day または auto-firmware-upgrade-delay を設定することで、新しいパッチが検知されてから「14日間のウィンドウ内」でインストール日時を再調整できます。

execute コマンドによる1週間の延期

以下のコマンドを実行することで、既存のインストール予定日を「きっかり1週間後」に延期することができます。

# execute auto-upgrade delay-installation
(※ diagnose test forticldd 93 も同等の動作をします)

ステータス確認と手動トリガーのコマンド

強制アップグレードがスケジュールされているかどうかの確認や、FortiGuard へのチェックを手動でトリガーするための新しい CLI コマンドが実装されています。

アップグレードステータスの詳細確認

自動アップグレードが有効(Forced)になっているか、いつ実行されるのかを確認します。

# execute auto-upgrade status
(※ diagnose test application forticldd 13 も同等の動作をします)

新しいイメージの確認を手動でトリガー

FortiGuard へのファームウェアチェックを即座に実行します。

# execute auto-upgrade check-for-new-image
(※ diagnose test forticldd 90 も同等の動作をします)

【重要】ライセンスが有効でも強制アップグレードされるリスクと対策

実務において最も注意すべきなのは、「FMWR ライセンスを正常に更新し、かつ自動アップグレード設定を無効化しているにもかかわらず、強制アップグレードが実行されてしまう」というケースです。

Fortinet の公式コミュニティ(Technical Tip)でも、この予期せぬ挙動についての注意喚起が行われています。

参考: Fortinet Community Technical Tip
Unexpected automatic firmware upgrade despite FMWR license validity and auto-upgrade disabled

“The automatic upgrade happened because the Auto-update schedule was disabled, so FortiGate could not validate the new FMWR license. FortiGate continued using the old expired license. Without a valid Firmware & General Updates (FMWR) license, the device can not be upgraded to the next minor or major firmware version. However, FortiGate will enforce an automatic update to the latest patch of the current minor version if the appliance has reached End of Engineering Support (EOES).”

意図しない強制アップグレードが発生する原因

この現象の根本的な原因は、FortiGate 全体に対するスケジュール更新機能である「Auto-update schedule」自体を無効化(disable)してしまっていることにあります。

この機能が無効になっていると、管理者がライセンスを更新したとしても、FortiGate 本体が FortiGuard サーバーへ通信して「新しいライセンス情報」を取得・検証することができません。その結果、機器内部に残っている古いライセンス情報のまま「期限切れ(無効)」と誤認し、強制アップグレードのプロセスを自らトリガーしてしまいます。

正しい設定方法と回避策

ライセンスの有効性を正しく認識させ、意図しない強制アップグレードを防ぐためには、以下の設定状態を維持する必要があります。

Auto-update schedule を有効にする(必須)

ライセンス認証やアップデート通知を正常に機能させるため、システム全体のスケジュール機能は必ず有効にしておきます。

config system autoupdate schedule
    set status enable
end

ファームウェアの自動アップグレードのみを無効にする

(※強制アップグレード対象外の通常運用時において)ファームウェアの自動アップグレードだけを止めたい場合は、こちらの項目のみを無効化します。これであれば、ライセンスの検証プロセスは阻害されません。

config system fortiguard
    set auto-firmware-upgrade disable
end

FortiGuardサーバーへの通信確保

ライセンス検証を成功させるため、FortiGate から以下の FQDN へ正常に通信できることを確認してください。

  • update.fortiguard.net
  • service.fortiguard.net

もし show system federated-upgrade を実行して set source forced-upgrade というステータスが表示された場合は、すでにライセンス誤認(または実際の期限切れ)による強制アップグレードが作動しているサインとなります。

まとめ

本記事では、FortiOS 7.4.8 以降で導入された強制アップグレード(自動アップグレード)の仕様と、予期せぬ再起動を防ぐための対策について解説しました。

  • ライセンス無効や EOES 到達を条件に、同一マイナーバージョンの最新パッチへ強制アップグレードされる。
  • スケジュールされたアップグレードはキャンセル不可だが、コマンド等でインストールの延期は可能である。
  • Security Fabric や FortiManager 傘下のデバイスは、システム影響を考慮して強制アップグレードの対象外となる。
  • 更新スケジュール(autoupdate schedule)の無効化はライセンス誤認を引き起こし、強制アップグレードの引き金となるため避ける。

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

インフラ(クラウド/NW/仮想化)から Web 開発まで、技術領域を横断して活動するエンジニア💻 コンシューマー向けエンタメ事業での新規開発・運営経験を活かし、実戦的な技術ノウハウを発信中

[ Certs ] CCIE Lifetime Emeritus / VCAP-DCA ✒️ [ Life ] 技術書・ビジネス書愛好家📖 / 小・中学校で卓球コーチ👟

目次