【FortiGate】オブジェクト設定作業を VBA マクロで効率化する

ファイアウォール(UTM)

はじめに

FortiGate の構築作業時に、サービスやアドレスのオブジェクトを多数設定する必要がある場合があるかと思います。

対象オブジェクトが多い場合 GUI で設定すると時間がかかるため、CLI でコンフィグを流し込む方が良いかもしれません。

そんなときのために、オブジェクト設定用のコンフィグを出力するマクロを作成しました。

【公開中】オブジェクト設定用コンフィグ作成マクロ

マクロは Box で公開しています。以下リンクからダウンロード可能です。

https://app.box.com/file/846689247519?s=ey7iuw432910jj6qjft727od4mih4d4c

動作確認環境

  • FortiGate 60E v6.4.6
  • Windows 10
  • Excel 2013、Microsoft 365 バージョン 2107

機能説明

サービスオブジェクト作成用コンフィグ出力

シート上の表にサービス情報を入力して左上の [コンフィグ出力] をクリックするとコンフィグテキストが出力されます。

上の画像の状態でコンフィグ出力した結果は以下の通りです。

config firewall service custom
    edit "TEST1"
        set comment 'TCP'
        set category 'General'
        set protocol TCP/UDP/SCTP
        set tcp-portrange 100
    next
    edit "TEST2"
        set comment 'UDP'
        set category 'Web Access'
        set protocol TCP/UDP/SCTP
        set udp-portrange 100
    next
    edit "TEST3"
        set comment 'SCTP'
        set category 'File Access'
        set protocol TCP/UDP/SCTP
        set sctp-portrange 100
    next
end

  • シートの表の行は追加することができます
  • 今のところプロトコルタイプ TCP/UDP/SCTP のみに対応しています
  • 宛先ポート番号の指定は以下のような指定が可能です
    • ポート番号一つ:1000
    • ポート番号複数:「1000 1200」のように半角スペースで区切る
    • ポート番号範囲:「1000-1200」のようにハイフンで区切る

サービスグループオブジェクト作成用コンフィグ出力

シート上の表にサービスグループ情報を入力して左上の [コンフィグ出力] をクリックするとコンフィグテキストが出力されます。

上の画像の状態でコンフィグ出力した結果は以下の通りです。

config firewall service group
    edit "ServiceGroup1"
        set comment 'hoge'
        set member "TEST1" "TEST2" "TEST3"
    next
end

  • シートの表の行は追加することができます
  • member 列ではサービス名を「,」で区切って入力します

アドレスオブジェクト作成用コンフィグ出力

シート上の表にアドレス情報を入力して左上の [コンフィグ出力] をクリックするとコンフィグテキストが出力されます。

上の画像の状態でコンフィグ出力した結果は以下の通りです。

config firewall address
    edit "10.1.10.0_24"
        set comment 'hoge'
        set type ipmask
        set associated-interface "internal4"
        set subnet 10.1.10.0 255.255.255.0
    next
    edit "10.1.20.0_24"
        set comment 'piyo'
        set type ipmask
        set associated-interface "internal4"
        set subnet 10.1.20.0 255.255.255.0
    next
    edit "10.1.30.0_24"
        set comment 'fuga'
        set type ipmask
        set associated-interface "internal4"
        set subnet 10.1.30.0 255.255.255.0
    next
end

  • シートの表の行は追加することができます
  • 今のところタイプはサブネットのみに対応しています

アドレスグループオブジェクト作成用コンフィグ出力

シート上の表にアドレスグループ情報を入力して左上の [コンフィグ出力] をクリックするとコンフィグテキストが出力されます。

上の画像の状態でコンフィグ出力した結果は以下の通りです。

config firewall addrgrp
    edit "AddressGroup1"
        set comment 'hoge'
        set member "10.1.10.0_24" "10.1.20.0_24" "10.1.30.0_24"
    next
end

  • シートの表の行は追加することができます
  • member 列ではアドレス名を「,」で区切って入力します

考慮点

  • エクセルの各シートにも使い方を記載しています
  • マクロではシート上の入力値の正当性チェックまでは実施していません
  • オブジェクト名が未入力の行は無視されます
  • バグ報告や改善依頼は問い合わせページからお願いします


タイトルとURLをコピーしました