1. API 액세스 활성화
-
동적 역할: 슈퍼유저, 슈퍼유저(읽기 전용), 장치 관리자, 장치 관리자(읽기 전용), Vsys 관리자, Vsys 관리자(읽기 전용)
-
역할 기반 관리자: Device, Vsys, Panorama.
가장 좋은 방법은 XML API 액세스를 위해 별도의 관리자 계정을 설정하는 것입니다.
1) 관리자 역할 프로필을 선택하세요.
장치 관리자 역할로 이동하여 관리자 역할을 선택하거나 만듭니다.
2) 관리자 역할에서 사용할 수 있는 기능을 선택하세요.
-
XML API 탭을 선택합니다.
-
목록에서 Report , Log , Configuration 등의 XML API 기능을 활성화하거나 비활성화합니다.
-
변경 사항을 확인하려면 확인을 선택하세요.
3) 관리자 계정에 관리자 역할을 할당합니다.
2. API 키 받기
기존 키가 있고 동일한 사용자에 대해 다른 키를 생성하는 경우,
해당 사용자의 모든 기존 세션이 종료되고 이전 API 세션은 삭제됩니다.
요청의 쿠키가 없지만 후속 요청을 수행하는 경우, 구성 로그에 해당 사용자가 알 수 없음으로 표시됩니다.
1) API 키를 생성하려면 관리자 자격 증명과 type=keygen을 사용하여 방화벽의 호스트 이름이나 IP 주소에 POST 요청을 합니다.
curl -H "Content-Type: application/x-www-form-urlencoded" -X POST https://firewall/api/? type =keygen -d 'user=<사용자>&password=<비밀번호>'
성공적인 API 호출은 key 요소 내의 API 키와 함께 status="success"를 반환합니다.
< 응답 상태 = "성공" >
< 결과 >
< 키 > *********************************************** </ 키 >
</ 결과 >
</ 응답 >
2) API 키를 취소합니다.
하나 이상의 키가 손상된 경우 현재 유효한 모든 API 키를 취소할 수 있습니다. 관리자 계정에 연결된 API 키를 변경하려면 관리자 계정에 연결된 비밀번호를 변경하세요. 모든 키가 만료되기 전에 생성된 API 키 또는 이전 사용자 인증 정보를 사용하여 생성된 키는 더 이상 유효하지 않습니다.
Panorama를 사용하여 방화벽을 관리하는 경우 Panorama와 Panorama가 관리하는 모든 방화벽에는 동일한 마스터 키가 있어야 합니다 .
3. API 요청 인증
Palo Alto Networks는 요청 헤더에 기본 인증 토큰을 포함하여 API 요청을 인증할 것을 권장합니다. 기본 인증 헤더는 XML 및 REST API 요청 모두에 사용할 수 있습니다.
1) 사용자 이름과 비밀번호를 Base64 형식으로 변환합니다.
예: username:password는 ************************로 변환됩니다.
2) 방화벽에 요청을 할 때 헤더에 Base64로 변환된 토큰을 Authorization: Basic 뒤에 포함합니다.
curl -X POST 'https://<firewall>/api?&type=config&action=get&xpath=/config/devices/entry[@name=%27localhost.localdomain%27]/network/interface/ethernet' -H 'Authorization: Basic ************************'
3) 방화벽에 대한 이후의 각 요청에 헤더를 포함합니다.
4. 첫 번째 API 호출하기
PAN-OS XML API를 처음 호출하려면 API 키를 받으세요. HTTP 요청의 요청 매개변수를 URL로 인코딩해야 합니다.
API 문서는 여러 가지 일반적인 규칙을 따르므로 그대로 복사하여 붙여 넣어서는 안 됩니다. 요청하기 전에 해당 방화벽에 맞게 호출을 조정하세요.
Variable | Replace With |
<firewall> | The IP address of the firewall or Panorama appliance you intend to target with your request. |
apikey | The unique API key you generate. |
Get 요청의 모든 쿼리 문자열은 URL로 인코딩 된 매개변수 문자열이어야 합니다.
URL로 인코딩된 요청에 공백을 사용하는 경우, 공백을 대체하기 위해 더하기 기호나 %20을 포함해야 합니다.
첫 번째 단계로 설명서에 있는 API 요청을 복제하는 데 문제가 있는 경우 API 브라우저를 사용하여 요청을 빌드하세요.
1) cURL을 호출하여 시스템 정보를 가져오세요. 이 정보는 방화벽의 IP 주소, 호스트 이름, 모델을 반환합니다. API 키를 반드시 포함하세요.
curl -X POST 'https://<firewall>/api?type=op&cmd=<show><system><info></info></system></show>'
API 호출 시 요청 URL에 URL 인코딩된 API 키를 제공하는 대신, 사용자 지정 X-PAN-KEY: <key> 매개변수를 사용하여 HTTP 헤더에 키 이름과 값 쌍을 추가할 수 있습니다.
예: curl -H "X-PAN-KEY: **********************************************" -k 'https://firewall_IP/api/?type=op&cmd=<show><system><info></info></system></show>'
2) 위 요청에 대한 응답이 다음과 비슷한지 확인하세요.
<response status="success">
<result>
<system>
<hostname>PA-3050-A</hostname>
<ip-address>10.2.3.4</ip-address>
<public-ip-address>unknown</public-ip-address>
<netmask>255.255.252.0</netmask>
<default-gateway>10.2.3.1</default-gateway>
<is-dhcp>no</is-dhcp>
<ipv6-address>unknown</ipv6-address>
<ipv6-link-local-address>c123::21b:ffff:feff:c1234/64</ipv6-link-local-address>
<ipv6-default-gateway/>
<mac-address>00:00:00:ff:c7:00</mac-address>
<time>Tue Jan 8 16:22:56 2019</time>
<uptime>0 days, 18:28:38</uptime>
<devicename>PA-3050-A</devicename>
<family>3000</family>
<model>PA-3050</model>
<serial>0017010.2529</serial>
<cloud-mode>non-cloud</cloud-mode>
<sw-version>9.0.0-b36</sw-version>
<global-protect-client-package-version>0.0.0</global-protect-client-package-version>
<app-version>8111-5239</app-version>
<app-release-date>2019/01/07 15:51:30 PST</app-release-date>
<av-version>3328-3783</av-version>
<av-release-date>2019/01/07 11:22:02 PST</av-release-date>
<threat-version>8111-5239</threat-version>
<threat-release-date>2019/01/07 15:51:30 PST</threat-release-date>
<wf-private-version>0</wf-private-version>
<wf-private-release-date>unknown</wf-private-release-date>
<url-db>paloaltonetworks</url-db>
<wildfire-version>0</wildfire-version>
<wildfire-release-date/>
<url-filtering-version>2019010.2.00005</url-filtering-version>
<global-protect-datafile-version>unknown</global-protect-datafile-version>
<global-protect-datafile-release-date>unknown</global-protect-datafile-release-date>
<global-protect-clientless-vpn-version>0</global-protect-clientless-vpn-version>
<global-protect-clientless-vpn-release-date/>
<logdb-version>9.0.10</logdb-version>
<platform-family>3000</platform-family>
<vpn-disable-mode>off</vpn-disable-mode>
<multi-vsys>on</multi-vsys>
<operational-mode>normal</operational-mode>
</system>
</result>
</response>
Enable API Access
The API supports the following types of Administrators and Admin roles: Dynamic roles: Superuser, Superuser (readonly), Device admin, Device admin (readonly), Vsys admin, Vsys admin (readonly)Role-based Admins: Device, Vsys, Panorama. Admin Role profiles e
docs.paloaltonetworks.com
[PaloAlto] Firewall Timeout 종류 및 설정 방법 - Session, Authentication, Web Server
[PaloAlto] Firewall Timeout 종류 및 설정 방법 - Session, Authentication, Web Server
PaloAlto firewalls offer various timeout settings for different aspects of their operation, including session timeouts, authentication timeouts, and application-specific timeouts. These timeouts help manage firewall resources and ensure efficient network p
infoofit.tistory.com
[PaloAlto] Firewall Monitor Log 분석 - Traffic Session End Reason ( 방화벽 세션 로그 의미 )
[PaloAlto] Firewall Monitor Log 분석 - Traffic Session End Reason ( 방화벽 세션 로그 의미 )
1. 개 요 The "Session End Reason" in PaloAlto firewall logs indicates why a network session terminated. Common reasons include tcp-fin, tcp-rst-from-client, tcp-rst-from-server, aged-out, resources-unavailable, and threat. Understanding these reasons hel
infoofit.tistory.com
[PaloAlto] Firewall Packet Capture (패킷 캡쳐) 종류 및 12단계 순서 - pcap, 커스텀 패킷, 위협 패킷, 애플리
All PaloAlto Networks firewalls allow you to take packet captures (pcaps) of traffic that traverses the management interface and network interfaces on the firewall. When taking packet captures on the dataplane, you may need to Disable Hardware Offload to e
infoofit.tistory.com