はじめに
FortiGateをいろいろいじっている中でGUIやCLIでいちいちログインして変更するのが面倒になってきたので、
ポリシーの設定変更についてRESET APIで変更できるか試してみました。
環境
FortiVM64 (Ver 7.0.5)
手順
1. API管理者を作成
既存ユーザでログイン認証するのよくある方式だと思いますが、タイムアウトが面倒なため今回はRESET API専用のユーザを作ります
[管理者] > [新規作成] > [RESET API管理者]
を選択
RESET API用ユーザの作成画面に移るので必要個所を設定
今回は必要最小限(ユーザ名、管理者プロファイル)のみ設定しています
[OK]選択後、APIキーが発行されるため、コピーする
APIキーはこのタイミングでのみ取得可能なため、必ずコピー、保存して下さい
保存し忘れた場合はAPIキーの再生成操作が必要です
2. ポリシ設定変更用JSONファイルの用意
ポリシ設定変更内容をまとめたJSONファイルを作成curl実行環境と同じフォルダ等に保存してください
今回はポリシを無効化する設定を行うJSONファイルを用意します
{
'json':{
'status':"disable"
}
}
3. コマンドの実行
FortiGateのIPアドレス、ポリシーID等{}
部分を埋めて実行
curl -X PUT "http://{FortiGate IP}/api/v2/cmdb/firewall/policy/{ポリシーID}?access_token={RESET APIユーザ APIキー}" -d @{JSONファイル名}
実行後正常に変更できた場合、statusがsuccessと表示されます
>curl -X PUT "http://192.168.1.254/api/v2/cmdb/firewall/policy/1?access_token=##############################" -d @disable.json
{
"http_method":"PUT",
"revision":"********************************",
"revision_changed":true,
"old_revision":"********************************",
"mkey":"1",
"status":"success",
"http_status":200,
"vdom":"root",
"path":"firewall",
"name":"policy",
"serial":"FGVM************",
"version":"v7.0.5",
"build":304
}
最後に
今回はポリシーの無効化操作を一例としてあげましたが、他の項目についても同じように設定変更が可能です。
ポリシー設定をGETすることで変更可能な項目が確認できるので試してみてください。