本技术各实施例属于网络安全,尤其涉及一种纯虚拟化容器部署waf 多节点反向代理配置同步实时下发方法及系统。
背景技术:
1、在传统反向代理模式的 web应用防火墙(简称:waf)转发和监测基础架构中,通常均采用纯软件形态部署在宿主机上实现安全防护,部分技术先进性更高的 waf 采用了先进的虚拟化容器部署。但是这两种 waf 的技术实现都存在同样一个问题,都依赖宿主机上存在一个节点管理服务,导致在技术上无法实现成纯虚拟化的集群 waf 部署形态。
2、纯虚拟化的好处是显而易见的。在现在的技术趋势下,各个服务都在往微服务形态转变,同时也在往虚拟化方向发展,kubernetes 技术就是当前技术趋势下的最终产物。它提供了自动部署、扩容、自恢复等强大能力,让运维成本大大降低,同时大大提升了服务的高可用性。所以各行各业都在往 k8s 技术栈上进行迁移。但是迁移的前提就是要求服务必须完全运行在虚拟化容器内,这也就给 waf 的 k8s 迁移带来了挑战。
3、反向代理 waf 需要用户配置“站点”才能正常代理和检测流量,这里的站点就是对应代理服务的底层配置,比如nginx.conf。waf 页面上配置了站点之后,底层需要生成nginx.conf。
4、单节点可以通过虚拟化容器之间直接共同读写同一个 volume 来实现,但是多节点的情况下,还是依赖一个运行在宿主机上,游离于容器外的 daemon 进程(也就是上面提到的“节点管理服务”)来监听和生效配置变更,所以还是不能完全实现虚拟化实现配置“站点”过程的虚拟化。
技术实现思路
1、为了解决或缓解现有技术中的问题。
2、本技术实施例提供的了一种纯虚拟化容器部署waf反向代理配置下发方法,所述waf部署在虚拟化容器中,所述虚拟化容器中设置有中心节点管理服务和多个反向代理配置服务,所述方法包括:
3、所述中心节点管理服务启动一进程以监听预设端口;
4、所述反向代理配置服务向所述预设端口的接口发送订阅请求;
5、所述中心节点管理服务根据所述订阅请求将反向代理配置信息下发至所述反向代理配置服务以便进行初始化;
6、所述中心节点管理服务接收用户变更反向代理配置的请求,并向所有所述反向代理配置服务推送多种类别事件;
7、所述反向代理配置服务根据事件类型编辑反向代理配置文件;
8、所述反向代理配置服务对所述反向代理配置文件进行测试,如果测试通过,则反向代理服务直接执行 reload 动作以加载反向代理配置文件并生效。
9、作为本技术一优选实施例,所述方法还包括:
10、如果测试通过,所述反向代理配置服务返回true 结果至所述中心节点管理服务;如果测试未通过,则所述反向代理配置服务返回测试未通过信息所述中心节点管理服务,所述测试未通过信息中包含报错信息以供用户自行修改错误的页面配置。
11、作为本技术一优选实施例,所述方法还包括:
12、所述中心节点管理服务以预设时间周期向所述反向代理配置服务发送探测数据包以测试所述反向代理配置服务网络连接状态;
13、如果所述反向代理配置服务向中心节点管理服务返回网络连接正常,则所述中心节点管理服务和多个反向代理配置服务网络连接正常。
14、作为本技术一优选实施例,所述方法还包括:
15、如果所述反向代理配置服务向中心节点管理服务未返回网络连接正常信息,则所述中心节点管理服务和多个反向代理配置服务网络连接异常;
16、所述中心节点管理服务主动断开和所述反向代理控制服务之间的连接,同时显示所述中心节点管理服务和多个反向代理配置服务网络连接异常或者触发告警。
17、作为本技术一优选实施例,所述反向代理配置服务根据所述事件类型编辑反向代理配置文件,包括:
18、所述反向代理配置服务从数据库中获取与用户变更反向代理配置对应json 格式文件;
19、所述反向代理配置服务根据所述事件类型对所述json 格式文件进行对应处理,将处理后的json 格式文件变更为nginx conf 文件。
20、作为本技术一优选实施例,所述反向代理配置服务根据所述事件类型对所述json格式文件进行对应处理,包括:
21、所述中心节点管理服务确定所述反向代理配置服务根据所述事件类型对所述json 格式文件进行对应处理是否响应异常;
22、如果是,则所述中心节点管理服务直接将错误提示信息返回给用户。
23、如果否,则所述中心节点管理服务将用户操作持久化到数据库中,并向用户返回操作成功的动作,然后向其余所述反向代理配置服务异步推送相同的配置变更。
24、作为本技术一优选实施例,所述方法还包括:
25、如果所述反向代理配置服务更新失败,则所述反向代理配置服务主动断开与所述中心节点管理服务的连接;
26、所述中心节点管理服务确定更新失败的所述反向代理配置服务是否与其重新建立连接,如果是,则所述反向代理配置服务从所述中心节点管理服务获取反向代理配置信息以便进行初始化。
27、与现有技术相比,本技术实施例提供了一种纯虚拟化容器部署waf的多节点反向代理配置同步实时下发方法,所述反向代理配置服务运行在虚拟化容器内,在所述反向代理配置服务和中心节点管理服务之间建立连接。用户在页面上进行操作触发反代配置更新的动作。中心节点管理服务通过系统初始化已经建立的所述反向代理配置服务和中心节点管理服务之间建立连接把配置发送给反向代理配置服务。同时反向代理配置服务对配置文件进行校验,如果检验通过则生效,检验不通过则立即返回给中心节点管理服务,实现配置“站点”过程的虚拟化。
28、第二方面,本技术实施例还提供了一种纯虚拟化容器部署waf反向代理配置下发系统,所述waf部署在虚拟化容器中,所述虚拟化容器中设置有中心节点管理服务和多个反向代理配置服务,所述系统包括:中心节点管理服务和中心节点管理服务;
29、所述中心节点管理服务启动一进程以监听预设端口;
30、所述反向代理配置服务向所述预设端口的接口发送订阅请求;
31、所述中心节点管理服务根据所述订阅请求将反向代理配置信息下发至所述反向代理配置服务以便进行初始化;
32、所述中心节点管理服务接收用户变更反向代理配置的请求,并随机挑选一所述反向代理配置服务并向其推送多种类别事件;
33、所述反向代理配置服务根据所述事件类型编辑反向代理配置文件;
34、所述反向代理配置服务对所述反向代理配置文件进行测试,如果测试通过,则反向代理配置服务直接执行 reload 动作以加载反向代理配置文件并生效。
35、与现有技术相比,本技术实施例提供了一种纯虚拟化容器部署waf 的多节点反向代理配置同步实时下发系统的有益效果与第一方面提供的技术方案相同,在此不再赘述。