为什么企业需要WAF高可用?
当黑客DDoS攻击撞上单点故障:
支付系统瘫痪1小时=损失$500万+(某电商真实案例)
医疗平台被攻破=患者数据泄露+天价罚款
交易所WAF宕机=每秒流失1000+订单
雷池 WAF 高可用方案可以保障业务连续性,确保雷池的可用性。本教程介绍使用雷池的主从同步功能搭建一个高可用的 WAF 集群。
前提条件
雷池 WAF 版本大于等于 7.0.0
至少两台运行中的雷池 WAF 服务器
每个雷池 WAF 都激活了专业版及以上授权且授权版本一致
适用场景
场景描述
考虑到企业级应用对安全防护的连续性要求,以及单点故障可能带来的业务中断风险,因此需要一个高可用的 WAF 防护方案。特别是在以下场景:
金融、电商等对业务连续性要求高的行业
需要 7*24 小时不间断防护的关键业务系统
对安全防护有 SLA 承诺要求的场景
需要跨地域部署的多数据中心架构
解决方案
通过主从配置同步自动将雷池的网站应用,引擎规则,黑白名单,人机验证等功能配置近实时同步到不同的从节点。具体实现方式和功能特性:
主节点负责配置管理和规则下发
从节点实时同步主节点配置
当主节点发生故障时,从节点可以自动接管流量
支持多从节点部署,提供更高的可用性保障
配置变更自动同步,无需人工干预
方案优势
高可用性:通过主从架构和自动故障转移,确保 WAF 服务永不中断
配置一致性:所有节点保持配置同步,避免因配置不一致导致的安全漏洞
扩展性强:支持动态添加从节点,满足业务增长需求
维护便捷:集中式配置管理,降低运维复杂度
成本效益:相比传统双机热备方案,多节点部署提供更好的性价比
业务零中断:故障切换过程对业务透明,无需人工干预
开启配置同步
演示数据
本教程演示过程中使用的服务器信息说明:
主服务器:172.28.222.122
从服务器:172.28.222.123
主节点操作
获取同步开启命令
登录 WAF 控制台 -> 通用设置 -> 配置同步,点击成为主节点
修改通信地址
默认获取当前访问控制台的地址作为后续从节点连接主节点时使用的通信地址
为了通信的安全和稳定性如果获取的是公网地址,这里推荐改成内网地址
复制同步命令
复制这里显示的同步命令后续在从节点使用
从节点操作
在从节点执行刚才的同步命令
等待主从同步
预计需要等待 1-2 分钟,此时主节点界面的显示效果为:
从节点界面的显示效果为:
确认配置同步情况
当最近同步时间更新到最近的一两分钟内之后就可以在从节点确认一下网站应用和各种防护配置的同步情况了。
前置负载均衡
在完成雷池 WAF 的主从配置之后,就可以通过在负载均衡让主从接收流量了。这里使用阿里云的 SLB 作为演示。阿里云负载均衡(Server Load Balancer,简称SLB)是对云上流量进行按需分发的服务。通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,消除单点故障并提升应用系统的可用性。阿里云SLB产品家族包含应用型负载均衡ALB和网络型负载均衡NLB。本文以 NLB 为例进行说明。
创建服务器组
注意创建的时候后端协议必须选择 TCP,调度算法必须选择源IP哈希。为了简单起见这里选择开启全端口转发,其他配置看情况选择。
添加后端服务器
在这里选择部署了主从节点的雷池 WAF 服务器即可
创建监听
选择 TCP 协议,端口端视情况填写即可。为了方便演示这里还是选择打开全端口转发。
提交保存
确认刚才的信息选择提交
设置域名解析
将原有的域名解析的 A 记录删除,通过 CNAME 解析的方式将自有域名指向 NLB 实例域名。解析完成之后通过域名测试是否正常访问即可。
总结
通过以上配置,我们已经成功搭建了一个高可用的雷池 WAF 集群。该方案不仅能够提供持续的安全防护能力,还能在节点故障时实现自动切换,确保业务系统的稳定运行。在实际部署过程中,建议根据业务规模和需求选择合适的节点数量,并定期进行故障演练,验证高可用方案的可靠性。同时,也要注意做好监控和告警,及时发现并处理潜在问题,为业务系统提供更可靠的安全保障。
常见问题
问:SLB 方案还有别的选择吗?
答:不限制 SLB 方案,市面上常见的云厂商方案都可以选择,甚至简单实用 Nginx 来做也行。
问:为什么一直显示同步中?
答:同步中只是说明主从同步的模式正常运行中,并不代表数据同步完成状态,因此只有同步中和未同步两种状态。
问:从节点可以编辑配置吗?
答:不可以。从节点是只读状态,只能跟随主节点的配置。
问:从节点需要购买单独的授权吗?
答:是的,每个从节点都需要单独的授权。
问:最近同步时间一直没更新或者时间差距很大?
答:可以看看主从的 mgt 容器日志是否有明显错误,或者解绑后重新尝试同步。
问:主从可以同时接收流量吗?
答:可以。
问:主节点会有从节点的攻击日志、访问日志等统计数据吗?
答:考虑到日志同步体量等问题暂时不支持。