Web应用防火墙(WAF)提供CNAME接入和透明接入两种方式,使您的网站流量可以受到WAF的保护。如果您的源站服务器为ECS服务器或者部署在阿里云公网SLB、ALB上,那么除了使用CNAME接入,您还可以选择云原生的透明接入方式。

在透明接入模式下,无需修改域名DNS解析、设置源站保护,同时无需改变服务器获取真实源IP的方式,保护您的Web业务正常运转。

透明接入支持接入ALB实例、七层SLB实例、四层SLB实例、ECS实例上的Web流量。

前提条件

前提条件类型 描述 补充说明
WAF实例版本 已开通WAF包年包月服务的高级版、企业版、旗舰版,或者WAF按量计费服务。 详细版本介绍,请参见套餐和版本说明
WAF实例地域 已开通中国内地地域的WAF实例。 目前,仅中国内地的WAF实例支持透明接入,海外地区的WAF实例暂不支持透明接入。
云服务实例的类型 已创建IPv4公网SLB实例。 透明接入不支持私网SLB和IPv6版本的公网SLB实例。
SLB配置 需要透明接入的SLB实例拥有公网IP,且端口未开启双向认证。 如果您使用了私网SLB+EIP,也支持使用透明接入。
SLB和ECS地域 您的公网SLB实例和ECS实例地域必须位于西南1(成都)、华北2(北京)、华东1(杭州)、华东2(上海)、华南1(深圳)。 由于历史网络架构的原因,部分公网SLB不支持透明接入。
具体开通咨询,请通过下面钉钉服务群二维码联系我们。 二维码
域名备案 需要防护的网站域名如果托管在中国内地(大陆)的服务器上,该域名需要完成ICP备案。
(可选)证书状态
注意 如果您要接入七层SLB实例上的Web流量,必须满足该前提条件。接入四层SLB实例或ECS源站上Web流量时,无需满足该前提条件。
由于透明接入WAF的证书同步机制的限制,要求您在七层SLB实例端口中配置的证书必须从 阿里云签发证书列表中选择。因此,执行透明接入前,您必须对透明接入配置端口上使用的证书,完成以下操作:
  1. 必须先将该证书上传到SSL证书控制台进行统一管理,或直接从SSL证书控制台购买和申请证书。
  2. 证书上传到SSL证书控制台或在SSL证书控制台完成证书申请后,您需要在负载均衡SLB控制台为该透明接入配置的端口配置监听时,选择该证书并完成配置。
说明 以上操作顺序不可颠倒,否则会导致您无法在WAF控制台透明接入模块的 七层SLB类型列表中看到该端口。
如果您先在SLB中完成证书配置,而没有先在SSL证书控制台上传证书或申请证书,SLB无法将该证书自动同步到WAF中,您将无法在WAF控制台透明接入模块的七层SLB类型列表中看到该端口,最终导致您无法完成网站接入。相关内容,请参见上传证书
下图展示了在 负载均衡SLB控制台为该端口配置监听时,如何正确选择该证书: SLB端口证书

功能优势

透明接入模式具有以下优势:
  • 无需修改DNS解析,无需设置源站保护,防护更简单、安全。
  • 全透明代理防护,无需回源配置,源站即可直接获取访问者的真实IP。
  • 联动阿里云SSL证书服务对证书(支持非阿里云证书)进行统一管理,运维更便捷。
  • 支持任意非标业务端口接入WAF防护(旗舰版适用)。

使用限制

限制项类型 描述
引流端口配置的数量 不同版本的WAF实例支持添加的引流端口配置的数量如下:
  • 高级版:不超过20条。
  • 企业版:不超过50条。
  • 旗舰版:不超过100条。
  • 按量计费版本:不超过10条。

透明接入对指定源站服务器的具体端口生效,即您可以针对某个源站服务器(具有公网IP)的具体端口(例如80、443等)开启透明接入。开启透明接入后,该服务器端口的流量被引流到WAF进行防护。

例如,假设您同时为SLB实例A的80、443端口,以及另一个SLB实例B的80、443端口开启透明接入,则您一共添加了4个引流端口配置(SLB实例A的80端口、SLB实例A的443端口、SLB实例B的80端口、SLB实例B的443端口)。

业务同时接入DDoS高防和WAF 如果您的业务需要同时接入DDoS高防和WAF,则只有在业务通过域名接入方式(即七层接入模式)接入DDoS高防时,该业务才支持通过透明接入方式接入WAF。

如果业务通过端口接入方式(即四层接入模式)接入DDoS高防,则该业务暂不支持通过透明接入方式接入WAF。针对这种情况,推荐您使用CNAME接入方式,将该业务接入WAF进行防护。更多信息,请参见网站接入(CNAME接入)

添加域名

警告 域名首次透明接入WAF时,可能会导致Web业务出现秒级闪断。您可以在 总览页面,查看到当前业务QPS有明显下降。
  1. 登录Web应用防火墙控制台
  2. 在左侧导航栏,选择资产中心 > 网站接入
  3. 可选:在顶部菜单栏左上角,选择中国内地地域。
    目前,仅中国内地WAF实例支持透明接入。如果WAF控制台已默认展示中国内地地域,则无需切换地域。
  4. 域名列表页签,单击网站接入
  5. 添加域名页面,选择接入模式透明接入透明接入
  6. 可选:完成云资源访问授权。
    首次执行透明接入时,您需要按照页面提示授权WAF访问相关的云服务;如果您已经完成过授权,则不会出现相关提示,请跳过该步骤。更多信息,请参见 授权WAF访问云资源
  7. 添加域名信息模块,完成域名和源站服务端口等配置。
    1. 域名文本框,输入您的网站域名(也支持填写源站服务器IP地址)。
      注意 透明接入模式下,此处设置的域名仅用于(完成网站接入后)在域名维度设置网站防护策略、查看防护总览及安全报表。此处设置的域名与实际接入WAF防护的业务流量无必然联系,只有在下一步端口配置中开启端口,才表示将对应源站服务端口的流量接入WAF防护。
      域名必须已经完成备案,且不允许重复添加域名。支持的域名类型包括:
      • 通配符域名(例如,*.aliyun.com)。使用通配符域名后,WAF将自动匹配该通配符域名对应的所有子域名。
      • 精确域名(例如,www.aliyun.com)。如果同时存在通配符域名和精确域名配置,则精确域名的转发规则和防护策略优先生效。
    2. 设置要开启透明接入(即需要将其流量引流到WAF进行防护)的源站服务端口。ALB类型
      目前支持对阿里云ALB实例、SLB实例(七层监听)、SLB实例(四层监听)、ECS实例类型的源站服务端口开启透明接入。不同类型的源站服务端口开启透明接入的设置方法有差异,具体请单击以下页签,查看相关说明。如果您需要了解更详细的说明,请参见 引流端口配置

      推荐场景 :您部署了应用型负载均衡(ALB)实例作为Web服务的入口,需要为ALB实例监听端口上的流量开启WAF防护。

      实例列表说明 :实例列表展示了负载均衡服务中已创建的公网ALB实例, 端口号 列展示了ALB实例下已创建的HTTP或HTTPS监听对应的监听端口。

      为监听端口开启WAF防护的方法

      负载均衡控制台 ,为ALB实例创建HTTP或HTTPS监听,并在监听配置中选中 为监听开启WAF安全防护 。如果您已经创建过HTTP或HTTPS监听,可以通过修改监听配置,为监听开启或关闭WAF安全防护

      在WAF控制台透明接入模块的 ALB类型 实例列表中,您只可以查看已创建的HTTP或HTTPS监听是否开启了WAF防护,不支持修改。如需修改,必须在负载均衡控制台操作。

      推荐场景 :您部署了负载均衡(SLB)实例作为Web服务的入口,并且已创建HTTP或HTTPS七层协议监听,需要为SLB实例监听端口上的流量开启WAF防护。

      实例列表说明 :实例列表展示了负载均衡服务中已创建的公网SLB实例, 端口号 列展示了SLB实例下已创建的HTTP或HTTPS监听对应的监听端口。

      为监听端口开启WAF防护的方法 :

      在WAF控制台透明接入模块的 七层SLB类型 实例列表中,从 端口号 列(即已有的HTTP或HTTPS监听端口范围中)选中端口。

      选中端口表示通过该端口访问网站的流量会经过WAF,并受到WAF的检测和防护。对于未选中的端口,通过该端口访问网站的流量直接从客户端发送到源站服务器,将不会经过WAF。

      如果某个端口同时监听多个网站域名的流量,则选中端口后,所有网站域名流量默认都开启了WAF防护。目前暂不支持单独为某个网站域名的流量开启防护。

      如果实例列表的 端口号 列提示 暂无应用端口 ,表示该实例下尚未创建HTTP或HTTPS监听。您需要先在 负载均衡控制台 为该实例创建HTTP或HTTPS监听,然后才可以在WAF控制台为端口流量开启WAF防护。

      推荐场景 :您部署了负载均衡(SLB)实例作为Web服务的入口,并且已创建TCP四层协议监听,需要为SLB实例监听端口上的流量开启WAF防护。

      该场景下,您必须先将已开启的监听端口添加到WAF,然后可以为已添加到WAF的端口开启防护。

      实例列表说明 :实例列表展示了负载均衡服务中已创建的公网SLB实例, 端口号 列展示了已经添加到WAF控制台的TCP监听端口。

      步骤1:将已有的TCP监听端口添加到WAF
      您只有已经在 负载均衡控制台 为SLB实例创建了TCP协议监听,然后才能在WAF控制台将已有的TCP监听端口添加进来。
      1. 在WAF控制台透明接入模块的 四层SLB类型 实例列表中,单击 端口号 列的 添加
      2. 添加端口 对话框,选择一个已开启TCP监听的 端口号 和该端口关联的应用协议类型(HTTP、HTTPS)。
      3. (可选)如果是HTTP端口,无需执行该步骤。如果是HTTPS端口,按照页面提示,上传对应的默认证书和扩展证书(最多可以添加3个)。

        证书说明如下:

        • 默认证书 :表示服务器在收到客户端的HTTPS请求时,默认返回给客户端的证书。如果您的服务器只使用了一个SSL证书,则只需要上传默认证书。
        • 扩展证书 :表示服务器在收到客户端的HTTPS请求时,通过SNI字段匹配后(检查请求中SNI扩展包含的域名是否和扩展证书的域名匹配),返回给客户端的匹配证书。如果客户端发送的SNI和扩展证书不匹配,则使用默认证书。

          SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。它的工作原理是:在与服务器建立SSL连接之前,先发送要访问站点的域名(Hostname),这样服务器会根据这个域名返回一个合适的证书。

        您可以从以下上传方式中选择一种方式上传证书:

        • 手动上传 :需要手动填写证书名称、证书文件内容、证书私钥内容。
        • 选择已有证书(推荐) :只需从SSL证书服务的已有证书列表,选择透明接入时要使用的证书。如果您的证书不在SSL证书服务的证书列表,您可以单击 云盾-证书服务 ,先将您的证书上传到SSL证书服务进行统一管理,再选择已有证书。

      步骤2:为已添加到WAF的端口开启防护

      在WAF控制台透明接入模块的 四层SLB类型 实例列表中,从 端口号 列已添加的端口范围中选中 端口

      选中端口表示通过该端口访问网站的流量会经过WAF,并受到WAF的检测和防护。对于未选中的端口,通过该端口访问网站的流量直接从客户端发送到源站服务器,将不会经过WAF。

      如果某个端口同时监听多个网站域名的流量,则选中端口后,所有网站域名流量默认都开启了WAF防护。目前暂不支持单独为某个网站域名的流量开启防护。

      推荐场景 :您直接使用ECS实例作为Web服务的入口,需要为ECS实例上的HTTP或HTTPS流量开启WAF防护。

      该场景下,您必须先在WAF添加要防护的端口,然后可以为已添加到WAF的端口开启防护。

      实例列表说明 :实例列表展示了云服务器ECS服务中已创建的具有公网IP的ECS实例, 端口号 列展示了已经添加到WAF的端口。

      步骤1:将要防护的端口添加到WAF
      1. 在WAF控制台透明接入模块的 ECS类型 实例列表中,单击 端口号 列的 添加
      2. 添加端口 对话框,将 端口号 设置为源站ECS实例上使用的HTTP或HTTPS应用端口,并选择对应的协议类型(HTTP、HTTPS)。
      3. (可选)如果是HTTP端口,无需执行该步骤。如果是HTTPS端口,按照页面提示,上传对应的默认证书和扩展证书(最多可以添加3个)。

        证书说明如下:

        • 默认证书 表示服务器在收到客户端的HTTPS请求时,默认返回给客户端的证书。如果您的服务器只使用了一个SSL证书,则只需要上传默认证书。
        • 扩展证书 表示服务器在收到客户端的HTTPS请求时,通过SNI字段匹配后(检查请求中SNI扩展包含的域名是否和扩展证书的域名匹配),返回给客户端的匹配证书。如果客户端发送的SNI和扩展证书不匹配,则使用默认证书。

          SNI(Server Name Indication)是为了解决一个服务器使用多个域名和证书的SSL/TLS扩展。它的工作原理是:在与服务器建立SSL连接之前,先发送要访问站点的域名(Hostname),这样服务器会根据这个域名返回一个合适的证书。

        您可以从以下上传方式中选择一种方式上传证书:

        • 手动上传 :需要手动填写证书名称、证书文件内容、证书私钥内容。
        • 选择已有证书(推荐) :只需从SSL证书服务的已有证书列表,选择透明接入时要使用的证书。如果您的证书不在SSL证书服务的证书列表,您可以单击 云盾-证书服务 ,先将您的证书上传到SSL证书服务进行统一管理,再选择已有证书。

      步骤2:为已添加到WAF的端口开启防护

      在WAF控制台透明接入模块的 ECS类型 实例列表中,从 端口号 列已添加的端口范围中选中 端口

      选中端口表示通过该端口访问网站的流量会经过WAF,并受到WAF的检测和防护。对于未选中的端口,通过该端口访问网站的流量直接从客户端发送到源站服务器,将不会经过WAF。

      如果某个端口同时监听多个网站域名的流量,则选中端口后,所有网站域名流量默认都开启了WAF防护。目前暂不支持单独为某个网站域名的流量开启防护。
    3. 选择WAF前是否有七层代理(高防/CDN等)
      如果在WAF前有配置其他七层代理服务(例如DDoS高防、CDN)进行业务转发,请务必选择 ,否则,WAF将无法获取访问网站的客户端真实IP。如果在WAF前未配置其他七层代理服务进行业务转发,请选择
    4. 可选:设置是否开启流量标记
      如果您需要对经过WAF的请求进行标记(用于区分没有经过WAF的请求,便于后端服务统计分析),可以开启该功能,并设置一个自定义的HTTP头部标记字段,包含 Header字段名称Header字段值
      例如,您可以使用 ALIWAF-TAG: Yes标记经过WAF的请求,其中, ALIWAF-TAG为字段名称, Yes为字段值。
      注意 请不要填写标准的HTTP头部字段(例如User-Agent等),否则会导致标准头部字段内容被自定义的字段值覆盖。
    5. 资源组列表中选择域名所属的资源组。
      说明 您可以使用资源管理服务创建资源组,根据业务部门、项目等维度对云资源进行分组管理。更多信息,请参见 创建资源组
    6. 单击下一步
  8. 检查并确认模块,检查已配置的透明接入信息,并单击下一步
  9. 添加完成模块,单击完成,返回网站列表
    域名添加完成后,您可以在 域名列表中查看已添加域名及源站信息,并可以根据需要编辑、删除域名配置。 域名列表

    WAF默认对您在添加域名信息中开启的源站服务端口上的流量进行检测,并将处理后的正常请求返回到源站服务器。您可以根据业务实际需要,在服务器列表页签,修改源站服务端口的流量防护状态。相关操作,请参见查看服务器列表信息

查看服务器列表信息

完成域名添加后,您可以查看源站服务器的详细防护信息,以及在需要紧急容灾的情况下强制关闭引流或删除引流端口。

  1. 登录Web应用防火墙控制台
  2. 在左侧导航栏,选择资产中心 > 网站接入
  3. 可选:在顶部菜单栏左上角,选择中国内地地域。
    目前,仅中国内地WAF实例支持透明接入。如果WAF控制台已默认展示中国内地地域,则无需切换地域。
  4. 网站接入页面,单击服务器列表页签。
  5. 服务器列表页签,查看已接入WAF防护的源站服务器资产(包含ALB实例、SLB实例、ECS实例)。
    您可以单击实例前的 扩展图标,展开查看该实例下已添加到WAF防护的端口。 防护状态
    Web流量状态说明:
    • 端口号后的Web流量状态(图示①)表示该端口的流量目前是否经过WAF防护。取值说明:
      • 开启:表示已开启防护。
      • 关闭:表示未开启防护。

      您可以根据需要修改端口的防护状态,相关操作,请参见下一步

    • 实例后的Web流量状态(图示②)表示该实例下端口接入WAF防护的整体状态。取值说明:
      • 未防护:表示该实例下端口都已关闭防护。
      • 部分防护:表示该实例下有部分端口已开启防护。
      • 运行中:表示该实例下端口都已开启防护。
  6. 可选:修改端口引流状态及删除端口。
    • 关闭引流开启引流(适用于所有类型的服务器资产)
      • 对于已开启WAF防护的端口,如果您暂时不需要WAF对端口流量进行防护,可以单击端口操作列下的关闭引流,并在提示对话框中单击确定关闭引流

        关闭端口引流后,该服务器端口的流量将不会经过WAF防护。

      • 对于已关闭WAF防护的端口,如果您需要WAF重新对端口流量进行防护,可以单击端口操作列下的开启引流,并在提示对话框中单击确定删除
    • 删除(仅适用于四层SLB类型、ECS类型的服务器资产)

      如果您不再需要WAF对某个端口的流量进行防护,可以单击端口操作列下的删除,并在提示对话框中单击确定

      删除引流

      后续如果您需要重新为该端口开启WAF防护,必须重新添加端口。

后续步骤

完成接入流程后,网站访问流量将经过WAF并受到WAF的防护。WAF包含多种防护检测模块,帮助网站防御不同类型的安全威胁,其中规则防护引擎CC安全防护模块默认开启,分别用于防御常见的Web应用攻击(例如SQL注入、XSS跨站、webshell上传等)和CC攻击,其他防护模块需要您手动开启并配置具体防护规则。更多信息,请参见网站防护配置概述

相关文档

CNAME接入

上传已有证书到SSL证书控制台