网站接入

Web应用防火墙(Web Application Firewall,简称WAF)支持对部署在混合云的域名进行防护。本文介绍如何将混合云环境下测试部署的域名接入WAF防护。

背景信息

Web应用防火墙混合云解决方案,支持在公共云、私有云、线下IDC或者机房构成的多云、跨云和混合云环境中提供统一的Web应用防护管理,打造共享和独享相结合、本地和云端相互融合的弹性、高效的一体化Web应用安全防御体系。接入WAF后,访问受防护域名的流量支持公网和私网回源(即源站服务器部署在公网或私网中)。

前提条件

  • 已购买WAF实例,且当前实例支持接入的域名数量未超过限制。

    说明

    支持接入的域名数量由WAF的实例规格和扩展域名包数量决定。更多信息,请参见域名扩展包

  • 如果您购买的是中国内地的WAF实例,您必须先对域名完成ICP备案,否则您的网站将无法接入WAF防护。接入WAF操作时,可能会报错并提示您完成备案。更多信息,请参见阿里云备案服务

  • 已完成了本地WAF防护节点集群的部署,且本地WAF防护节点能与公网互通。更多信息,请参见部署混合云WAF防护集群

使用限制

使用混合云WAF防护节点防护内网业务时,暂不支持网段为172.16.0.0/16的客户端访问。

混合云网站接入

  1. 登录Web应用防火墙控制台,在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。

  2. 在左侧导航栏,选择资产中心 > 网站接入

  3. 域名列表页签,单击网站接入

    说明

    进入添加域名页面后,接入模式默认为Cname接入

  4. 填写网站信息,单击下一步

    配置项

    说明

    域名

    填写要防护的域名,包括精确域名(例如www.aliyundoc.com)或通配符域名(例如*.aliyundoc.com)。仅支持填写一个域名。

    如果您是首次添加该域名,需要验证是否拥有该域名的归属权。通过后,才能添加域名。

    如何验证域名归属权

    为确认您对域名的所有权,需完成归属权验证。支持以下两种验证方式,任选其一即可:

    • DNS解析验证:在您的域名解析服务商处,手动添加WAF提供的TXT类型解析记录。推荐使用此方式。

    • 文件验证:将WAF提供的验证文件上传至域名源站服务器的指定根目录,需拥有源站服务器操作权限。

    DNS解析验证

    1. 在验证提示区域,单击方法1:DNS解析验证页签。

    2. 根据WAF控制台提供的记录类型主机记录记录值,在您的域名解析服务商添加TXT记录。

      若您使用阿里云云解析DNS,请参考以下步骤操作;若使用其他域名解析服务商,请在其系统中进行类似配置。

      1. 登录云解析DNS控制台

      2. 公网权威解析页面,找到目标主域名,并单击右侧的解析设置

      3. 单击添加记录,填写记录类型主机记录记录值后,单击确定。其余未提及参数保持默认即可。

        添加完成后,您可以在记录列表中查看已添加的记录。该记录默认生效(状态启用)。

    3. 等待TXT解析生效。域名首次配置TXT解析记录后将实时生效,但修改TXT解析记录通常会在10分钟后生效(生效时间取决于域名DNS解析配置的TTL时长,默认为10分钟)。

    4. 返回WAF控制台,单击“点击验证”。

      • 显示验证成功:域名归属权验证完成。

      • 显示验证失败:请按以下步骤排查:

        1. 检查TXT记录:确保添加的主机记录和记录值与WAF控制台提供的信息完全一致。如有差异,请删除错误记录并重新添加,然后重新验证。

        2. 等待DNS生效:DNS记录配置后可能不会立即生效,生效时间取决于您域名服务器中设置的TTL缓存时间。建议等待10分钟后重新验证。

        3. 更换验证方式:如多次尝试仍无法通过验证,建议使用"方法2:文件验证"。

    文件验证

    1. 在验证提示区域,单击方法2:文件验证页签。

    2. 单击下载验证文件链接(图示①),下载验证文件。image..png

      重要
      • 验证文件仅在下载后的3天内有效,如果您逾期未完成文件验证,则需要重新下载。

      • 请勿对验证文件执行任何操作,例如打开、编辑、重命名等。

      • WAF将根据选择的协议类型访问您的源站服务器,请确保源站服务器放行了对应的安全组或防火墙规则:

        • 选择HTTP时,需要放行入方向TCP协议80端口,访问来源为0.0.0.0/0。

        • 选择HTTPS时,需要放行入方向TCP协议443端口,访问来源为0.0.0.0/0。

    3. 手动将验证文件上传到控制台提示的域名源站服务器(例如您的ECS、OSS、CVM、COS、EC2等)根目录(图示②)。

      说明

      如果您添加的域名为通配符域名,例如*.aliyun.com,那么您需要将验证文档上传到aliyun.com的根目录。

      上传完成后,你可以参考如下方法,查看验证文档是否上传成功。

      1. Windows系统

        在指定根目录,查看验证文件。image..png

      2. Linux系统

        执行如下命令,查看验证文档。image..png

    4. 返回WAF控制台,单击“点击验证”。

      • 显示验证成功:域名归属权验证完成。

      • 显示验证失败:请根据报错信息进行排查:

    说明
    • 通配符域名不仅可以匹配所有同级别的子域名,还能匹配不同级别的子域名。例如,*.aliyundoc.com能够匹配www.aliyundoc.comexample.aliyundoc.comwww.example.aliyundoc.com等多级域名。

    • 二级通配符域名能够匹配对应的二级主域名,例如,*.aliyundoc.com能够匹配aliyundoc.com

    • 三级通配符域名不能匹配对应的三级主域名,例如,*.example.aliyundoc.com不能匹配example.aliyundoc.com

    • 如果防护对象中同时存在精确域名和能够匹配该精确域名的通配符域名,精确域名的防护规则和转发配置优先生效。

    防护资源

    选择需要WAF防护的资源类型,此处您需要选择混合云集群

    协议类型

    选择网站使用的协议类型。可选项:

    • HTTP

    • HTTPS

      重要

      如果网站支持HTTPS加密认证,请选择HTTPS协议并在添加域名后上传域名的证书和私钥文件。更多信息,请参见上传HTTPS证书

      选中HTTPS后,还支持启用以下功能:

      • (高级设置)开启HTTPS的强制跳转

        HTTPS强制跳转表示将客户端的HTTP请求强制转换为HTTPS请求。开启该功能后,客户端使用HTTPS请求,通过443端口访问WAF,WAF转发的请求也会通过443端口访问源站。如果您需要强制客户端使用HTTPS请求访问网站以提高安全性,则开启该功能。

        重要
        • 只有在未选中HTTP协议时,支持开启该设置。

        • 请确保网站支持HTTPS业务再开启该设置。开启该设置后,部分浏览器将被强制设置为使用HTTPS请求访问网站。

      • (高级设置)开启HTTP回源

        HTTP回源表示WAF使用HTTP协议向源站转发回源请求,默认回源端口是80。开启该功能后,无论客户端访问WAF的端口是80443,WAF转发的请求都会通过80端口访问源站。开启HTTP回源可以在无需改动源站服务器的前提下,通过WAF实现HTTPS访问,帮助您降低网站的负载损耗。

        重要

        如果您的网站不支持HTTPS回源,请务必开启该设置。

      • (高级设置)开启HTTPS的强制跳转开启HTTP回源均不开启

        如果客户端通过80端口访问WAF,则WAF转发的请求也会通过80端口访问源站。如果客户端通过443端口访问WAF,则WAF转发的请求也会通过443端口访问源站。

      • 启用回源SNI

        回源SNI表示WAF转发客户端请求到源站服务器,在与源站进行TLS握手时,通过SNI扩展字段(Server Name Indicator extension)指定要访问的主机,并与该主机建立HTTPS连接。如果您的源站服务器有多个虚拟主机(对应不同域名),则需要开启该设置。

        选中启用回源SNI后,您可以进一步设置SNI扩展字段的值。可选项:

        • 与实际请求host保持一致(默认):表示WAF回源请求中SNI扩展字段的值与请求头中Host字段的值保持一致。

          例如,您配置的网站域名为*.aliyundoc.com,客户端实际请求了www.aliyundoc.com(即Host字段值),则WAF回源请求中SNI扩展字段的值为www.aliyundoc.com

        • 自定义:表示您自定义WAF回源请求中SNI扩展字段的值。

          一般情况无需自定义SNI,除非您的业务有特殊配置要求,希望WAF在回源请求中使用与实际请求Host不一致的SNI(即此处设置的自定义SNI)。

    • HTTP2(必须先选中HTTPS,才支持该选项)

      如果您的网站支持HTTP 2.0协议,则您需要开启该设置。HTTP 2.0协议的端口与HTTPS协议端口保持一致,开启该设置后,您只需设置HTTPS端口即可。更多信息,请参见HTTP 2.0业务接入WAF防护是否会对源站有影响?

      说明

      只有企业版、旗舰版、独享版的WAF实例支持开启HTTP2

    节点设置

    选择防护节点组名称

    如果您的某个网站部署在了多个防护节点中,您可以单击节点设置右侧的增加防护节点,将多个防护节点同时接入WAF的防护。

    服务器地址

    设置网站的源站服务器地址,支持IP地址格式和域名(如CNAME)格式。完成接入后,WAF将过滤后的访问请求转发到此处设置的服务器地址。设置说明:

    • IP地址格式:填写源站的公网IP地址。需要为公网可达的IP地址。

      支持填写多个IP地址,每填写一个IP地址,按回车进行确认。最多支持添加20个源站IP。

      说明

      如果设置了多个IP地址,WAF将在这些地址间自动进行健康检查和负载均衡。

      非中国内地WAF实例仅支持配置IPv4地址。中国内地WAF实例支持如下配置方式:

      • 同时配置IPv4IPv6地址

        如果开启IPv4/IPv6回源协议跟随,则来自IPv6地址的请求将被转发到IPv6源站,来自IPv4地址的请求将被转发到IPv4源站。如果不开启IPv4/IPv6回源协议跟随,则不做区分,执行混合回源(即IPv4IPv6请求都有可能回源到IPv4IPv6源站)。

        重要

        使用IPv6回源时,您必须确保网站接入列表中域名的IPv6状态为已开启。更多信息,请参见开启IPv6防护

      • 只配置IPv4地址

        IPv4IPv6请求都将通过IPv4回源,即WAF将请求转发到您设置的IPv4源站地址。

      • 只配置IPv6地址

        IPv4IPv6请求都将通过IPv6回源,即WAF将请求转发到您设置的IPv6源站地址。

      服务器IP地址填写说明

      • 如果源站在阿里云,一般填写ECS的公网IP地址。

      • ECS前面有SLB时,则填写SLB的公网IP地址。

      • 当源站在阿里云外的IDC机房或者其他云服务商时,建议您PING域名查询域名的公网IP地址,再填写域名的公网IP地址。

      • 填写的IP没有在透明接入模式下开启引流。

    • 域名(如CNAME)格式:填写服务器回源域名,例如对象存储OSSCNAME等。

      使用域名格式时,支持IPv4回源,即WAF会将客户端请求转发到回源域名解析出来的IPv4地址。

      重要
      • 服务器回源域名不应和要防护的网站域名相同。

      • 如果您的源站服务器地址为OSS域名,则完成网站接入后,您必须前往OSS控制台中为该OSS域名绑定自定义域名。具体操作,请参见绑定自定义域名

    服务器端口

    添加网站使用的转发服务端口。

    说明

    目前仅支持由阿里云技术支持团队配置。

    端口必须在混合云集群已开启的端口范围内。混合云集群默认开启80、8080、443、8443端口,您在创建混合云集群时,可以自定义设置要开启的端口范围。相关操作,请参见混合云集群基本信息配置

    WAF通过此处添加的端口为网站提供流量的接入与转发服务,网站域名的业务流量只通过已添加的服务端口进行转发。对于未添加的端口,WAF不会转发任何该端口的访问请求流量到源站服务器,因此这些端口的启用不会对源站服务器造成任何安全威胁。

    重要

    网站信息中设置的协议类型服务器端口必须是源站服务器提供Web业务的协议和端口,不支持端口转换。例如,源站服务器提供Web服务的是80端口HTTP协议,域名配置也必须是一致的,设置其他端口则无法正常转发。

    默认端口:

    • 协议类型选择HTTP协议后,服务器端口默认设置为HTTP 80

    • 协议类型选择HTTPS协议后,服务器端口默认设置为HTTPS 443

      说明

      HTTP2.0协议的端口与HTTPS协议的端口保持一致。

    自定义端口:单击自定义,并根据协议类型(HTTPHTTPS)自定义对应的端口,多个端口之间使用英文逗号(,)分隔。

    单击查看可选范围可以查询所有支持使用的端口。

    负载均衡算法

    设置了多个源站服务器地址时,选择多源站服务器间的负载均衡算法。可选项:

    • IP hash:将来自同一个客户端的请求经过负载均衡转发到同一个源站,适用于需要保持用户会话一致性的场景,可能存在负载不均衡的情况。

    • 轮询(默认):将客户端的请求依次按序从源站列表中选择源站进行回源,适用于多源站且对源站负载均匀要求较高的场景。

    • Least time:通过智能DNS解析能力和升级后的Least-time回源算法,保证业务流量从接入防护节点到转发回源站服务器整个链路的时延最短。

      说明

      Least time仅在开通智能负载均衡后支持使用。更多信息,请参见智能负载均衡

    设置生效后,WAF将根据设置的负载均衡算法向多个源站地址分发回源请求,实现负载均衡。

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

    • 无其他代理服务,选择(默认)

      表示WAF收到的业务请求由客户端直接发起,而非通过其他代理服务转发。该场景下,WAF会直接获取与WAF建立连接的IP(来自请求的REMOTE_ADDR字段)作为客户端IP。

    • 有其他代理服务,选择

      表示WAF收到的业务请求来自其他七层代理服务转发,而非客户端直接发起。为保证WAF可以获取真实的客户端IP进行安全分析,您需要进一步设置客户端IP判定方式

      可选项:

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

        WAF默认优先读取请求Header字段X-Real-IP作为客户端IP,如果X-Real-IP不存在,则读取字段X-Forwarded-For(XFF)中的第一个IP地址作为客户端IP。

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

        如果您的网站业务已通过其他代理服务的设置,规定将客户端源IP放置在某个自定义的Header字段(例如,X-Real-IP、X-Client-IP),则您需要选择该选项,并在指定Header字段框中输入对应的Header字段。

        说明

        推荐您在业务中使用自定义Header存放客户端IP,并在WAF中配置对应Header字段。该方式可以避免攻击者伪造XFF字段,躲避WAF的检测规则,提高业务的安全性。

        支持输入多个Header字段。每输入完一个Header字段,按回车进行确认。如果设置了多个Header,WAF将按顺序尝试读取客户端IP。如果第一个Header不存在,则读取第二个,以此类推。如果所有指定Header都不存在,优先尝试读取X-Real-IP字段,若仍无结果则采用X-Forwarded-For(XFF)头部中的首个IP地址作为客户端IP。

    启用流量标记

    启用流量标记

    启用流量标记可以帮助源站区分经过WAF的请求,获取客户真实源IP或源端口。

    您可以配置如下类型的标记字段:

    • 自定义Header

      通过配置HeaderHeader,使WAF在回源请求中添加该Header信息,标记经过WAF的请求(区分没有经过WAF的请求,便于您的后端服务统计分析)。

      例如,您可以使用ALIWAF-TAG: Yes标记经过WAF的请求,其中,ALIWAF-TAGHeader名,YesHeader值。

    • 客户端真实源IP

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

    • 客户端真实源端口

      通过配置真实客户端源端口所在的头部字段名,WAF可记录该头部字段并将该头部字段传递回源站。

    重要

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

    单击新增标记,可以增加标记字段。最多支持设置5个标记字段。

    资源组

    从资源组列表中选择该域名所属资源组。

    说明

    您可以使用资源管理服务创建资源组,根据业务部门、项目等维度对云资源进行分组管理。更多信息,请参见创建资源组

  5. 将本机host绑定到本地WAF前的负载均衡服务器上,并测试流量是否正常通过WAF。

    说明

    目前,暂时仅支持由阿里云技术人员操作。

  6. 修改需要接入域名的DNS解析到本地负载均衡服务器。

  7. 单击完成,返回网站列表

    此时,您已成功将该域名接入混合云WAF的防护。