阿里云WAF配置实战:网站Web攻击防护指南

阿里云WAF配置是网站上线Web应用防火墙(Web Application Firewall)的标准操作流程。本文以阿里云Web应用防火墙为例,完整演示从域名接入、防护规则配置到攻击验证的全过程,帮助站长与安全工程师快速建立SQL注入、XSS与CC攻击的云端防护能力。

适用场景

  • 网站已上线但缺少Web层防护,担心SQL注入、XSS等漏洞被利用;
  • 业务遭遇高频CC攻击或恶意爬虫频繁抓取;
  • 等保2.0等合规要求需要Web攻击防护能力;
  • 已有Nginx、iptables层防护,需要叠加应用层WAF。

前置条件

  • 阿里云账号并完成实名认证;
  • 域名已在工信部完成ICP备案(国内节点必须);
  • 源站服务器已部署业务,记录源站公网IP与业务端口;
  • 拥有域名DNS解析管理权限。

原理说明

阿里云WAF采用CNAME接入模式:将业务域名解析从源站IP改为WAF集群提供的CNAME地址,用户请求先到达WAF集群,经过攻击检测与清洗后再回源到真实服务器。WAF内置Web攻击防护引擎(检测SQL注入、XSS、命令注入、恶意爬虫等)、CC防护引擎(基于会话频率与IP维度限速)与Bot管理模块。核心价值是源站IP被隐藏,攻击者无法直接对源站发起攻击。

操作步骤

步骤一:添加防护域名

登录阿里云控制台,进入Web应用防火墙,选择防护配置并添加域名:

  • 域名:www.example.com;
  • 协议:HTTP/HTTPS,端口80/443;
  • 源站地址:选择”域名/IP”,填入源站IP与端口;
  • 回源SNI:源站为HTTPS时填写源站域名;
  • 开启”Web应用攻击防护”与”CC安全防护”。

步骤二:修改DNS解析

添加成功后,控制台生成CNAME地址(形如xxxx.waf.aliyuncs.com)。到DNS服务商将www.example.com的A记录改为CNAME记录:

# 修改前
www.example.com A 1.2.3.4
# 修改后
www.example.com CNAME xxxx.waf.aliyuncs.com

建议先将原记录TTL调低至600秒,等待DNS生效后再切回,降低切换期间的风险。

步骤三:配置防护规则

在防护配置页面调整以下策略:

  • Web攻击防护:选择中等防护等级,开启SQL注入、XSS、命令注入等规则组,对业务误报的URL添加白名单;
  • CC防护:设置单IP 5秒内访问超过20次触发限速(按业务峰值调整),开启人机验证;
  • 区域封禁:业务仅面向国内时可封禁海外区域(可选);
  • Bot管理:开启恶意爬虫识别,识别扫描器UA并拦截;
  • 精准访问控制:编写自定义规则,例如拦截特定攻击路径或参数。

步骤四:配置HTTPS证书

开启HTTPS接入时,在域名详情页上传SSL证书或选择阿里云SSL证书服务中的证书,开启”HTTPS回源”并设置回源端口443。

步骤五:配置回源IP白名单(推荐)

# 在源站安全组或防火墙仅放行WAF回源网段
# 阿里云ECS安全组示例(以控制台实际为准):
# 入方向规则1:来源 = WAF回源IP段,协议 TCP,端口 80/443,动作 允许
# 入方向规则2:来源 = 0.0.0.0/0,协议 TCP,端口 80/443,动作 拒绝
# 同时限制SSH等管理端口来源,仅允许办公网段

完成白名单后,源站公网仅接受WAF回源流量,即使源站IP泄露也无法被直接访问。

配置验证

# 验证1:确认解析已切换到WAF
dig www.example.com +short
# 应返回WAF CNAME或WAF集群IP,而非源站IP

# 验证2:模拟SQL注入(应被WAF拦截)
curl -s -o /dev/null -w "%{http_code}\n"   "https://www.example.com/search?id=1%20and%201=1"

# 验证3:模拟XSS探测(应被WAF拦截)
curl -s -o /dev/null -w "%{http_code}\n"   "https://www.example.com/search?q=%3Cscript%3Ealert(1)%3C/script%3E"

正常业务请求返回200,攻击请求返回WAF拦截页面(403/405)即配置成功。随后在控制台”防护日志”中可看到攻击拦截记录与Top攻击类型。

常见问题

FAQ1:CNAME接入和透明接入(SDK/WebAgent)有什么区别?

CNAME接入无需修改源站代码,通过DNS引流,部署简单,但依赖DNS切换生效;透明接入需在源站安装SDK(WebAgent),请求先到源站再由SDK转发至WAF检测,适合无法修改DNS的场景,但会占用源站资源。日常网站推荐CNAME接入。

FAQ2:接入WAF后源站IP会暴露吗?

正常情况不会,用户流量全部经过WAF,源站IP仅对WAF回源可见。但若源站服务器对外开放SSH、RDP等端口,攻击者仍可能通过端口扫描探测到源站,因此务必配合安全组白名单仅放行WAF回源网段,并隐藏非必要端口。

总结

阿里云WAF通过CNAME接入可在数十分钟内为网站建立Web攻击防护能力,覆盖SQL注入、XSS、CC攻击与恶意爬虫等主要威胁。配置关键在于:正确修改DNS、按业务调整CC阈值、回源白名单收口源站暴露面,并通过攻击模拟与防护日志复盘持续优化规则。