全部产品
Search
文档中心

Web 应用防火墙:为NLB实例开启WAF防护

更新时间:Feb 12, 2026

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

接入原理

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

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

  • 支持的监听协议:WAF支持接入已配置TCP监听的NLB实例,不支持UDP、TCPSSL监听。针对TCP监听,WAF仅可防护其端口上传输的HTTP/HTTPS流量,不支持对FTP、SMTP、数据库等非HTTP/HTTPS协议的流量进行转发或防护。

适用范围

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

实例要求

  • 实例类型须为公网。

  • 接入前必须在NLB实例中添加TCP协议监听。

  • IP协议版本必须为IPv4。

实例地域要求

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

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

重要

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

快速接入

  1. 进入控制台:

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

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

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

  3. 接入NLB实例:

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

      说明
      • 请单击image.png展开详情后再进行接入,暂不支持在未展开时单击立即接入

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

      image

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

      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. 验证防护效果

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

  5. 查看并配置防护规则

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

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

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

增强安全防护等级(HTTPS)

配置项

功能描述

HTTP2

利用HTTP/2协议提升网页加载速度,降低延迟,改善用户体验。若网站支持 HTTP/2,可启用该功能。启用后,HTTP/2与HTTPS使用相同端口,且监听与回源协议均为HTTP/2。若网站不支持HTTP/2,请勿配置该功能,否则网站将无法访问。

TLS协议版本

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

加密套件

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

扩展证书

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

  • HTTP2

    接入资产页选中HTTP2 监听启用。

  • TLS协议版本

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

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

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

    • 支持TLS1.2及以上版本,兼容性较好,安全性最高:满足最新的安全合规要求,但将导致使用TLS 1.0和1.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对应IANA的TLS_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:通过配置Header名Header值,使WAF在回源请求中添加该Header信息,标识经过WAF的请求。例如,可配置WAF-TAG: Yes标记,其中WAF-TAG为Header名,Yes为Header值。配置后,服务器可基于该字段建立校验或访问控制策略,增强安全防护与请求识别能力。

      重要

      请勿填写标准的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

控制上传文件大小

上传文件大小限制(仅旗舰版支持)

  • 功能描述:WAF 默认支持最大 2 GB 的文件上传。旗舰版 WAF 允许调整该上限,以满足大文件上传需求。

  • 操作步骤:在立即接入页展开高级设置,在上传文件大小限制进行配置。默认值2GB,最高可配置10GB。配置后需同步调高设置读连接超时时间设置写连接超时时间

提高资源管理效率

资源组

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

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

日常运维

更新引流端口绑定的证书

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

在阿里云购买新证书

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

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

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

已在其他平台购买新证书

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

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

  3. 默认证书区域,选中手动上传,并选择新的证书,填写如下信息后,单击确定

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

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

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

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

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

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

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

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

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

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

接入回滚(取消接入)

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

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

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

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

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

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

实例变更后重新接入WAF

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

  • 释放NLB实例。

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

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

应用于生产环境

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

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

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

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

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

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

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

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

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

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

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

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

配额与限制

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

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

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

  • NLB实例接入要求:

    • 接入协议类型为HTTPS的NLB实例时,在WAF控制台上传的证书不能过期,且不支持上传国密证书或启用双向认证。

    • 不支持接入开启全端口功能的NLB实例监听端口。

  • 修改 NLB 实例公网 IP 的生效延迟:当 NLB 实例配置的监听端口数量超过 50 个时,若因可用区或子网变更导致其弹性公网 IP 地址更新,WAF 将流量回源至 NLB 新 IP 地址的配置生效可能存在分钟级延迟。

常见问题

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

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

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

image

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

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

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

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

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

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