Palo Altoでは、URLカテゴリやURLフィルタリングプロファイルをCLIから設定できます。
今回は、URLカテゴリとURLフィルタリングに関する代表的なCLIコマンドをまとめてみました。
今回は、以下の設定をまとめています。
- カスタムURLカテゴリの作成
- URLの追加・削除
- URLフィルタリングプロファイルの作成
- カテゴリごとのアクセス制御
- カテゴリごとのユーザー証明書送信制御
- URLフィルタリングプロファイルの削除
検証した環境は以下のとおりです。
- PAN-OS:12.1.4-h5
- Azure上の仮想アプライアンス
1.URLカテゴリ
1-1. URLカテゴリ作成
URLカテゴリのタイプの指定が必要になります
今回は「URLリスト」を指定して、ユーザが指定する URL を登録します。
set profiles custom-url-category <URLカテゴリ名> type 'URL List'・記載例
set profiles custom-url-category url-category-01 type 'URL List'1-1-1. 注意点(クォーテーションが必要)
[type] の引数である [URL list] は ”(クォーテーション)で囲むことに注意してください。
クォーテーションがないと [URL list] の空白がコマンドとして読み込まれエラーとなります。

1-2. URLリスト追加
上記で URLカテゴリを作成したので次にそのカテゴリ内に URL を登録していきます。
set profiles custom-url-category <URLカテゴリ名> list <URL>・記載例
set profiles custom-url-category url-category-01 list www.google.com複数の URL を一度に登録したい場合には [] を利用することで一度に登録可能です。
set profiles custom-url-category url-category-01 list [ www.google.com www.yahoo.co.jp ]各 URL は ” で囲んでも囲まなくても設定可能です。
1-3. URLカテゴリ削除
URLカテゴリをオブジェクトごと削除したい場合には、オブジェクト名を指定するだけで削除可能です。
delete profiles custom-url-category <URLカテゴリ名>・記載例
delete profiles custom-url-category url-category-011-3-1. 特定のURLのみ削除
特定の URL だけを削除する場合には、引数として削除する URL を明示的に記載する必要があります。
delete profiles custom-url-category <URLカテゴリ名> list <URL>・記載例
delete profiles custom-url-category url-category-01 list www.google.com1-3-2. 注意点(削除コマンドでリスト形式は利用できない)
複数の URL を削除したい場合にはリスト形式は利用できないので1つの URL ずつ行を分けて削除する必要があります。
リスト形式で削除しようとすると以下のようなエラーが出ます。

なので、今回の例では url-category-01 に含まれる www.google.com と www.yahoo.co.jp を削除したい場合には、それぞれ削除するコマンドを記載する必要があります。
delete profiles custom-url-category url-category-01 list www.google.com
delete profiles custom-url-category url-category-01 list www.yahoo.co.jp2.URLフィルタリング
2-1. URLフィルタリングプロファイル作成
プロファイルの作成自体はプロファイル名を指定するだけで作成可能です。
set profiles url-filtering <URLフィルタリングプロファイル名>・記載例
set profiles url-filtering url-fitering-01作成直後の状態だと、「事前定義のカテゴリ」はすべて「Allow」になっています。
なので各カテゴリに対して [block] や [alert] などの指定は別途する必要があります。
なお、プロファイル名の最大文字数は31文字までなのでその点も注意してください。
2-2. カテゴリごとのサイトアクセスの許可/拒否
カテゴリごとにサイトアクセスをどのように設定するかはリスト形式で設定可能です。
# alertにする
set profiles url-filtering <URLフィルタリングプロファイル名> alert <カテゴリ>
# blockにする
set profiles url-filtering <URLフィルタリングプロファイル名> block <カテゴリ> ・記載例
# alertにする
set profiles url-filtering url-fitering-01 alert [ url-category-01 adult ]
# blockにする
set profiles url-filtering url-fitering-01 block [ url-category-01 adult ]上記の例ではカスタムカテゴリの url-category-01 と事前定義済みカテゴリの adult の設定を変更しています。
設定値としては [alert] [block] 以外にも [none] [continue] [override] などもあります。
※デフォルトの設定値の [allow] は除いています。
ちなみに [block] を指定すると「ユーザー証明書送信」の設定も [block] となります。
[alert] [continue] [override] も試しましたが、この挙動は [block] を指定した際のみ起こるようです。
また、下部の「[参考] [defaut]プロファイルと同じカテゴリにするコマンド」にデフォルトのカテゴリと同じカテゴリ設定にするコマンドを記載してみましたので参考にしてください。
2-3. カテゴリごとのユーザー証明書送信の許可/拒否
カテゴリごとにユーザー証明書送信をどのように設定するかはリスト形式で設定可能です。
# alertにする
set profiles url-filtering <URLフィルタリングプロファイル名> credential-enforcement alert <カテゴリ>
# blockにする
set profiles url-filtering <URLフィルタリングプロファイル名> credential-enforcement block <カテゴリ> ・記載例
# alertにする
set profiles url-filtering url-fitering-01 credential-enforcement alert [ url-category-01 adult ]
# blockにする
set profiles url-filtering url-fitering-01 credential-enforcement block [ url-category-01 adult ] 「サイトアクセス」の設定とは異なり、「ユーザー証明書送信」の設定で [block] を指定しても「サイトアクセス」の設定は [block] にはなりません。
2-4. URLフィルタリングプロファイル削除
プロファイルの削除はプロファイル名を指定するだけで削除可能です。
delete profiles url-filtering url-fitering-013.CLI設定時の注意点
3-1. 一度サイトアクセスの設定を入れるとCLIでは設定値を変更できない
サイトアクセスの設定で一度 CLI で設定を入れると、設定後に [allow] や [alert] などの別の設定値に変更することができませんでした。
![一度CLIで設定を入れると、設定後に[allow]や[alert]などの別の設定値に変更することができない](https://bonjiri-blog.com/wp-content/uploads/object-cli-commands-url-category-and-url-filtering-010-800x303.png)
上記では、一度 [block] に設定した後に [allow] や [alert] への設定変更を試してみましたが変更することはできませんでした。
また、一度 [alert] に設定した後に [allow] や [block] への設定変更を試してみましたがこれもダメでした。
webコンソール側では変更できたので、一度変更した設定値は webコンソール上で設定変更するしかないのかなと思います。
3-2. デフォルトのプロファイルのコピーはCLIではできない
URLフィルタリングプロファイルには、デフォルトで設定されている [default] というプロファイルが存在しますが、 CLI ではこの [default] プロファイルをコピーすることができませんでした。

そもそも CLI 上では URLフィルタリングプロファイルのリストにないように見えます。
copy コマンド利用時にプロファイルの選択肢に [default] がありません。
![copyコマンド利用時にプロファイルの選択肢に[default]がない](https://bonjiri-blog.com/wp-content/uploads/object-cli-commands-url-category-and-url-filtering-012.png)
ただ、これも webコンソール上からであればコピー可能であるので、 [default] のプロファイルを利用したい場合には、webコンソールを利用してコピーして編集をする必要があるかと思います。
4.コマンドまとめ
今回のコマンドをまとめます。
| 操作 | CLIコマンド |
|---|---|
| URLカテゴリ作成 | set profiles custom-url-category <名前> type 'URL List' |
| URL追加 | set profiles custom-url-category <名前> list <URL> |
| URLカテゴリ削除 | delete profiles custom-url-category <名前> |
| URL削除 | delete profiles custom-url-category <名前> list <URL> |
| URLフィルタリング作成 | set profiles url-filtering <名前> |
| カテゴリをAlert | set profiles url-filtering <名前> alert <カテゴリ> |
| カテゴリをBlock | set profiles url-filtering <名前> block <カテゴリ> |
| 証明書送信をAlert | set profiles url-filtering <名前> credential-enforcement alert <カテゴリ> |
| 証明書送信をBlock | set profiles url-filtering <名前> credential-enforcement block <カテゴリ> |
| URLフィルタリング削除 | delete profiles url-filtering <名前> |
5.まとめ
今回は、Palo AltoのURLカテゴリとURLフィルタリングをCLIから設定する方法をまとめました。
特に複数のURLやカテゴリをまとめて設定する場合は、CLIを利用すると効率よく設定できます。
URLカテゴリでは、追加時はリスト形式を利用できますが、削除時はURLを1つずつ指定する必要がある点に注意してください。
また、URLフィルタリングでは、サイトアクセスだけでなく、ユーザー証明書の送信についてもカテゴリごとに制御できます。
