简介
本文档介绍如何通过CSM API方法提取由思科安全管理器(CSM)管理的设备的访问控制列表(ACL)(采用逗号分隔值[CSV]格式)。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科安全管理器(CSM)
- 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)
- API客户端。您可以使用cURL、Python或Postman。本文展示了与Postman的整个过程。
必须关闭CSM客户端应用程序。如果CSM客户端应用程序处于打开状态,则必须由使用API方法的用户以外的其他用户使用。否则,API将返回错误。有关使用API功能的其他必备条件,您可以使用下一指南。API必备条件
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
思科安全管理器(CSM)具有一些需要通过API实施的受管设备配置功能。
其中一个配置选项是提取由CSM管理的每台设备中配置的访问控制列表(ACL)列表的方法。使用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服务器所在的同一磁盘中。
要安装较新的思科安全管理器许可证,请执行以下步骤:
步骤1.将随附的许可证文件(.lic)从您收到的电子邮件保存到您的文件系统。
步骤2.将保存的许可证文件复制到思科安全管理器服务器文件系统中的已知位置。
步骤3.启动思科安全管理器客户端。
步骤4.导航到工具 — >安全管理器管理……
第5步:从Cisco Security Manager - Administration窗口,选择Licensing
步骤6.单击Install a License按钮。
第7步:从Install License对话框中,选择Browse按钮。
第8步:导航到思科安全管理器服务器文件系统并选择保存的许可证文件,然后选择确定按钮。
第9步:在Install License对话框中,点击OK按钮。
步骤10.确认显示的许可证摘要信息,然后单击Close按钮。



API许可证只能应用于授权使用CSM专业版的服务器。许可证无法应用到运行许可证标准版的CSM。API许可证要求
配置步骤
API客户端设置
如果使用Postman,则需要配置一些设置,这取决于每个API客户端,但必须类似。
CSM设置
API设置
使用CSM API
您需要在API客户端中配置以下两个调用:
1.登录方法
2.获取ACL值
供整个流程参考:
本实验中使用的CSM访问详细信息:
CSM主机名(IP地址):192.168.66.116。在API中,我们使用URL中的主机名。
用户名:admin
密码:Admin123
登录方法
在其他服务上调用任何其他方法之前,必须先调用此方法。
CSM API指南:方法登录
请求
1. HTTP方法:POST
2. URL:https://<hostname>/nbi/login
3.正文:
1.0
123
admin
Admin123
true
https://192.168.66.116/nbi/login
其中:
username:与会话关联的CSM客户端用户名
密码:与会话关联的CSM客户端密码。
reqId:此属性唯一标识客户端完成的请求,该值由CSM服务器在关联的响应中响应。它可以设置为用户希望用作标识符的任何内容。
心跳请求:可以选择定义此属性。如果属性设置为true,则CSM客户端从CSM服务器接收心跳回调。服务器尝试ping客户端,其频率接近(不活动超时)/ 2分钟。如果客户端不响应心跳,则API会在下一个间隔期间重试心跳。如果心跳成功,则重置会话不活动超时。
回叫Url:CSM服务器进行回调的URL。如果heartbeatRequested为true,则需要指定此设置。仅允许基于HTTPS的回调URL
4.发送
选择原始选项,如本示例所示。
回复
登录API验证用户凭证并将会话令牌作为安全Cookie返回。会话值存储在asCookie密钥下,您必须将此另存为Cookie值。


获取ACL规则
方法execDeviceReadOnlyCLICmds。可通过此方法执行的命令集是只读命令,例如statistics、monitoring命令,它们提供有关特定设备操作的附加信息。
来自《CSM API用户指南》的方法详细信息
请求
1. HTTP方法:POST
2. URL:https://hostname/nbi/utilservice/execDeviceReadOnlyCLICmds
3. HTTP报头:由标识身份验证会话的登录方法返回的cookie。
输入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”。正则表达式允许混合大小写[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页面下验证许可证的到期日期
验证API功能是否已在工具>安全管理器管理> API下启用
确认本指南前面的CSM API许可证安装/验证部分的设置。
2.用于API登录的错误CSM IP地址。
原因:API调用的URL中的CSM服务器的IP地址错误。
可能的解决方案:在API客户端的URL中验证主机名是CSM服务器的正确IP地址。
URL:https://<hostname>/nbi/login
3.错误的ASA IP地址。
原因:在主体上定义的<deviceIP></deviceIP>标记之间的IP地址不能是正确的地址。
可能的解决方案:确认已在正文语法中定义了正确的设备IP地址。
4.没有与防火墙的连接。
原因:设备与CSM没有连接
可能的解决方案:从CSM服务器运行测试连通性并排除与设备的进一步连通性故障。
有关更多错误代码和说明,请参阅思科安全管理器API规范指南(位于下一链接)中的更多详细信息。