前言
内容接上篇文章:笔记(四):Graylog、n8n和飞塔防火墙联动——准备说明,飞塔防火墙本身内置接口,支持外部以REST API方式调用。本篇将选取其中两个接口测试(查询和新增防火墙地址),实现设备配置下发。
操作说明
若想调用飞塔防火墙的接口,首先需要登录防火墙Web页面,新建一个专用的API账号,并配置一个专用的访问配置档案,以及信任的主机(哪些地址可以使用防火墙接口),再生成API key;用于后续接口调用验证。
(1)新建一个专用的访问配置档案,按需分配各项权限;方便起见,本次案例均赋予读/写权限,最后完成新建。
新建一个专用的访问配置档案
赋予访问权限后完成新建
(2)新建一个专用的REST API账号,并配置刚才新建的访问配置档案(本次案例为api-test),填写受信任主机(包含Graylog、n8n和笔记本所在网段),最后完成新建。
新建一个专用的REST API账号
配置已新建的访问配置档案
填写信任的主机后完成新建
(3)完成新建账号后,系统将提供API key,复制保存到本地,用于后续接口使用。
复制保存API key
(4)由于本环境下的飞塔防火墙使用的是自签名的HTTPS服务器证书,PowerShell会因为默认的安全考虑,拒绝访问导致接口调用失败(其他一些接口调试工具可能也会)。因此需要提前加入命令,忽略HTTPS证书验证(依旧会进行加密通信),具体写法参照AI的回复。
浏览器提示证书验证问题
自签名证书的配置
忽略HTTPS证书验证的命令
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
public bool CheckValidationResult(
ServicePoint srvPoint,
X509Certificate certificate,
WebRequest request,
int certificateProblem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
(5)查看接口文档,按查询防火墙地址的接口参数(GET方法),编辑PowerShell变量,包括Uri和Header(Body变量可以随后再追加,POST方法使用),再调用和查看返回结果。
编辑变量后调用接口
返回结果总览
查看防火墙地址的几个信息
(6)查看接口文档,按新增防火墙地址的接口参数(POST方法),追加Body变量,再调用。以下演示新增一个名叫AcePlay的,IP为172.16.3.114(其实是笔记本电脑IP),掩码32位的防火墙地址。
追加Body变量后调用接口
返回结果总览
防火墙Web中查看新增的地址
(7)重复调用新增接口,新增一个已经存在的CMDB,将返回报错。
报错信息
其他说明
(1)API key也可以作为参数添加到Uri末尾调用,就不用编辑Header和Bearer验证,具体操作参照接口文档,本篇不做演示。
(2)查询接口可以在Uri末尾追加路径或参数,实现过滤和其他一些功能,具体操作参照接口文档,本篇不做演示。
(3)上文提到,重复调用新增接口,新增一个已经存在的CMDB,将返回报错。所以在n8n调用飞塔防火墙新增接口的时候,应提前利用查询接口确认是否已存在,若已存在则不需要调用新增接口,规避接口报错。具体操作在n8n的文章中展示。
(4)若不习惯PowerShell测试接口,也可以选择其他工具,例如Postman和n8n的节点。考虑到后续也要使用n8n,可以先查看n8n文章了解怎么调用接口,并直接在那边测试。这两者皆有忽略HTTPS证书验证的选项开关。