Cisco ASAv に REST API でアクセスするには
前回 は Cisco CSR 1000V へ REST API でアクセスしてみました。今回は ASAv へ REST API でアクセスしてみます。必要最低限しか設定していませんので、商用環境で利用する際はセキュリティへの配慮が必要です。
検証環境
VIRL 上で以下の構成を作成しました。
- Cisco ASAv 9.3(2)200
- Micro Core Linux 6.3
ASAv への REST API Agent インストール
ASAv で REST API を受け付けられるようにするには ASA の OS とは別に追加で Agent が必要です。しかし、VIRL 0.9.242 に同梱されている ASAv(9.3(2)200)には Agent がインストールされていませんでした。Cisco の公式サイトからダウンロードしておいた Agent を FTP サーバなり、HTTP サーバなりにアップロードし、ASAv にコピーしておきます。
| ciscoasa# copy http://XX.XX.XX.XX/asa-restapi-101-lfbff-k8.SPA disk0:
|
ASAv への設定例は以下の通りです。rest-api で Agent のイメージファイルを指定しつつ、Agent を有効化します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | interface GigabitEthernet0/0
nameif outside
security-level 0
ip address [外部にアクセス出来るアドレス設定]
no shutdown
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 192.168.1.1 255.255.255.0
no shutdown
!
route outside 0.0.0.0 0.0.0.0 [外部にアクセス出来る NEXT-HOP アドレス]
!
aaa authentication http console LOCAL
http server enable
http 0.0.0.0 0.0.0.0 inside
!
username USER password PASSWORD privilege 15
!
rest-api image disk0:asa-restapi-101-lfbff-k8.SPA
rest-api agent
|
通信確認
Micro Core Linux から curl を使って REST API にアクセスしてみます。以下では ASAv のバージョン情報を取得しています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | tc@box:~$ curl -k -X GET https://192.168.1.1:443/api/monitoring/device/component
s/version -H "Accept:application/json" -u "USER:PASSWORD" | python -mjson.tool
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 185 100 185 0 0 112 0 0:00:01 0:00:01 --:--:-- 113
{
"asaVersion": "9.3(2)200",
"deviceType": "ASAv",
"firewallMode": "Router",
"kind": "object#Version",
"selfLink": "/api/monitoring/device/version",
"totalFlashinMB": 129024,
"upTimeinSeconds": 4098
}
|
参考