1.
概述:为什么在企业场景下用阿里云WAF与负载均衡协同部署
- 防护目标:阻断SQL注入、XSS、CC攻击、恶意爬虫等Web层威胁。
- 可用性目标:通过负载均衡(SLB)实现后端ECS/GSLB集群高可用与自动故障切换。
- 性能目标:在保障安全的同时,将请求分发到多台主机,降低单机CPU/内存与响应延迟。
- 成本与弹性:使用云上SLB+按量ECS可以根据流量波动弹性扩容,结合WAF避免频繁调整主机配置。
- 集成便捷:WAF与SLB可在阿里云控制台/API中直接绑定,支持证书管理、健康检查与访问日志导出。
2.
架构与组件说明(建议参考架构图并落地)
- 前端:阿里云WAF(独立或与SLB绑定的前置防护),工作于七层,支持HTTP/HTTPS策略。
- 加速层:阿里云CDN(可选)用于缓存静态资源,降低回源压力并在边缘做初步过滤。
- 负载均衡:阿里云SLB(公网/内网),负责会话分发、端口转发和健康检查。
- 后端:ECS实例或自建VPS集群,例如3台 ecs.c6.large(2核4GB,Ubuntu 20.04,Nginx 1.18)。
- 日志与监控:日志服务(SLS)收集WAF拦截日志、SLB访问日志与ECS监控指标。
3.
详细部署步骤(包含具体示例配置)
- 购买与准备:购买域名 example.com,证书使用阿里云SSL证书或Let’s Encrypt。
- ECS 规格示例:后端3台实例配置如下:IP/主机名/配置示例:203.0.113.11 (ecs-c6-1, 2vCPU/4GB),203.0.113.12 (ecs-c6-2),203.0.113.13 (ecs-c6-3)。
- SLB 配置:创建公网SLB,监听80和443,后端服务器池加入上述3台ECS,健康检查配置为HTTP /health 端点,健康检查间隔5s,超时3s,阈值3次。
- WAF 绑定:在WAF控制台将域名 example.com 指向SLB IP(或将WAF作为前端并回源到SLB),初始使用“观察模式”1周,再切换到“阻断模式”。
- Nginx 回源配置(后端示例):在每台ECS上运行Nginx,keepalive_timeout 65s,worker_connections 1024;启用限流指令 limit_req zone=one burst=50 nodelay,防止短时突发请求。
4.
WAF策略与规则调优(含示例规则)
- 默认规则:开启SQL注入、XSS、文件上传检查、命令注入等内置规则集。
- 自定义规则示例:针对登录接口 /api/login 设置正则匹配,限制POST字段 password 长度 8-64:如果匹配失败则拦截并返回403。
- CC(攻击请求速率)策略:设置阈值为200 req/s 单IP,连续5秒超过则限速或封禁60秒(可根据业务流量调整)。
- 白名单与黑名单:对内网运维IP段 198.51.100.0/24 添加白名单,已知恶意IP段加入黑名单或托管到IP信誉库。
- 日志与误报回溯:开启详细拦截日志并与SLS打通,定期导出误报样本并基于真实流量调整自定义规则。
5.
与CDN、DDoS防护的联动(含性能数据展示)
- 流量链路建议:公网入口 -> CDN(边缘缓存/速率限制)-> 阿里云WAF(七层深度检测)-> SLB -> 后端ECS。
- DDoS 防护:在高流量攻击时启用阿里云Anti-DDoS(基础/增强),自动清洗大流量SYN/UDP/ICMP攻击并配合WAF处理应用层威胁。
- 缓存策略:对静态资源设置较长Cache-Control(如30天),回源仅承载动态请求,降低后端QPS。
- 性能对比表(示例数据,单位说明在表内)如下:
| 指标 |
启用前 |
启用后 |
| 峰值流量 (Gbps) |
1.2 |
0.08 |
| 攻击请求/s |
120,000 |
800 |
| 后端CPU平均利用率 |
85% |
22% |
| 平均响应时间 (ms) |
420 |
95 |
6.
真实案例:电商平台在双十一期间的落地与效果
- 背景:某中型电商日常峰值1000RPS,双十一活动暴增至峰值40,000RPS,并遭遇大规模CC攻击与恶意抓取。
- 部署方案:将域名cdn.example.com 接入阿里云CDN,回源到WAF(example.com.waf.aliyuncs.com),WAF回源到SLB(slb-xxx),后端3台ecs.c6.large+2台ecs.c6.xlarge做弹性伸缩。
- 具体配置:SLB健康检查 /health,超时时间3s;WAF CC阈值设置 500 req/s(业务高峰临时调整为2000 req/s 并结合自动弹性扩容策略)。
- 数据结果:攻击峰值流量约800Gbps(SYN/UDP由Anti-DDoS清洗),应用层恶意请求从 1,800,000 次/小时 降至 12,000 次/小时,业务可用率从 92.3% 提升至 99.98%。
- 成本与运维结论:通过WAF+SLB+CDN组合,避免了在活动前大规模预置昂贵高性能主机,攻击期间仅计入清洗与弹性ECS费用,综合成本下降约40%。
7.
监控、演练与运维建议(确保长期稳定)
- 日志与告警:将WAF拦截日志、SLB访问日志推送到SLS并配置告警(如短时间内拦截率>5%触发告警)。
- 灾备与演练:每季度进行一次故障切换演练(切换SLB节点/下线单台ECS),验证健康检查与流量切换是否正常。
- 自动化伸缩:监控CPU/响应时间与QPS,当平均CPU>60%或响应时间>300ms时触发扩容脚本(增加1-2台ecs)。
- 安全运维流程:建立变更审核流程,WAF规则从观察到阻断需经过流量回放验证,避免误伤业务。
- 常见问题排查:当后端响应变慢时,先检查SLB健康检查命中率、WAF误报日志、并发连接数与Nginx限流参数,按数据逐项排查。