LoginSignup
0
1

More than 1 year has passed since last update.

FortiGateをReset APIで制御(ポリシー設定)

Posted at

はじめに

FortiGateをいろいろいじっている中でGUIやCLIでいちいちログインして変更するのが面倒になってきたので、
ポリシーの設定変更についてRESET APIで変更できるか試してみました。

環境

FortiVM64 (Ver 7.0.5)

手順

1. API管理者を作成

既存ユーザでログイン認証するのよくある方式だと思いますが、タイムアウトが面倒なため今回はRESET API専用のユーザを作ります

[管理者] > [新規作成] > [RESET API管理者]を選択
001.png

RESET API用ユーザの作成画面に移るので必要個所を設定

今回は必要最小限(ユーザ名、管理者プロファイル)のみ設定しています

002.png

[OK]選択後、APIキーが発行されるため、コピーする

APIキーはこのタイミングでのみ取得可能なため、必ずコピー、保存して下さい
保存し忘れた場合はAPIキーの再生成操作が必要です

003.png

2. ポリシ設定変更用JSONファイルの用意

ポリシ設定変更内容をまとめたJSONファイルを作成curl実行環境と同じフォルダ等に保存してください
今回はポリシを無効化する設定を行うJSONファイルを用意します

disable.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
}

GUI上でもステータスが無効化されているのが確認できます
004.png

最後に

今回はポリシーの無効化操作を一例としてあげましたが、他の項目についても同じように設定変更が可能です。
ポリシー設定をGETすることで変更可能な項目が確認できるので試してみてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1