Web应用防火墙

帮助中心 / 安全组件 / Web应用防火墙 / 产品简介 / 产品架构 /

产品架构

更新时间: 2022-12-12 20:02:00

Web应用防火墙管理面作为一个大的集群部署,是一个独立的微服务架构,业务服务和基础组件拆分成独立的容器,配置可以通过统一的配置中心管理。服务间通过grpc可以直接访问或者通过api网关间接访问到其它服务。

管理面模块划分

1. 接入层

● 统一网关: 用openrestry作为api网关,代理mgt的web cgi、restapi 北向接口,并且代理微服务的grpc接口,mgt内部的各个服务监听不同的端口,detect通过api网关访问不同的微服务,api网关把请求转发到内部不同的grpc服务。

● 鉴权和认证:api网关对mgt的北向api提供鉴权和三权分立验证的功能。

● FWLOG: 安全日志接收的服务,waf引擎产生的安全日志上报到fwlog监听的端口,fwlog统一写入dap。

2. 业务层

● 节点管理服务: 提供南向grpc接口给detect,负责对节点的接入、注册、信息上报、生命周期管理等。提供北向API给webconsole对节点进行管理。

● 授权服务:管理授权信息,维持检测节点的授权心跳。

● 升级服务:系统升级、sp包升级。

● 系统管理:系统相关操作,老的cgi

● 安全防护:安全策略、网站防护策略等配置下发的api,apiserver框架下的schema代码。

● 安全日志: 安全日志的搜索查询服务,老的php框架

● 告警服务: 收集和管理告警日志,邮件告警

● cc proxy:检测节点访问配置中心的代理程序,因为配置中心没有grpc接口,所以通过cc proxy暴露grpc接口给检测节点访问,并且负责配置变更时,通知检测节点更新配置。

● api server:sangforOS的restapi服务,通过schema定义restapi。

● 配置中心:sangforOS的配置中心服务。

● 消息推送服务:mgt通过消息队列把不同服务针对detect的管控消息通知到所有的detect节点,消息队列复用redis,但是考虑安全性和简化部署,把redis的端口通过一下消息推送服务隐藏,由消息推送服务监听对应的消息队列,并把消息通过grpc发送到各个detect节点。

3. PaaS层

● monitor:部署在mgt和detect所在宿主机的进程,提供部分容器的生命周期管理grpc接口,宿主机的状态信息定时上报。

● 安装部署:安装部署程序,第一次部署mgt或detect节点的安装引导程序。

● docker compose、docker:容器技术基于docker engine,monitor的容器管控工具用docker compose。

agent整体设计

agent和monitor作为节点管理的端,与mgt的服务进行交互,完成对容器、节点的管控,把两个服务的底层抽象出来,作为一个公共底座,业务作为插件的方式注册到框架里,实现一个通用的agent框架。

作为节点管理的端,与mgt的服务进行交互,完成对容器、节点的管控,把两个服务的底层抽象出来,作为一个公共底座,业务作为插件的方式注册到框架里,实现一个通用的agent框架。