ワンクリックでパラメータシートができちゃう!?
FortiGate に限らず、ファイアウォール機器でアドレス、サービス、ポリシーなどのオブジェクトが大量に設定されているケースがあると思います。
ネットワーク構築案件で詳細設計書(パラメータシート)を作成する際には、これらの大量のオブジェクトもすべて記載しなければなりません。これ、ものすごく工数がかかりますよね。ミスが混入する可能性も高くなります。
ここで、コンフィグからパラメータシートにコピペできる形式のデータを出力できるツールがあったら有用ではないでしょうか。
というわけで、FortiGate のコンフィグからパラメータシートの材料を出力出来るツール(VBA マクロ)を作成しちゃいました。
【公開中】FortiGate コンフィグ解析ツール
ダウンロード
ツールは Box で公開しています。以下リンクからダウンロードできます。
- 最新版 <2022/04/09 版>
お試し用コンフィグも以下からダウンロードできます。
- https://app.box.com/s/umviogkd9j9iue1isyy6r9bvivf3opkr
- コンフィグ内容
- 型番: FortiGate 60E ver.7.0.3
- いくつかのオブジェクトのみ設定しただけのコンフィグ
- コンフィグ内容
使い方
マクロファイルを開くと以下のような「macro」シートがあります。

まず、「①コンフィグファイル選択」をクリックします。すると、ファイル選択ダイアログが表示されるため、解析対象の FortiGate コンフィグファイルを選択します。
使用可能なコンフィグファイルは以下の通りです。
- CLI の
show
コマンドで取得したコマンドログshow
でもshow full-configuration
でもどちらでも OK です
- GUI のコンフィグバックアップで取得したバックアップファイル
コンフィグファイルを選択したら、「②解析対象コンフィグ選択」の表に、解析したいコンフィグ項目を入力します。いくつかの項目はドロップダウンリストに入れているので、その中から選択するか、または手入力してください。

解析対象コンフィグの指定もできたら「③コンフィグ解析実行」をクリックします。

この後はマクロ処理が行われるため処理完了まで待ちます。
完了するとメッセージが表示されます。

出力内容
処理完了後は以下のようにシートが追加されています。

追加されるシートは「②解析対象コンフィグ選択」で指定した項目ごとに以下の 2 つです。
- 対象コンフィグ項目のコンフィグテキストを抜き出したシート
- シート名は <コンフィグ名> です ※頭の「config」は抜いています
- 対象コンフィグ項目の内容を表形式に記載したシート
- シート名は <コンフィグ名_table> です ※頭の「config」は抜いています
例えば、config firewall address
を指定した場合は以下のような出力になります。
<firewall address> シート

<firewall address_table> シート

上画像のように、edit でオブジェクトが設定されているコンフィグについては 1 行 1 オブジェクト(1 edit)の形式で表示されます。また、コンフィグが何階層もある構造になっている場合は、列ラベルの部分(1~6行目)で階層が分かるような構造になっています。
VDOM を使用している場合
VDOM を使用したコンフィグの場合は、以下のように VDOM 別にシートが作成されます。

シート名の頭には「【<VDOM名>】」が付与されます。またグローバルコンフィグについては「【global】」が付与されます。
config と edit が何階層にもなっている複雑なコンフィグの場合
例えば config webfilter profile
のコンフィグ構造は、以下のように config
と edit
が何重にもなっている複雑な構造となっています。
config webfilter profile
edit "default"
set comment "Default web filtering."
set feature-set flow
.
.
.
config override
set ovrd-cookie deny
.
.
.
end
config web
set bword-threshold 10
.
.
.
end
config ftgd-wf
unset options
unset ovrd
config filters
edit 1
set category 0
set action block
set log enable
next
edit 2
set category 2
set action block
set log enable
next
.
.
.
end
set rate-javascript-urls enable
set rate-css-urls enable
set rate-crl-urls enable
end
set log-all-url disable
.
.
.
next
edit ...
set ...
config ...
end
.
.
.
next
.
.
.
end
このような構造にも対応しています。この場合、以下のような出力になります。

出力サンプル
config system interface

config firewall policy

config router static

連続してツールを実行する場合について
ツールを連続して実行することは可能です。ただしツール実行時に「macro」と「更新履歴」以外のシートを削除するため注意してください。
留意点
- ツールで出力される表において、設定値はコンフィグ上の設定値がそのまま表示されます
- 基本的にどの構造のコンフィグでも対応できるようなアルゴリズムになっているはずですが、対応できない構造もあるかもしれません
- コンフィグの階層は第 5 階層までに対応しています。第 6 階層以上あるコンフィグには対応していません(恐らくそのようなコンフィグは無いとは思います)
- 処理の都合上、シート上に表示される設定項目の記載順がコンフィグと一致しない場合があります
VDOM を使用しているコンフィグについては対応していませんポリシーや各種オブジェクト設定などは VDOM 別にコンフィグがありますが、これが原因ですコンフィグの内、解析したい箇所のテキストを VDOM 別に抜き出して、それぞれ個別にツールに読み込ませることでコンフィグ解析をすることが可能です- 2022/04/03 ver. から VDOM にも対応しました
更新履歴
- 2022/04/09 版
- config emailfilter profile など一部コンフィグに対応できていなかったため対応できるように修正
- 2022/04/03 版
- VDOM を使用したコンフィグに対応
- コンフィグファイルの文字コード指定機能追加
- その他、内部処理の修正
- 2022/03/30 版
- 初版
問い合わせ
バグ報告、改善要望などの連絡は以下の問い合わせフォーム、または Twitter からお願いします。