소개
이 문서에서는 CSM API 메서드를 통해 CSM(Cisco Security Manager)에서 관리하는 디바이스의 ACL(Access Control List)을 CSV(Comma-Separated Values) 형식으로 추출하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- CSM(Cisco Security Manager)
- CSM API
- API 기본 지식
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- CSM 서버
- CSM API 라이센스
Product Name: L-CSMPR-API
Product Description: L-CSMPR-API : Cisco Security Manager Pro - License to enable API Access
- CSM에서 관리하는 ASA(Adaptive Security Appliance)
- API 클라이언트. cURL, Python 또는 Postman을 사용할 수 있습니다. 이 글은 Postman의 전체 과정을 보여줍니다.
CSM 클라이언트 애플리케이션을 닫아야 합니다. CSM 클라이언트 애플리케이션이 열려 있는 경우 는 API 메서드를 사용하는 사용자와 다른 사용자가 작성해야 합니다. 그렇지 않으면 API에서 오류를 반환합니다. API 기능을 사용하기 위한 추가 전제 조건을 보려면 다음 가이드를 사용하십시오. API 사전 요구 사항
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
CSM(Cisco Security Manager)에는 API를 통해 구현해야 하는 관리되는 디바이스 컨피그레이션을 위한 몇 가지 기능이 있습니다.
이러한 컨피그레이션 옵션 중 하나는 CSM에서 관리하는 각 디바이스에 구성된 ACL(Access Control List) 목록을 추출하는 방법입니다. CSM API를 사용하는 것이 지금까지 이 요구 사항을 충족할 수 있는 유일한 방법입니다.
이러한 목적으로 Postman은 API 클라이언트 및 CSM 버전 4.19 SP1, ASA 5515 버전 9.8(4)로 사용되었습니다.
네트워크 다이어그램

CSM API 라이센스 설치/확인
CSM API는 라이센스가 부여된 기능입니다. CSM에 API 라이센스가 있는지 확인할 수 있습니다. CSM 클라이언트에서 Tools(툴) > Security Manager Administration(보안 관리자 관리) > Licensing(라이센스) 페이지로 이동하여 라이센스가 이미 설치되어 있는지 확인할 수 있습니다.



적용된 API 라이센스가 없지만 라이센스를 설치할 수 있는 .lic 파일이 이미 있는 경우 Install a License(라이센스 설치) 버튼을 클릭합니다. CSM 서버가 있는 디스크와 동일한 디스크에 라이센스 파일을 저장해야 합니다.
최신 Cisco Security Manager 라이센스를 설치하려면 다음 단계를 수행하십시오.
1단계. 받은 이메일의 첨부된 라이센스 파일(.lic)을 파일 시스템에 저장합니다.
2단계. 저장된 라이센스 파일을 Cisco Security Manager 서버 파일 시스템의 알려진 위치에 복사합니다.
3단계. Cisco Security Manager Client를 시작합니다.
4단계. Tools(툴)->Security Manager Administration(보안 관리자 관리)으로 이동합니다.
5단계. Cisco Security Manager - Administration(Cisco Security Manager - 관리) 창에서 Licensing(라이센싱)을 선택합니다.
6단계. Install a License(라이센스 설치) 버튼을 클릭합니다.
7단계. [라이센스 설치] 대화 상자에서 [찾아보기] 단추를 선택합니다.
8단계. Cisco Security Manager 서버 파일 시스템에서 저장된 라이센스 파일을 찾아 선택하고 OK(확인) 버튼을 선택합니다.
9단계. Install License(라이센스 설치) 대화 상자에서 OK(확인) 버튼을 클릭합니다.
10단계. 표시된 라이센스 요약 정보를 확인하고 닫기 단추를 클릭합니다.



API 라이센스는 CSM Professional Edition에 대해 라이센스가 부여된 서버에만 적용할 수 있습니다. 라이센스의 표준 버전을 실행하는 CSM에는 라이센스를 적용할 수 없습니다. API 라이센스 요구 사항
컨피그레이션 단계
API 클라이언트 설정
Postman을 사용하는 경우 구성해야 하는 몇 가지 설정이 있으며, 각 API 클라이언트에 따라 다르지만 유사해야 합니다.
CSM 설정
- API를 활성화했습니다. Tools(툴) > Security Manager Administration(보안 관리자 관리) > API에서
API 설정
CSM API 사용
API 클라이언트에서 아래의 두 호출을 구성해야 합니다.
1. 로그인 방법
2. ACL 값 가져오기
프로세스를 통해 참조하려면 다음을 수행합니다.
이 Lab에서 사용되는 CSM 액세스 세부 정보:
CSM 호스트 이름(IP 주소): 192.168.66.116. API에서는 URL의 호스트 이름을 사용합니다.
사용자: 관리자
암호: 관리자123
로그인 방법
이 메서드는 다른 서비스에서 호출되는 다른 메서드보다 먼저 호출되어야 합니다.
CSM API 가이드: 메서드 로그인
요청
1. HTTP 방식 POST
2. URL https://<호스트 이름>/nbi/login
3. 본문
1.0
123
admin
Admin123
true
https://192.168.66.116/nbi/login
여기서 각 항목은 다음을 나타냅니다.
사용자 이름: 세션과 연결된 CSM 클라이언트 사용자 이름
암호: 세션과 연결된 CSM 클라이언트 비밀번호입니다.
reqId: 이 특성은 클라이언트에서 수행한 요청을 고유하게 식별하며, 이 값은 연결된 응답에서 CSM 서버에 의해 에코됩니다. 사용자가 식별자로 사용하고자 하는 모든 용도로 설정할 수 있습니다.
하트비트 요청됨: 이 속성은 선택적으로 정의할 수 있습니다. 특성이 true로 설정된 경우 CSM 클라이언트는 CSM 서버로부터 하트비트 콜백을 수신합니다. 서버는 (비활동 시간 제한)/2분에 가까운 빈도로 클라이언트에 ping을 시도합니다. 클라이언트가 하트비트에 응답하지 않으면 API는 다음 간격 동안 하트비트를 재시도합니다. 하트비트가 성공하면 세션 비활성 시간 초과가 재설정됩니다.
콜백 URL: CSM 서버가 콜백하는 URL입니다. heartbeatRequested가 true인 경우 이 값을 지정해야 합니다. HTTPS 기반 콜백 URL만 허용됩니다.
4. 보내기
이 예제와 같이 원시 옵션을 선택합니다.
응답
로그인 API는 사용자 자격 증명을 검증하고 보안 쿠키로서 세션 토큰을 반환합니다. 세션 값은 asCookie 키 아래에 저장됩니다. 이 asCookie 값을 저장해야 합니다.


ACL 규칙 가져오기
메서드 execDeviceReadOnlyCLICmds입니다. 이 방법으로 실행할 수 있는 명령 집합은 통계, 특정 장치의 작동에 대한 추가 정보를 제공하는 모니터링 명령과 같은 읽기 전용 명령입니다.
CSM API 사용 설명서의 메서드 세부 정보
요청
1. HTTP 방식 POST
2. URL https://hostname/nbi/utilservice/execDeviceReadOnlyCLICmds
3. HTTP 헤더: 인증 세션을 식별하는 로그인 방법에 의해 반환된 쿠키.
이전에 Method Login에서 얻은 asCookie 값을 입력합니다.
키: "asCookie" 입력
가치: 입력 값을 가져왔습니다.
확인란을 클릭하여 활성화합니다.
4. 본문
1.0
123
192.168.66.1
show
access-list
참고: 위의 XML 본문은 다음과 같은 "show" 명령을 실행하는 데 사용할 수 있습니다. "show run all", "show run object", "show run nat" 등
XML "<deviceReadOnlyCLICmd>" 요소는 "<cmd>" 및 "<argument>" 내에 지정된 명령이 읽기 전용이어야 함을 나타냅니다.
여기서 각 항목은 다음을 나타냅니다.
장치IP: 명령을 실행해야 하는 디바이스 IP 주소입니다.
cmd: 고정 명령 "show". regex는 혼합 case [sS][hH][oO][wW]를 허용합니다
인수: show 명령 인수 디바이스의 실행 중인 컨피그레이션을 표시하는 "run" 또는 액세스 목록 세부 정보를 표시하는 "access-list"와 같습니다.
5. 보내기

응답

다음을 확인합니다.
응답을 파일로 저장할 수 있습니다. Save Response(응답 저장) > Save to a file(파일에 저장)로 이동합니다. 그런 다음 파일 위치를 선택하고 .csv 형식으로 저장합니다.

그런 다음 Excel 응용 프로그램에서 이 .csv 파일을 열 수 있어야 합니다(예: .csv 파일 형식에서 출력을 PDF, TXT 등의 다른 파일 형식으로 저장할 수 있습니다.
문제 해결
API를 사용하여 가능한 오류 응답.
1. 설치된 API 라이센스가 없습니다.
원인: API 라이센스가 만료되었거나 설치되지 않았거나 사용할 수 없습니다.
가능한 솔루션: Tools(툴) > Security Manager Administration(보안 관리자 관리) > Licensing(라이센싱) 페이지에서 라이센스의 만료일을 확인합니다.
Tools(툴) > Security Manager Administration(보안 관리자 관리) > API에서 API 기능이 활성화되었는지 확인합니다.
이 가이드의 위에 있는 CSM API 라이센스 설치/확인 섹션의 설정을 확인합니다.
2. API 로그인에 잘못된 CSM IP 주소를 사용합니다.
원인: API 호출의 URL에서 CSM 서버의 IP 주소가 잘못되었습니다.
가능한 솔루션: 호스트 이름이 CSM 서버의 올바른 IP 주소인지 API 클라이언트의 URL에서 확인합니다.
URL: https://<hostname>/nbi/login
3. 잘못된 ASA IP 주소.
원인: <deviceIP></deviceIP> 태그 사이의 본문에 정의된 IP 주소는 올바른 주소가 아니어야 합니다.
가능한 솔루션: Body Syntax(본문 구문)에 올바른 디바이스 IP 주소가 정의되어 있는지 확인합니다.
4. 방화벽에 연결되지 않았습니다.
원인: 디바이스가 CSM과 연결되어 있지 않습니다.
가능한 솔루션: CSM 서버에서 연결 테스트를 실행하고 디바이스에 대한 추가 연결 문제를 해결합니다.
자세한 오류 코드 및 설명은 다음 링크의 Cisco Security Manager API 사양 가이드에서 확인하십시오.