笔记(五):飞塔防火墙——接口测试

52 阅读3分钟

前言

  内容接上篇文章:笔记(四):Graylog、n8n和飞塔防火墙联动——准备说明,飞塔防火墙本身内置接口,支持外部以REST API方式调用。本篇将选取其中两个接口测试(查询和新增防火墙地址),实现设备配置下发。

操作说明

  若想调用飞塔防火墙的接口,首先需要登录防火墙Web页面,新建一个专用的API账号,并配置一个专用的访问配置档案,以及信任的主机(哪些地址可以使用防火墙接口),再生成API key;用于后续接口调用验证。

  (1)新建一个专用的访问配置档案,按需分配各项权限;方便起见,本次案例均赋予读/写权限,最后完成新建。

访问配置.png

新建一个专用的访问配置档案

访问配置权限.png

赋予访问权限后完成新建

  (2)新建一个专用的REST API账号,并配置刚才新建的访问配置档案(本次案例为api-test),填写受信任主机(包含Graylog、n8n和笔记本所在网段),最后完成新建。

API账号创建.png

新建一个专用的REST API账号

账号配置-1.png

配置已新建的访问配置档案

账号配置-2.png

填写信任的主机后完成新建

  (3)完成新建账号后,系统将提供API key,复制保存到本地,用于后续接口使用。

token.png

复制保存API key

  (4)由于本环境下的飞塔防火墙使用的是自签名的HTTPS服务器证书,PowerShell会因为默认的安全考虑,拒绝访问导致接口调用失败(其他一些接口调试工具可能也会)。因此需要提前加入命令,忽略HTTPS证书验证(依旧会进行加密通信),具体写法参照AI的回复。

浏览器.png

浏览器提示证书验证问题

自签名.png

自签名证书的配置

忽略命令.png

忽略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方法使用),再调用和查看返回结果。

接口调用.png

编辑变量后调用接口

返回结果-1.png

返回结果总览

返回结果-2.png

查看防火墙地址的几个信息

  (6)查看接口文档,按新增防火墙地址的接口参数(POST方法),追加Body变量,再调用。以下演示新增一个名叫AcePlay的,IP为172.16.3.114(其实是笔记本电脑IP),掩码32位的防火墙地址。

POST接口调用.png

追加Body变量后调用接口

POST接口调用结果.png

返回结果总览

防火墙结果.png

防火墙Web中查看新增的地址

  (7)重复调用新增接口,新增一个已经存在的CMDB,将返回报错。

重复报错.png

报错信息

其他说明

  (1)API key也可以作为参数添加到Uri末尾调用,就不用编辑Header和Bearer验证,具体操作参照接口文档,本篇不做演示。

  (2)查询接口可以在Uri末尾追加路径或参数,实现过滤和其他一些功能,具体操作参照接口文档,本篇不做演示。

  (3)上文提到,重复调用新增接口,新增一个已经存在的CMDB,将返回报错。所以在n8n调用飞塔防火墙新增接口的时候,应提前利用查询接口确认是否已存在,若已存在则不需要调用新增接口,规避接口报错。具体操作在n8n的文章中展示。

  (4)若不习惯PowerShell测试接口,也可以选择其他工具,例如Postman和n8n的节点。考虑到后续也要使用n8n,可以先查看n8n文章了解怎么调用接口,并直接在那边测试。这两者皆有忽略HTTPS证书验证的选项开关。