Web应用防火墙WAF(Web Application Firewall)支持对部署在混合云的域名进行防护。本文介绍如何将混合云环境下测试部署的域名接入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. 域名列表页签下,单击网站接入
  4. 选择接入模式Cname接入
  5. 填写需要WAF防护的网站的信息。
    填写下表描述的网站信息并单击下一步
    参数 说明
    域名
    防护资源 选择需要WAF防护的资源类型,此处您需要选择混合云集群
    协议类型 选择网站使用的网络协议类型。可选项:
    • HTTP
    • HTTPS:如果网站支持HTTPS加密认证,请选择HTTPS协议并在添加域名后上传域名的证书和私钥文件。更多信息,请参见上传HTTPS证书
      选中HTTPS协议后,还支持修改以下设置:选中HTTPS
      • 开启HTTP2:如果您的网站支持HTTP 2.0协议,则您需要开启该设置。HTTP 2.0协议的端口与HTTPS协议端口保持一致,开启该设置后,您只需设置HTTPS端口即可。
        注意 只有企业版及以上规格的WAF实例支持开启HTTP2
      • 开启高级设置。具体包括:
        • 开启HTTPS的强制跳转:HTTPS强制跳转表示将客户端的HTTP请求强制转换为HTTPS请求,默认跳转到443端口。如果您需要强制客户端使用HTTPS请求访问网站以提高安全性,则可以开启该设置。
          注意
          • 只有在未选中HTTP协议时,支持开启该设置。
          • 请确保网站支持HTTPS业务再开启该设置。开启该设置后,部分浏览器将被强制设置为使用HTTPS请求访问网站。
        • 开启HTTP回源:HTTP回源表示WAF使用HTTP协议向源站转发回源请求,默认回源端口是80。开启HTTP回源可以在无需改动源站服务器的前提下,通过WAF实现HTTPS访问,帮助您降低网站的负载损耗。
          注意 如果您的网站不支持HTTPS回源,请务必开启该设置。
      • 启用回源SNI。回源SNI表示WAF转发客户端请求到源站服务器,在与源站进行TLS握手时,通过SNI扩展字段(Server Name Indicator extension)指定要访问的主机,并与该主机建立HTTPS连接。如果您的源站服务器有多个虚拟主机(对应不同域名),则您需要开启该设置。选中启用回源SNI后,您可以进一步设置SNI扩展字段的值。可选项:
        • 与实际请求host保持一致(默认):表示WAF回源请求中SNI扩展字段的值与请求头中Host字段的值保持一致。例如,您配置的网站域名为*.example.com,客户端实际请求了www.example.com(即Host字段值),则WAF回源请求中SNI扩展字段的值为www.example.com
        • 自定义:表示您自定义WAF回源请求中SNI扩展字段的值。一般情况无需自定义SNI,除非您的业务有特殊配置要求,希望WAF在回源请求中使用与实际请求Host不一致的SNI(即此处设置的自定义SNI)。
    节点设置 选择防护节点组名称

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

    服务器地址
    服务器端口 添加网站使用的转发服务端口。
    说明 目前仅支持由阿里云技术支持团队配置。

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

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

    注意 网站信息中设置的协议类型服务器端口必须是源站服务器提供Web业务的协议和端口,不支持端口转换。例如,源站服务器提供Web服务的是80端口HTTP协议,域名配置也必须是一致的,设置其他端口则无法正常转发。
    默认端口:
    • 协议类型选择HTTP协议后,服务器端口默认设置为HTTP 80
    • 协议类型选择HTTPS协议后,服务器端口默认设置为HTTPS 443
      说明 HTTP2.0协议的端口与HTTPS协议的端口保持一致。
    自定义端口:单击自定义,并根据协议类型(HTTPHTTPS)自定义对应的端口,多个端口之间使用英文逗号(,)分隔。自定义端口

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

    负载均衡算法 设置了多个源站服务器地址时,选择多源站服务器间的负载均衡算法。可选项:
    • IP hash(默认):将某个IP的请求定向到同一个源站服务器。
      说明 使用IP hash时,如果源站服务器的IP地址不够分散,可能会出现负载不均的情况。
    • 轮询:将所有请求轮流分配给源站服务器。
    • Least time:通过智能DNS解析能力和升级后的Least-time回源算法,保证业务流量从接入防护节点到转发回源站服务器整个链路的时延最短。
      说明 Least time仅在开通智能负载均衡后支持使用。更多信息,请参见智能负载均衡

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

    WAF前是否有七层代理(高防/CDN等) 选择网站业务在接入WAF前是否开启了其他七层代理服务(例如DDoS高防、CDN等)。可选项:
    • :表示WAF收到的业务请求来自发起请求的客户端。WAF直接获取与WAF建立连接的IP(来自REMOTE_ADDR字段)作为客户端IP。
    • :表示WAF收到的业务请求来自其他七层代理服务转发,而非直接来自发起请求的客户端。为了保证WAF可以获取真实的客户端IP进行安全分析,您需要进一步设置客户端IP判定方式

      WAF默认读取请求Header字段X-Forwarded-For(XFF)中的第一个IP地址作为客户端IP。

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

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

      支持输入多个Header字段。每输入完一个Header字段,需要按半角逗号(,)确认。设置了多个Header时,WAF将按顺序尝试读取客户端IP。如果第一个Header不存在,则读取第二个,以此类推。如果所有指定Header都不存在,则读取XFF中第一个IP地址作为客户端IP。

    启用流量标记 设置是否启用WAF流量标记功能。

    流量标记表示WAF在转发客户端请求到源站服务器时,在请求头中添加或修改由您指定的自定义字段,用于标记该请求经过WAF转发、记录该请求的客户端IP。

    选中启用流量标记后,您需要设置标记字段。
    注意 请不要填写标准的HTTP头部字段(例如User-Agent等),否则会导致标准头部字段内容被自定义的字段值覆盖。
    标记字段分为以下类型:
    • 自定义Header:需要设置Header名Header值,使WAF在回源请求中添加该Header信息,标记经过WAF的请求(区分没有经过WAF的请求,便于您的后端服务统计分析)。

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

    • 客户端IP:设置记录IP的Header名,使WAF在回源请求中,将该Header的值修改为客户端IP。关于WAF判定客户端IP的具体规则,请参见WAF前是否有七层代理(高防/CDN等)参数的描述。

      如果您的后端服务需要从指定的自定义Header(例如example-client-ip)中获取客户端IP进行业务分析,则您可以将该Header设置为记录IP的Header名

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

    资源组 从资源组列表中选择该域名所属资源组。
    说明 您可以使用资源管理服务创建资源组,根据业务部门、项目等维度对云资源进行分组管理。更多信息,请参见创建资源组
  6. 将本机host绑定到本地WAF前的负载均衡服务器上,并测试流量是否正常通过WAF。
    说明 目前,暂时仅支持由阿里云技术人员操作。
  7. 修改需要接入域名的DNS解析到本地负载均衡服务器。
  8. 单击完成,返回网站列表
    此时,您已成功将该域名接入混合云WAF的防护。