某弊社はFortigate200A→100D→100Eと5年ごとに入れ替えてきましたが、100Eも5年経過しましたので60Fに入れ替えました。
今までは新旧の画面を見比べながら手作業で初期設定しておりましたが、100Eを導入してから
・iPhone250台導入し、VPN接続
・リモートワークに備えPC400台をVPN接続
したため、今まで通りの手作業では非現実的と判断し、configの移行をすることにしました。
異なる機種へconfigを移行する選択肢
異なる機種へconfigファイルを移行する選択肢は3つありますが、時すでに遅しの状態であったため3.しか選択肢がありませんでした。
1. FortiConverterサービスを活用(有料)
ファイアウォール移行サービス FortiConverter (fortinet.com)
2.FortiConverterツールを活用(有料)
3.configファイルのエクスポート → インポート(無料・自力)
本手順はメーカーでサポートしていない方法のため、この情報を利用することで発生した損害に対しては一切責任を負わないものとします。
事前作業(ファームウェアバージョンを合わせる)
1. 本体上部のシールに記載してる通り、新Fortigateをスタンドアロンで起動し、IPアドレスを192.168.1.100にしたPCをLAN1に接続します。
2. 本体上部のシールに記載してる通り、ブラウザで192.168.1.99に接続します。
3. IPアドレスを社内ネットワークに接続する仮IPアドレスに変更し、ネットワークのインタフェースのinternalのDHCPサーバの機能を無効にします。社内ネットワークに192.168.1.99が存在する場合、別のアドレスに変更します。
4. ネットワークのスタティックルートにデフォルトルート追加します。宛先IPアドレスはデフォルゲートウェイ宛にします。この設定をしないと社内ネットワークに接続した後、ブラウザの管理コンソールに接続できなくなります。
5. このサイトにいらしゃる方は脆弱性対応のため現Fortigateは常に最新バージョンになっているかと思いますので、新Fortigateのファームウェアを最新にします。
6. 新Fortigateを社内ネットワークに接続します。
7. 現Fortigateと新Fortigateそれぞれの管理画面からconfigファイルを暗号化せずに取得します。
8. 新Fortigateを社内ネットワークから切り離してスタンドアロンの状態にします。
configファイル修正
現Forigateのconfigをベースに新Fortigateの情報を反映させます。
ポイント1:1行目の機種名、ファームウェアバージョン、ビルドバージョンの記載を書き換える
ポイント2:存在しないインタフェース情報は削除
ポイント3:モデルごとにインタフェース名が異なるため、インタフェース名を合わせる
ファイアウォールポリシーに記載されているインタフェース名ももれなく変更します。
1. 新configの1行目を現configに上書きします。
<現config>
#config-version=FG100E-7.0.13-FW-build0566-231024:opmode=0:vdom=0:user=admin
<新config>
#config-version=FGT60F-7.0.13-FW-build0566-231024:opmode=0:vdom=0:user=admin
2. 存在しないインタフェースを削除します。今回はLANポートが16ポートから5ポートに減っているため、6~15ポートを削除します。その他、HA1、HA2ポートなども削除しました。
<現config>
edit "port5"
set vdom "root"
set type physical
set snmp-index 16
next
edit "port6"
set vdom "root"
set type physical
set snmp-index 17
next
<新config>
edit "internal5"
set vdom "root"
set type physical
set snmp-index 8
next
edit "a"
set vdom "root"
set type physical
set snmp-index 9
next
3. インタフェース名が異なる場合はインタフェース名を変更します。
今回は”port1″が”internal1″に、”lan”が”internal”に変わっていました。
<現config>
edit "port1"
set vdom "root"
set type physical
set snmp-index 12
next
config firewall policy
edit 43
set status disable
set name "DisconnectingInternet_Win8.1"
set uuid c55c1a5c-9079-51ed-9f2f-dd0ed2cf0b5e
set srcintf "lan"
set dstintf "wan1"
set srcaddr "DisconnectingInternet_Win8.1"
set dstaddr "all"
set schedule "always"
set service "ALL"
set logtraffic disable
next
configファイルをリストア
1. スタンドアロンの新FortigateのLAN1にPCを接続します。
2. PCと新Fortigateをコンソールケーブルで接続し、TeraTermでシリアル接続します。
TeraTermで接続するのは、config反映中にエラーが発生した場合にエラー内容を確認するためです。
3. 管理画面からconfigファイルをリストアします。
4. エラーが発生するとconfigリストア後の再起動後、TeraTermに以下のメッセージが出てきます。
Please see details by the command 'diagnose debug config-error-log read'
メッセージが出てきたらメッセージの通りTeraTarmでコマンドを実行します。
diagnose debug config-error-log read
5. エラーメッセージの内容に従って、configファイルを修正します。
6. TeraTarmで以下のコマンドを実行し、新Fortigateを工場出荷状態に戻します。
execute factoryreset
エラーがなくなるまで事前作業とconfigファイルリストアを繰り返します。
暗号化していないconfigファイルでもログインパスワード、PPPoEやIPoEの接続パスワード、VPNの共有シークレット、VPNの接続パスワードは暗号化されており値が確認できませんが、そのような状態でも設定値を移行することができました。
最後に
もし新機種を購入する前にこの情報をご覧になった場合、「FortiConverterサービス」、「FortiConverterツール」、「販売店の移行支援」のいずれかをお勧めします。
自力で移行した情シスおじさんは以下のサイトを参考にしました。
(FortigateはUTMシェアトップであるにもかかわらず、新規導入や移行の情報が少ないです・・・)
[FortiGate] バックアップした設定ファイルを 別のモデルにリストアする – BFoIP
【3分で分かるFortinet】【第23回】コンフィグ移行手順|技術ブログ|C&S ENGINEER VOICE (licensecounter.jp)