为CLB实例开启WAF防护

为保护暴露在公网的传统型负载均衡CLB实例免受Web攻击,可以为其开启Web应用防火墙(WAF 3.0)防护。该模式无需更改现有网络架构或DNS配置,仅需配置引流端口,系统自动将CLB实例指定引流端口上的公网流量引导至WAF,进行安全检测与过滤,从而实现高效且透明的防护。

接入原理

image
  • 工作原理:WAF通过透明代理方式接入CLB实例。仅需配置CLB实例的引流端口,系统即自动调整底层网络路由策略,将该端口上的全部HTTP/HTTPS流量引导至WAF进行安全检测。WAF在拦截恶意请求后,将正常请求转发到源CLB实例。

  • 防护范围:此模式的防护范围覆盖指定引流端口上的所有域名,并支持仅使用公网IP(无域名)的业务。

  • 支持的监听协议:WAF支持接入已配置HTTP、HTTPSTCP监听的CLB实例。对于TCP监听,WAF仅能防护其端口承载的HTTP/HTTPS流量,不支持对FTP、SMTP、数据库等非HTTP/HTTPS协议流量进行转发防护。

适用范围

若 CLB 实例不满足以下要求,请使用CNAME接入

实例要求

  • 实例类型须为公网,或为私网但已绑定EIP。

  • 接入前必须在CLB实例添加相关监听,且监听协议需为HTTP、HTTPSTCP。

  • IP 版本必须为IPv4。

  • 不支持共享型CLB实例。

实例地域要求

  • 中国内地WAF:西南1(成都)、华北2(北京)、华北3(张家口)、华东1(杭州)、华东2(上海)、华南1(深圳)、华北1(青岛)。

  • 非中国内地WAF:中国(香港)、马来西亚(吉隆坡)、印度尼西亚(雅加达)、新加坡。

重要

接入WAF时,Web业务可能出现短暂的秒级连接中断。建议选择业务低峰期进行操作,并在接入完成后关注业务状态。若客户端或服务具备有效的重连机制,此中断将自动恢复,不会对业务运行造成影响。

快速接入

  1. 进入控制台:

    登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。在左侧导航栏,单击接入管理。选择云产品接入页签,在左侧云产品类型列表,选择传统型负载均衡 CLB

  2. 云产品授权(首次配置)

    根据页面提示,单击立即授权,完成云产品授权。可以在RAM控制台角色页面,查看创建的服务关联角色AliyunServiceRoleForWAF

  3. 接入CLB实例:

    1. 在右侧列表,查看CLB实例及其WAF防护状态,找到目标CLB实例,单击image.png展开详情,选择需要接入的端口,在操作列单击立即接入

      • 若找不到目标实例,请单击页面右上角同步资产,若仍无法找到,说明实例不满足适用范围

      • 立即接入按钮无法点击,或显示防护异常,请参见常见问题image

    2. 根据接入端口的协议类型,进行相应操作。

      协议为HTTP/HTTPS

      接入资产页面,如需自定义配置WAF前七层代理设置(如CDN)X-Forwarded-Proto头字段控制流量标记,请参见获取真实客户端信息;如需自定义配置回源超时时间回源长连接,请参见优化回源链路质量。否则,请单击确定应用默认配置。

      说明

      协议为HTTPS时,证书相关配置在CLB侧完成,WAF侧无需配置证书。

      协议为TCP

      接入资产页面,根据端口承载的流量,选择协议类型

      HTTP

      如需自定义配置WAF前七层代理设置(如CDN)X-Forwarded-Proto头字段控制流量标记,请参见获取真实客户端信息;如需自定义配置回源超时时间回源长连接,请参见优化回源链路质量。否则,请单击确定应用默认配置。

      HTTPS

      1. 如需自定义配置HTTP/2TLS协议版本加密套件扩展证书(多个证书),请参见增强安全防护等级(HTTPS)。否则,请保持其他配置项为默认设置。

      2. 默认证书区域,选择证书上传方式:

        • 手动上传:适用于证书未上传至阿里云数字证书管理服务(原 SSL 证书)的场景。

        • 选择已有证书:从阿里云数字证书管理服务(原 SSL 证书)中选择已签发或已上传的证书。

          手动上传
          • 证书名称:为证书设置一个唯一的名称,不能与已上传的证书名称重复。

          • 证书文件:请使用文本编辑器打开并粘贴 PEM、CER、CRT 格式的证书文本内容。

            格式示例:-----BEGIN CERTIFICATE-----......-----END CERTIFICATE-----

            • 格式转换:若证书是 PFX、P7B 等格式,请使用证书工具将其转换为 PEM 格式。

            • 证书链:若包含中间证书,请按照 “服务器证书、中间证书” 的顺序拼接后粘贴。

          • 私钥文件:请使用文本编辑器打开并粘贴 PEM 格式的私钥文本内容。

            格式示例:-----BEGIN RSA PRIVATE KEY-----......-----END RSA PRIVATE KEY-----

          选择已有证书

          从证书下拉列表中选择要上传到WAF的证书。

          说明

          WAF控制台提示“证书链完整性校验失败,使用该证书可能会影响您的业务访问”,表示证书链存在完整性问题。请检查证书内容的正确性与完整性后,在数字证书管理服务控制台重新上传。具体操作,请参见上传、同步和共享SSL证书

      3. 如需自定义配置WAF前七层代理设置(如CDN)X-Forwarded-Proto头字段控制流量标记,请参见获取真实客户端信息;如需自定义配置回源超时时间回源长连接,请参见优化回源链路质量。否则,请单击确定应用默认配置。

  4. 验证防护效果

    接入完成后,通过以下方式验证防护效果:在浏览器访问CLB实例上托管的网站,并在其URL后附加Web攻击测试代码(例如http://yourdomain.com/alert(xss)),如果返回WAF405拦截提示页面,表示攻击被拦截,WAF防护成功。

  5. 查看并配置防护规则

    完成接入后,WAF将自动创建一个名为实例id-端口-资产类型的防护对象,并为该防护对象默认启用Web核心防护规则等模块的防护规则,可以在防护配置 > 防护对象页面查看。如果默认的防护规则不满足业务需求(例如需将特定IP地址列入白名单以放行其全部请求),可以新建或编辑防护规则。更多信息,请参见防护配置概述

    image

重要
  • 证书与实例状态要求:完成接入后,需要确保证书处于有效期内且实例状态正常。在证书过期,实例上的EIP变更等情况下,WAF的防护将失效。更多信息,请参见更新引流端口绑定的证书实例变更后重新接入WAF

  • CLB实例多域名场景:若多个域名解析指向了同一CLB实例,并且需要单独为这些域名配置不同的防护规则,须手动将各域名添加为防护对象,详细信息,请参见手动添加防护对象

增强安全防护等级(HTTPS)

说明

仅当接入端口的协议类型为TCP,且承载的流量为HTTPS时,才支持配置HTTPS相关选项。

配置项

功能描述

HTTP2

利用HTTP/2协议提升网页加载速度,降低延迟,改善用户体验。若网站支持 HTTP/2,可启用该功能。启用后,HTTP/2HTTPS使用相同端口。

TLS协议版本

定义客户端与WAF之间允许的TLS版本。版本越高安全性越强,但对旧客户端兼容性越低。高安全需求场景下,推荐选择TLS1.2及以上版本。

加密套件

定义客户端与WAF之间允许的加密算法。强加密套件安全性高,但对旧客户端兼容性低,高安全需求场景下,建议选择强加密套件。

扩展证书

CLB实例托管多个域名的HTTPS网站,且单张证书无法覆盖所有域名时,需为每个域名上传对应的证书。

  • HTTP2

    接入资产页选中HTTP2启用。

  • TLS协议版本

    接入资产页的TLS协议版本区域进行选择。

    • 支持TLS1.0及以上版本,兼容性最高,安全性较低:支持所有老旧客户端访问。

    • 支持TLS1.1及以上版本,兼容性较好,安全性较好:将导致使用TLS 1.0协议的老旧客户端无法访问网站。

    • 支持TLS1.2及以上版本,兼容性较好,安全性最高:满足最新的安全合规要求,但将导致使用TLS 1.01.1协议的老旧客户端无法访问网站。

    • 开启支持TLS1.3:如果网站支持TLS 1.3协议,请勾选此项。WAF默认不监听TLS 1.3协议的客户端请求。

  • 加密套件

    接入资产页的加密套件区域进行选择。

    • 全部加密套件,兼容性较高,安全性较低

    • 协议版本的自定义加密套件、请谨慎选择,避免影响业务:如果网站仅支持特定的加密套件,请选择此项,并从支持的加密套件列表中进行选择。

      强加密套件

      弱加密套件

      • ECDHE-ECDSA-AES128-GCM-SHA256

      • ECDHE-ECDSA-AES256-GCM-SHA384

      • ECDHE-ECDSA-AES128-SHA256

      • ECDHE-ECDSA-AES256-SHA384

      • ECDHE-RSA-AES128-GCM-SHA256

      • ECDHE-RSA-AES256-GCM-SHA384

      • ECDHE-RSA-AES128-SHA256

      • ECDHE-RSA-AES256-SHA384

      • ECDHE-ECDSA-AES128-SHA

      • ECDHE-ECDSA-AES256-SHA

      • AES128-GCM-SHA256

      • AES256-GCM-SHA384

      • AES128-SHA256

      • AES256-SHA256

      • ECDHE-RSA-AES128-SHA

      • ECDHE-RSA-AES256-SHA

      • AES128-SHA

      • AES256-SHA

      • DES-CBC3-SHA

      说明
      • 加密套件安全建议ECDHE-RSA-AES128-SHA256ECDHE-RSA-AES256-SHA384 加密套件使用 ECDHE 进行密钥交换,RSA 用于身份认证,采用 AES-CBC 加密模式。相比采用 AES-GCM 等认证加密模式的套件,其安全性和性能较低。部分安全扫描工具可能将其识别为弱加密套件,如出现该情况,请选择自定义加密套件并手动排除上述两个套件。

      • 加密套件命名标准:由于加密套件的命名标准不同,WAF采用OpenSSL格式显示加密套件,而部分扫描工具可能使用IANA标准。例如,OpenSSL中的ECDHE-ECDSA-AES256-SHA384对应IANATLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384。如需快速查询对应关系,可访问 ciphersuite.info 或使用其他TLS查询工具。

  • 扩展证书

    接入资产页的扩展证书区域上传证书。上传方式与默认证书相同,具体操作,请参见默认证书

    说明

    添加多个扩展证书时,所有证书必须有效。任一证书过期将导致添加操作失败。

获取真实客户端信息

配置项

功能描述

WAF前是否有七层代理(高防/CDN等)

WAF前存在七层代理(如CDN)时,需设置客户端IP判定方式,确保WAF能够获取真实的客户端IP信息,以便进行安全分析(例如:安全报表攻击源IP)。

启用流量标记

帮助源站服务器区分经过WAF的请求,获取客户端真实源IP或源端口。

通过X-Forwarded-Proto头字段获取WAF的监听协议

WAF 默认为经过的HTTP请求插入 X-Forwarded-Proto 头部,用于标识客户端与最近一跳七层代理建立连接所使用的协议。若网站应用需处理此头部,可按需配置。

  • WAF前是否有七层代理(高防/CDN等)

    接入资产页的WAF前是否有七层代理(高防/CDN等)区域进行配置,可选项:

    否,无其他代理

    表示WAF收到的业务请求由客户端直接发起。

    是,有其他代理

    表示WAF收到的业务请求来自其他七层代理服务转发,需要进一步设置客户端IP判定方式

    • X-Forwarded-For中的第一个IP作为客户端源IP

      选择此项后,WAF将按照以下顺序获取客户端IP:

      1. 从请求头部读取 X-Real-IP 作为客户端 IP。

      2. 若 X-Real-IP 不存在,则使用 X-Forwarded-For(XFF)中的首个 IP 地址作为客户端 IP。

    • 【推荐】取指定Header字段中的第一个IP作为客户端源IP,避免XFF伪造

      说明

      建议通过其他代理服务配置,将客户端源 IP 地址写入指定的 Header 字段(例如X-Real-IP、X-Client-IP)并选择此配置,以防止攻击者通过伪造XFF字段绕过WAF。

      指定Header字段框中填写对应的字段。支持输入多个Header字段。输入后回车确认。WAF将按照以下顺序获取客户端IP:

      1. 按序匹配配置的指定Header字段

      2. 若所有指定Header都不存在,尝试读取X-Real-IP字段。

      3. 若仍无结果,则采用XFF中的首个IP地址作为客户端IP。

  • 启用流量标记

    接入资产页展开高级设置,勾选启用流量标记后配置如下类型的标记字段:

    • 自定义Header:通过配置HeaderHeader,使WAF在回源请求中添加该Header信息,标识经过WAF的请求。例如,可配置WAF-TAG: Yes标记,其中WAF-TAGHeader名,YesHeader值。配置后,服务器可基于该字段建立校验或访问控制策略,增强安全防护与请求识别能力。

      重要

      请勿填写标准的HTTP Header字段(例如User-Agent等),否则将导致标准Header字段内容被自定义的字段值覆盖。

    • 客户端真实源IP:通过配置真实客户端源IP所在的Header字段名,WAF可记录该Header字段并将其传递至源站服务器。关于WAF判定客户端真实源IP的具体规则,请参见WAF前是否有七层代理(高防/CDN等)参数的描述。

    • 客户端真实源端口:通过配置真实客户端源端口所在的Header字段名,WAF可记录该Header字段并将其传递至源站服务器。

  • 通过X-Forwarded-Proto头字段获取WAF的监听协议

    接入资产页展开高级设置,按需勾选通过X-Forwarded-Proto头字段获取WAF的监听协议

优化回源链路质量

配置项

功能描述

设置读写连接超时时间

当源站服务器处理时间较长导致可能的超时问题时,可配置WAF读写连接超时时间。

回源长连接

配置WAF 与源站服务器之间保持长时间连接的能力。若接入后出现偶发502错误,请检查源站相关参数。建议将WAF的长连接参数值设置为小于或等于源站对应的参数值。

  • 设置读写连接超时时间

    接入资产页展开高级设置,设置以下项目:

    • 设置读连接超时时间:等待源站服务器响应的超时时间。对于响应耗时较长的接口(如报表导出、批量数据处理),需调高此参数。默认值为120s,可配置范围为1s~3600s。

    • 设置写连接超时时间:WAF向源站服务器发送请求的超时时间。一般情况下无需调整,仅当源站负载极高导致处理请求慢时,才应适当调高此参数。默认值为120s,可配置范围为1s~3600s。

  • 回源长连接

    重要

    关闭该功能后,回源长连接将不支持WebSocket协议。

    接入资产页展开高级设置,在回源长连接区域启用该功能并进行如下设置:

    • 复用长连接的请求个数:默认值为1,000个,可配置范围为60个~1,000个。例如,当源站使用Nginx时,此参数对应Nginx参数keepalive_requests,更多信息,请参见Nginx文档

    • 空闲长连接超时时间:默认值为3600s,可配置范围为10s~3600s。例如,当源站使用Nginx时,此参数对应Nginx参数keepalive_timeout

提高资源管理效率

资源组

  • 功能描述:用于简化资源管理和权限配置,提升管理效率。未指定资源组时,实例将加入默认资源组。更多信息,请参见资源组

  • 操作步骤:在接入资产资源组区域,从资源组下拉列表中选择该实例所属资源组。

日常运维

更新引流端口绑定的证书

如果证书即将到期或其他原因导致证书发生变更(例如证书被吊销)时,需要更新引流端口绑定的证书。

步骤一:准备新证书

在阿里云购买新证书

数字证书管理服务(原 SSL 证书)控制台续费SSL证书,具体操作,请参见续费SSL证书

已在其他平台购买新证书,将其上传至阿里云

  1. 从原购买平台下载证书文件。

  2. 进入上传证书页面并单击上传证书,上传PEM格式的证书。具体操作,请参见上传本地证书

步骤二:替换旧证书

CLB协议为HTTP/HTTPS

方式一:

  1. CLB控制台创建证书,并选择证书来源为阿里云签发证书不能选择非阿里云签发证书。具体操作,请参见创建证书

  2. CLB控制台,修改监听配置,将服务器证书替换为新上传的证书。具体操作,请参见步骤二:配置SSL证书

方式二:

  1. 数字证书管理服务(原 SSL 证书)控制台部署证书到CLB实例。具体操作,请参见部署证书至云产品

  2. 在 WAF 控制台接入管理页面右上角,单击同步资产

CLB协议为TCP

  1. 云产品接入页签,选择传统型负载均衡CLB分页,定位到目标实例,单击image.png图标,选择目标端口操作列的编辑证书image

  2. 默认证书区域,选中选择已有证书,并重新选择更换后的证书。

说明
  • 证书剩余有效期不足30个自然日时,WAF会在接入列表中通过image.png图标,提示证书即将过期,建议及时更新,以免影响业务正常运行。

  • 可以设置SSL证书消息提醒,在证书到期前通过邮件、短信等方式接收通知。具体操作,请参见设置SSL证书消息提醒

  • 为避免因证书过期而导致业务中断,建议开通阿里云数字证书管理服务(原 SSL 证书)的证书托管服务,在证书即将过期时自动申请并更新证书。更多信息,请参见什么是托管服务

接入回滚(取消接入)

  • 临时关闭WAF防护:若在接入后出现问题,例如出现大量误拦截,需要临时关闭WAF防护时,可以在WAF控制台的防护对象页面中,关闭WAF防护状态开关。更多信息,请参见一键关闭WAF防护功能

  • 取消接入:若不再希望使用WAFCLB实例进行防护,可以按照以下步骤取消接入。

    云产品接入页签,选择传统型负载均衡CLB分页,定位到目标实例,单击image.png图标,单击取消接入,在取消接入对话框,单击确定image

重要
  • 业务影响:取消接入WAF时,Web业务可能出现短暂的秒级连接中断。建议选择业务低峰期执行取消接入操作,并在取消完成后关注业务状态。若客户端或服务具备有效的重连机制,此中断将自动恢复,不会对业务运行造成影响。

  • 重新接入:取消接入后,资产上的流量将不再受到WAF保护,可以单击立即接入,重新配置引流端口。

  • 计费提示:当 WAF 实例为按量付费时,除请求处理费用外,还收取功能费用(包括实例本身及防护规则等)。如需终止使用 WAF 并停止计费,请参见关闭WAF

实例变更后重新接入WAF

WAF 通过 CLB 实例的引流端口对业务流量进行防护。当CLB实例因以下任一操作而发生变更时,原有的引流端口配置将会失效,导致业务流量绕过 WAF,直接暴露于公网风险之中:

  • 释放CLB实例。

  • 删除已接入WAF的监听端口。

  • 更换CLB实例绑定的 EIP。

为恢复安全防护,此时必须在 WAF 控制台为变更后的CLB实例重新执行接入操作。

应用于生产环境

为确保在生产环境中的安全性和稳定性,在接入生产环境CLB实例时,建议遵循以下最佳实践。

  • HTTPS配置:建议配置HTTPS类型的引流端口,并关注以下配置,以便高效管理证书。

    • 将证书文件上传至数字证书管理服务(原 SSL 证书)

    • 建议配置TLS协议版本为TLS1.2及以上版本。

    • 设置SSL证书消息提醒,在证书即将过期时及时更新。

  • 灰度策略:优先在业务低峰期接入非生产环境的CLB实例,运行一段时间以确认业务正常后,再接入生产环境的CLB实例。

  • 检查业务:接入完成后,可以通过如下方式确认业务是否正常。

    • 查看日志:查看日志中状态码200的占比是否有明显波动、QPS是否有明显突增突降等。若已启用WAF日志服务,可以参考WAF日志进行检查。

    • 业务监控:检查业务侧功能是否正常,例如用户访问、交易等功能。

  • 后续运维:生产环境接入完成后,需进行持续的运维工作,监控攻击与误拦截事件。

    • 事件处置:建议关注安全报表,并配置云监控通知,及时了解攻击事件与安全事件。

    • 调整规则:持续关注攻击日志,分析是否存在业务请求被误拦截的情况,针对性优化防护规则。

配额与限制

  • 接入的端口数量:配置的引流端口总数未超过 WAF 实例规格的上限。

    • WAF包年包月实例:基础版最多300个;高级版最多600个;企业版最多2,500个;旗舰版最多10,000个。

    • WAF按量付费实例:最多10,000个。

  • 监听协议为HTTPSCLB实例要求:

    • 证书不能过期。

    • 仅支持CLB内置的TLS安全策略。

    • 不支持手动上传至CLB控制台的证书。

    • 不支持启用双向认证。

  • 证书要求:不支持上传国密证书。

常见问题

“立即接入”按钮是灰色无法接入,或显示防护异常怎么办?

协议为TCP

请定位到目标CLB实例,单击image.png展开详情后再进行接入,暂不支持在未展开时单击立即接入image

协议为HTTPS

  • 可能原因

    • 证书过期。

    • 开启了双向认证。

    • 证书仅通过手动上传至CLB控制台。

  • 解决方案

    • 若证书过期,请参见更新引流端口绑定的证书进行更新。

    • 若开启了双向认证,请关闭双向认证后再进行接入,具体操作,请参见配置双向认证

    • 若证书仅通过手动上传至CLB控制台,请进行以下操作:

      1. 将证书上传到数字证书管理服务(原 SSL 证书)。具体操作,请参见上传SSL证书

      2. CLB控制台创建证书,并选择证书来源为阿里云签发证书。具体操作,请参见创建证书

      3. CLB控制台,配置监听,将服务器证书替换为新上传的证书。具体操作,请参见步骤二:配置SSL证书

      说明

      在通过手动方式将证书上传至CLB控制台时,证书信息不会自动同步至数字证书管理服务。由于WAF仅从数字证书管理服务中获取证书信息,便导致此问题的产生。

为什么找不到要接入的CLB实例?

请优先单击接入管理页面右上角同步资产image

若仍无法找到,说明实例不满足适用范围。例如非中国内地地域的CLB实例需要通过购买非中国内地WAF进行云产品接入,或使用CNAME接入

image

同一个域名解析指向了多个CLB实例,该如何接入?

  • 使用云产品接入:需要逐一接入这些CLB实例,确保WAF将流量引导至所有目标实例。

  • 使用CNAME接入:CNAME接入此域名并配置源站地址为多个CLB实例的公网IP。

多个域名解析指向了同一个CLB实例,该如何接入?

  • 使用云产品接入:接入此CLB实例后,实例上的所有域名都将受到WAF默认防护策略的防护。但如果需要单独为这些域名配置不同的防护规则,须手动将各域名添加为防护对象,详细信息,请参见手动添加防护对象

  • 使用CNAME接入:逐一接入多个域名。