Help us understand the problem. What is going on with this article?

PAN-OS(Paloalto)のXML APIの叩き方

More than 3 years have passed since last update.

■ はじめに

Paloalto Networks社のFWは、HTTP(S)経由のAPIに対応しています。
レスポンスはXMLで返ってきます。簡単な例でAPIを叩いてみます。

■ 準備

リクエストには毎回認証用のパラメータであるkeyを付加する必要があります。
そのkeyを発行するために、まず以下のリクエストを出してレスポンスを確認します。
GETで投げられるので履歴に残らないようにご注意下さい。(後述しますがPOSTも可能です)

https://PA管理IPアドレス/api/?type=keygen&user=管理者ユーザ名&password=パスワード

そうすると、XML形式のレスポンスが返ってきて、そこにkeyが含まれているので、
この値を控えておきます。パスワードを変更しない限りkeyも変更されません。
(以下例のkeyは適当です)

<response status=“success”>
  <result>
   <key>93rfgdAGAa%fagwFGFADgfAgfadeDDYNa27Ab%aKLpPga=</key>
  </result>
</response>

■ APIを叩いてみる例

それでは実際に簡単な例として、ポリシー一覧を取得してみます。
クエリは以下の形式です。

https://PA管理IPアドレス/api/?type=op&cmd=<show><running><security-policy></security-policy></running></show>&key=発行したkey

結果例です。

<response cmd="status" status="success">
<result>
rule1 {
        from trust;
        source [ 192.168.0.101 192.168.0.102 192.168.0.103 ];
        source-region none;
        to untrust;
        destination any;
        destination-region none;
        user any;
        category any;
        application/service  any/any/any/any;
        action allow;
        terminal yes;
}

rule2 {
        from trust;
        source any;
        source-region none;
        to untrust;
        destination any;
        destination-region none;
        user any;
        category any;
        application/service  any/any/any/any;
        action deny;
        terminal no;
}
dynamic url: no
pol objs matched
</result>
</response>

■ 便利なAPIブラウザ

「他にAPIでどんなことできるかな?どう叩けばよいかな?」というときは
機器に入っているAPIブラウザが便利です。以下のURLで確認できます。

https://{PA管理IPアドレス}/php/rest/browse.php

こんな画面になります。
Image2.png

ここから、たとえばルーティングテーブルを確認したい場合は
「API > 操作コマンド > show > routing > route」
と辿って行くと、

https://{PA管理IPアドレス}/api/?type=op&cmd=<show><routing><route></route></routing></show>

というクエリを叩けばいいことが分かります。
Image3.png

実際にはkeyも付加してあげて試してみると、こんな感じになります。

<response status="success">
  <result>
    <flags>
      flags: A:active, ?:loose, C:connect, H:host, S:static, ~:internal, R:rip, O:ospf, B:bgp, Oi:ospf intra-area, Oo:ospf inter-area, O1:ospf ext-type-1, O2:ospf ext-type-2
    </flags>
    <entry>
      <virtual-router>default</virtual-router>
      <destination>0.0.0.0/0</destination>
      <nexthop>192.168.0.1</nexthop>
      <metric>10</metric>
      <flags>A S</flags>
      <age/>
      <interface>ethernet1/4</interface>
    </entry>
    <entry>
      <virtual-router>default</virtual-router>
      <destination>192.168.0.0/24</destination>
      <nexthop>192.168.0.10</nexthop>
      <metric>0</metric>
      <flags>A C</flags>
      <age/>
      <interface>ethernet1/4</interface>
    </entry>
    <entry>
      <virtual-router>default</virtual-router>
      <destination>192.168.0.10/32</destination>
      <nexthop>0.0.0.0</nexthop>
      <metric>0</metric>
      <flags>A H</flags>
      <age/>
      <interface/>
    </entry>
  </result>
</response>

■ 補足

今回は簡便さを優先してGETにしていますが、POSTも可能です。
また、情報の取得だけでなく、設定等も可能です。

■ 参考資料

PAN‐OS REST API による レポート情報の取得
→日本語の資料。準備のkeyの発行やレポート情報の取得方法が書かれています。

APIリファレンス(ここではver6.1)
→情報の取得だけでなく設定する例も書かれていて、広く浅くの資料です。要チェックです。

アイディア次第でいろいろできそうではないでしょうか。
以上です。

akira6592
Ansible / ネットワーク / 自動化
https://tekunabe.hatenablog.jp/
ap-com
エーピーコミュニケーションズは「エンジニアから時間を奪うものをなくす」ため、ITインフラ自動化のプロフェッショナルとして、クラウドも含めたインフラ自動化技術で顧客の課題を解決すると同時に、SI業務の課題を解決するプロダクト・サービスを提供するNeoSIer(ネオエスアイヤー)です。
https://www.ap-com.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした