更新时间:2026-09-04 GMT+08:00
分享

独享模式接入最佳实践

应用场景

假设某企业需要将域名www.example.com通过独享模式接入WAF进行防护,业务情况如下:

  • 源站服务器:华为云ECS,私有IP为192.168.1.100,Web服务监听80端口
  • VPC:vpc-example(已创建)
  • 防护端口:80(标准端口)
  • 对外协议:HTTP
  • 源站协议:HTTP

操作流程

操作

说明

步骤一:购买独享WAF实例

在目标区域和VPC下购买WAF独享引擎

步骤二:配置负载均衡器

创建独享型ELB并添加监听器

步骤三:添加防护域名

在WAF控制台添加防护网站并配置源站信息

步骤四:将WAF独享引擎添加到ELB

将WAF独享引擎添加到ELB后端服务器组

步骤五:绑定弹性公网IP

将源站EIP解绑后绑定到WAF的ELB上

步骤六:放行独享引擎回源IP

在源站安全组中放行独享引擎回源IP

步骤七:接入验证

验证WAF转发和防护功能正常

操作步骤

参考以下步骤,将网站接入WAF防护。

步骤一:购买独享WAF实例

  1. 登录Web应用防火墙控制台
  2. 在页面右上角,单击“购买WAF实例”,配置以下关键参数:

    • 计费模式:按需计费
    • 区域:选择与源站ECS相同的区域(如华北-北京四)
    • VPC:选择vpc-example
    • 规格:根据业务QPS选择,如WI-500(建议HTTP 5,000QPS / HTTPS 4,000QPS)

  3. 单击“立即购买”,完成支付。

    高可用建议:为避免单点故障,建议在同一VPC下购买两个WAF独享引擎实例,配合ELB实现业务双活。

步骤二:配置负载均衡器

  1. 进入弹性负载均衡列表页面
  2. 单击"购买弹性负载均衡",配置以下参数:

    • 实例类型:独享型
    • 规格:应用型(HTTP/HTTPS)
    • VPC:选择vpc-example(与WAF独享引擎相同)

  3. 购买完成后,单击目标ELB名称进入详情页。
  4. 在"监听器"页签,单击"添加监听器",配置:

    • 前端协议:HTTP
    • 前端端口:80
    • 分配策略类型:加权轮询算法
    • 会话保持:关闭(重要:开启会话保持可能导致故障时请求出错)
    • 健康检查:开启

步骤三:添加防护域名

  1. 登录Web应用防火墙控制台
  2. 在左侧导航栏,单击“接入管理”
  3. “接入管理”页面,选择“独享模式”页签后,单击“添加防护网站”

    若仅开通一种接入模式,则直接单击“添加防护网站”

  4. “添加防护网站”面板,配置以下参数:

    • 防护对象:www.example.com
    • 防护端口:标准端口(80)
    • 对外协议:HTTP

      如果"对外协议"选择HTTPS,需要选择或导入SSL证书。WAF仅支持PEM格式证书。

    • 源站协议:HTTP
    • VPC:vpc-example
    • 源站地址:192.168.1.100
    • 源站端口:80
    • 权重:100
    • IP标记:$remote_sockaddr(WAF前无其他代理时选择)
    • 防护策略:系统自动生成策略(默认开启Web基础防护常规检测,仅记录模式)

  5. 单击“确定”完成添加。

步骤四:将WAF独享引擎添加到ELB

  1. 登录Web应用防火墙控制台
  2. 在左侧导航栏,选择资产管理 > WAF独享引擎
  3. 在目标实例所在行的"操作"列,选择"更多 > 添加到ELB"。
  4. 在"添加到ELB"面板,选择:

    • ELB(负载均衡器):步骤二中创建的ELB
    • ELB监听器:步骤二中创建的监听器
    • 后端服务器组:默认或自定义

  5. 单击"下一步",配置业务端口为 80(与防护端口一致),权重为 100。
  6. 单击"确定"。
  7. 确认"健康检查结果"为"正常"。如异常,请参见健康检查异常排查。

步骤五:绑定弹性公网IP

  1. 进入弹性负载均衡列表页面
  2. 定位到源站服务器绑定的ELB(如果有),解绑其弹性公网IP。

    • 在源站ELB所在行"操作"列,选择"更多 > 解绑IPv4公网IP"。
    • 在弹出的对话框中,单击"是"。

  3. 定位到WAF独享引擎的ELB,绑定解绑的弹性公网IP。

    • 在WAF独享引擎的ELB所在行"操作"列,选择"更多 > 绑定IPv4公网IP"。
    • 在弹出对话框中,选择刚解绑的EIP,单击"确定"。

步骤六:放行独享引擎回源IP

  1. 登录Web应用防火墙控制台
  2. 在左侧导航栏,选择资产管理 > WAF独享引擎
  3. 单击目标独享引擎"IP地址"列的IP,复制子网IP地址(如 192.168.2.10)。
  4. 登录ECS控制台
  5. 单击目标ECS实例,在详情页,选择"安全组"页签,单击安全组名称进入安全组配置。
  6. 在"入方向规则"页签,单击"添加规则":

    • 策略:允许
    • 协议端口:自定义TCP,端口为空或 1-65535
    • 源地址:192.168.2.10(独享引擎子网IP)

  7. 单击"确定"。

    验证方法:执行 telnet 源站IP 80,如果端口无法直接连通但网站业务可正常访问,说明安全组规则配置成功。

步骤七:接入验证

参考如下方法,验证网站是否成功接入WAF。

验证独享WAF是否正常工作

创建一台与独享WAF实例在同一VPC下的ECS,执行以下测试:

转发测试

curl -kv -H "Host: www.example.com" http://192.168.2.10 

返回码为200则说明转发成功。

攻击拦截测试

# 确保策略已开启基础防护拦截模式curl -kv -H "Host: www.example.com" http://192.168.2.10 --data "id=1 and 1='1'"

返回码为418则说明拦截成功,独享WAF工作正常。

验证独享WAF和ELB是否都正常工作

HTTP转发测试

# 使用ELB私网IP测试curl -kv -H "Host: www.example.com" http://192.168.3.20  # 使用ELB公网IP测试(如已绑定EIP)curl -kv -H "Host: www.example.com" http://100.10.x.x 

HTTPS转发测试(如对外协议为HTTPS):

curl -kv --resolve www.example.com:443:100.10.x.x https://www.example.com 

攻击拦截测试

curl -kv -H "Host: www.example.com" http://100.10.x.x --data "id=1 and 1='1'"

返回码为418则说明拦截成功,独享WAF和ELB均工作正常。

验证接入状态

  1. 在WAF控制台"接入管理"页面,查看域名的"接入状态"。
  2. 如显示"未接入",在1分钟内多次访问防护网站后单击刷新按钮。
  3. 当WAF统计防护网站在过去一天内达到50次访问请求时,将自动认定已成功接入。

生产环境配置建议

将业务域名接入WAF防护前,建议遵循以下建议:
  • 接入时间:优先在凌晨低峰期切换DNS,降低用户影响。
  • 灰度策略:建议先接入非生产环境的域名,运行一段时间确认业务正常后再接入生产环境域名。
  • 检查业务:接入完成后,查看日志中状态码200的占比是否有明显波动、QPS是否有明显突增突降,检查业务侧功能是否正常。
  • 源站加固:在源站服务器上配置只放行WAF回源IP全部端口的访问控制策略,防止黑客获取源站IP后绕过WAF直接攻击源站。
  • HTTPS配置:在源站服务器与WAF侧同步部署SSL证书,将证书上传至云证书与管理服务CCM,在WAF侧选择HTTPS协议并配置PCI DSS/3DS合规与TLS,开启证书到期告警通知。
  • 规则优化:接入初期使用观察模式(仅记录),排除误拦截后再开启拦截模式。
  • 监控告警:开启告警通知,设置监控告警规则,关注防护域名的请求量、5XX返回码、基础防护次数、CC防护次数等信息。
  • 备份策略:保存当前DNS、证书、回源配置信息,便于故障快速回滚。

相关文档