はじめに
PaloAlto (PAN-OS) には API 機能があります。どんな事ができるかはこのあたりのページを確認すると想像できます。
この記事では、API 経由でカスタムURLカテゴリの追加を試してみます。
- 動作確認環境
- PAN-OS 9.1
準備
API KEY の取得
API でアクセスするためには、まず API KEY を取得する必要があります。
curl -k -X GET 'https://[firewall]/api/?type=keygen&user=<username>&password=<password>'
これのレスポスンスにある API KEY を、あとで X-PAN-KEY
リクエストヘッダーに仕込みます。
詳細は公式サイトをご参照ください。
API の仕様確認
機器本体に API リファレンス機能があります。
カスタムURLカテゴリであれば、以下のURLでリファレンスを確認できます。
https://[firewall]/restapi-doc/#tag/objects-custom-url-categories
追加
example.com
という名前のカスタムURLカテゴリを追加してみます。vsys は vsys1
です。
$ curl -k -X POST 'https://[firewall]/restapi/v9.1/Objects/CustomURLCategories?location=vsys&vsys=vsys1&name=example.com' \ -H 'X-PAN-KEY: <準備で取得した API KEY>' \ -H 'Content-Type: application/json' \ -d '{ "entry": [ { "@name": "example.com", "type": "URL List", "list": { "member": [ "http://www.example.com", "http://example.com" ] } } ] }'
確認
追加されたことを確認します。
画面から
APIから
せっかくなので API からも確認します。確認は GET メソッドを利用します。(結果は整形しています)
$ curl -k -X GET 'https://[firewall]/restapi/v9.1/Objects/CustomURLCategories?location=vsys&vsys=vsys1' \ > -H 'X-PAN-KEY: <準備で取得した API KEY>' { "@status": "success", "@code": "19", "result": { "@total-count": "1", "@count": "1", "entry": [ { "@name": "example.com", "@location": "vsys", "@vsys": "vsys1", "type": "URL List", "list": { "member": [ "http://www.example.com", "http://example.com" ] } } ] } }
おわりに
API の仕様確認で紹介した、APIリファレンスを見ればお作法はなんとなく分かりそうでした。
また、一旦画面から手動で追加してからAPI から GET すると、画面のどの項目がどういうキーになるのか分かるので、調査の段階ではこのようなステップを踏むと良いかもしれません。