更新时间:2024-03-11 GMT+08:00

添加防护域名

该任务指导用户在Web应用防火墙添加并接入域名。域名接入WAF后,WAF作为一个反向代理存在于客户端和服务器之间,服务器的真实IP被隐藏起来,Web访问者只能看到WAF的IP地址。

前提条件

已获取管理控制台的账号和密码。

配置防护域名原理图

  • 若在客户端和Web应用防火墙之间使用了代理,可参照图1配置。
    图1 使用代理配置原理图
    • 当网站没有接入到WAF前,DNS解析到DDoS高防等代理,流量先经过DDoS高防等代理,DDoS高防等代理再将流量直接转到源站。
    • 网站接入WAF后,需要将域名解析到WAF,这样流量才会被DDoS高防等代理转发到WAF,WAF再将流量转到源站,实现网站流量检测和攻击拦截。
      1. 将DDoS高防等代理回源地址修改为WAF的“接入地址”
      2. 在DNS服务商处添加一条WAF的子域名和TXT记录。
  • 若在客户端和Web应用防火墙之间未使用代理,可参照图2配置。
    图2 未使用代理配置原理图
    • 当网站没有接入到WAF前,DNS直接解析到源站的IP,用户直接访问服务器。
    • 当网站接入WAF后,需要把DNS解析到WAF的CNAME,这样流量才会先经过WAF,WAF再将流量转到源站,实现网站流量检测和攻击拦截。

操作步骤

  1. 登录管理控制台。
  2. 单击管理控制台左上角的,选择区域或项目。
  3. 单击页面上方的“服务列表”,选择安全 > Web应用防火墙
  4. 在左侧导航树中,选择域名配置,进入“域名配置”页面。
  5. 在页面的右上角,单击“创建防护域名”
  6. “创建防护域名”页面配置域名基本信息。相关参数说明如表1所示。

    表1 基本信息参数说明

    参数

    参数说明

    取值样例

    防护域名

    可防护的域名,支持单域名和泛域名。

    • 单域名:输入防护的单域名。例如:www.example.com。
    • 泛域名
      • 如果各子域名对应的服务器IP地址相同:输入防护的泛域名。例如:*.example.com。
      • 如果各子域名对应的服务器IP地址不相同:请将子域名按“单域名”方式逐条添加。

    单域名:www.example.com

    泛域名:*.example.com

    非标准端口

    可选参数,仅当用户勾选“非标准端口”时需要配置。

    • “对外协议”选择“HTTP”时,WAF默认防护“80”标准端口的业务,如需配置除“80”以外的端口,勾选“非标准端口”,在“端口”下拉列表中选择非标准端口。
    • “对外协议”选择“HTTPS”时,WAF默认防护“443”标准端口的业务,如需配置除“443”以外的端口,勾选“非标准端口”,在“端口”下拉列表中选择非标准端口。

    Web应用防火墙可支持的非标准端口请参见Web应用防火墙章节。

    4443

    服务器配置

    网站服务器地址的配置。包括对外协议、源站协议、源站地址和源站端口。

    • “对外协议”:客户端协议类型。包括“HTTP”“HTTPS”两种协议类型。
    • “源站协议”:服务器协议类型,WAF转发客户端请求的协议。包括“HTTP”“HTTPS”两种协议类型。
      说明:

      对外协议与源站协议的具体配置规则,请参见对外协议与源站协议配置规则

    • “源站地址”:客户端访问的网站服务器的IP地址(一般对应该域名接入WAF之前的A记录)或者域名(一般对应该域名接入前的CNAME)。
      说明:

      WAF不支持健康检查,如需使用,请配合ELB使用。ELB配置完成后,再将ELB的EIP作为源站地址的IP地址,接入WAF,实现健康检查。

    • “源站端口”:客户端访问的网站服务器的端口号。

    对外协议:HTTPS

    源站协议:HTTP

    源站地址:XXX.XXX.1.1

    源站端口:80

    证书名称

    “对外协议”设置为“HTTPS”时,需要选择已有证书或导入新证书,导入新证书的操作请参见7

    -

  7. (可选)导入新证书。

    “对外协议”设置为“HTTPS”时,可以导入新证书。

    1. 单击“上传证书”,在弹出的“上传证书”对话框中,输入证书名称,并将证书内容和私钥内容粘贴到对应的文本框中。
      WAF当前仅支持PEM格式证书。如果证书为非PEM格式,请参考表2证书转换为PEM格式,再上传。
      表2 证书转换命令

      格式类型

      转换方式(通过openssl工具进行转换)

      CER/CRT

      “cert.crt”证书文件直接重命名为“cert.pem”

      PFX

      • 提取私钥命令,以“cert.pfx”转换为“cert.key”为例。

        openssl pkcs12 -in cert.pfx -nocerts -out cert.key -nodes

      • 提取证书命令,以“cert.pfx”转换位“cert.pem”为例。

        openssl pkcs12 -in cert.pfx -nokeys -out cert.pem

      P7B

      1. 证书转换,以“cert.p7b”转换为“cert.cer”为例。

        openssl pkcs7 -print_certs -in cert.p7b -out cert.cer

      2. “cert.cer”证书文件直接重命名为“cert.pem”

      DER

      • 提取私钥命令,以“privatekey.der”转换为“privatekey.pem”为例。

        openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem

      • 提取证书命令,以“cert.cer”转换为“cert.pem”为例。

        openssl x509 -inform der -in cert.cer -out cert.pem

    2. 单击“确定”,上传证书。

  8. 选择“是否已使用代理”,默认为“否”

    当在Web应用防火墙前使用代理时,不能切换为“Bypass”工作模式。

    • 若接入Web应用防火墙的网站已使用高防、CDN(Content Delivery Network,内容分发网络)、云加速等代理,为了保证WAF的安全策略能够针对真实源IP生效,请务必选择“是”,如果选择“否”,则Web应用防火墙无法获取Web访问者请求的真实IP地址。

      当在Web应用防火墙前使用CDN等代理时,WAF服务默认从HTTP Header“X-Forwarded-For”获取访问者真实源IP地址。当网站代理不使用“X-Forwarded-For”标识客户端原始IP地址时,需在“真实源IP头”所在行的“X-Forwarded-For”后单击,在弹出的对话框中,选择已有的source IP header或选择“自定义”后输入自定义的source IP header。

    • 若接入Web应用防火墙的网站未使用任何代理,请选择“否”

  9. 单击“立即创建”,进入“域名接入”页面,同时在页面的右上角,会弹出“域名添加成功”

    如果暂时不接入域名,可跳过本步骤,直接单击“下一步”后单击“完成”。后续再参照域名接入章节完成域名接入,此时,“DNS”解析状态显示“异常”

    • 若使用了CDN或高防等代理类服务,需要配置回源地址、子域名和TXT记录。
      1. 配置网站使用代理的“回源地址”

        将CDN或高防等代理中的回源地址修改为WAF生成的回源地址。

      2. 配置“子域名”“TXT记录”

        前往您的DNS服务商处,添加一个“子域名”,并为该子域名添加一条“TXT记录”

      WAF的多AZ灾备机制依赖DNS解析。请不要使用固定IP访问业务,否则会影响服务的灾备可靠性。

    • 未使用代理,需要配置CNAME记录。
      1. 到该域名的DNS服务商处,配置防护域名的别名解析,具体操作请咨询您的域名服务提供商。

        WAF的多AZ灾备机制依赖DNS解析。请不要使用固定IP访问业务,否则会影响服务的灾备可靠性,因此:

        1. 请不要用修改hosts记录的方式替代DNS解析配置。
        2. 请不要用A记录替代CNAME记录。

        以下为当前主流的域名服务商的CNAME绑定方法,仅供参考。如与实际配置不符,请以各自域名服务商的信息为准。

        1. 登录域名服务提供商的管理控制台。
        2. 进入域名解析记录页。
        3. 设置CNAME解析记录。
          • “记录类型”选择为“CNAME”
          • “主机记录”一般填写域名前缀,例如:防护域名为 “admin.demo.com”“主机记录”填写为“admin”
          • “记录值”填写为WAF生成的CNAME。
          • “解析线路”“TTL” 保持默认值即可。
        4. 填写完成后,单击“保存”,完成解析设置。

        以上解析方法为第三方解析方法。本文档不对任何第三方内容进行控制或负责,包括但不限于其准确性、兼容性、可靠性、可用性、合法性、适当性、性能、不侵权、更新状态等。

      2. 验证域名的CNAME是否配置成功。
        1. 在Windows操作系统中,选择开始 > 运行,在弹出框中输入“cmd”,按“Enter”
        2. 执行以下命令,查询CNAME。如果回显的域名是配置的CNAME,则表示配置成功。

          nslookup www.domain.com

  10. 域名接入完成后,单击“下一步”
  11. 单击“完成”,防护域名添加成功。

    用户可在域名列表中查看已添加防护域名的“DNS解析状态”“工作模式”

    • 若用户的服务器在使用其他网络防火墙,请将其关闭或者将WAF的IP网段添加到网络防火墙的IP白名单中。
    • 若用户的服务器上已安装个人版安全软件,建议将其更换为企业版安全软件,并将WAF的IP网段添加到该软件的IP白名单中。
    • 若防护域名已接入WAF,“DNS解析状态”“正常”。如果“DNS解析状态”仍然为“异常”,可在目标域名所在行的“操作”列,单击更多 > 检查DNS,检查“DNS解析状态”,如果仍然为“异常”,可参照如何处理DNS解析状态异常?重新进行域名接入。
    • 域名添加成功后,Web应用防火墙默认开启防护。其中,Web基础防护开启“仅记录”(发现攻击行为后只记录不阻断攻击)防护模式,且WAF默认为该域名添加一条CC防护规则,该规则默认为500次/5s,最大可以调整到10000次/5s,可联系管理员调整上限,该规则只能修改不能删除。

对外协议与源站协议配置规则

根据您的业务场景的不同,WAF提供灵活的协议类型配置。假设您的网站为www.example.com,WAF可配置如下四种访问模式:

  • HTTP访问模式。

    “对外协议”“源站协议”都为“HTTP”

    此种配置表示用户只能通过http://www.example.com访问网站,如果用户通过https://www.example.com访问网站,用户会收到302跳转响应,浏览器跳转到http://www.example.com。

  • HTTPS访问模式,客户端协议全部配置为HTTPS时,当使用HTTP协议访问服务器时,会强制跳转为HTTPS协议。
    • 用户直接通过https://www.example.com访问网站,网站返回正常内容。
    • 用户通过http://www.example.com访问网站,用户会收到302跳转响应,浏览器跳转到https://www.example.com。
  • HTTP/HTTPS分别转发模式。

    服务器配置两条,一条“对外协议”“源站协议”都为“HTTP”,一条“对外协议”“源站协议”都为“HTTPS”

    • 用户通过http://www.example.com访问网站,网站返回正常内容,没有跳转,网站内容不加密传输。
    • 用户通过https://www.example.com访问网站,网站返回正常内容,没有跳转,网站内容加密传输。
  • 使用WAF做HTTPS卸载模式。

    “对外协议”“HTTPS”,和“源站协议”“HTTP”

    用户通过https://www.example.com访问网站,但是WAF到源站依然使用HTTP协议。