更新时间:2026-07-03 GMT+08:00
分享

通过“云模式-CNAME接入”将网站接入WAF

如果网站业务服务器部署在华为云非华为云本地,可使用云模式-CNAME接入将网站接入WAF进行防护。

云模式-CNAME接入为反向代理接入模式,配置简单,无需改动源站公网IP、无需变更网络架构,只需将网站添加到WAF,并修改DNS解析将流量指向WAF即可。网站成功接入WAF后,用户访问域名时,DNS将流量解析至WAF,WAF完成攻击检测、清洗、过滤后,将正常请求回源转发至源站服务器。

介绍视频

方案概述

本章节介绍云模式-CNAME接入的接入原理、网站接入WAF后的流量访问示意。

云模式-CNAME接入以DNS解析为流量调度核心。
  • 未使用代理场景下:将域名解析指向WAF分配的CNAME地址,引流公网流量至WAF节点进行攻击检测与清洗过滤,再由WAF将合法流量回源至源站服务器,如图1所示。
    图1 接入原理(无代理场景)
  • 使用代理场景下:将域名解析指向CDN、DDoS高防等代理,再将代理的回源地址修改为WAF分配的CNAME地址,引流公网流量至WAF节点进行攻击检测与清洗过滤,再由WAF将合法流量转发至源站服务器,如图2所示。
    图2 接入原理(有代理场景)

通过云模式-CNAME接入将网站接入WAF后的流量访问示意图如图3所示。

图3 网站流量访问示意图
流量访问说明如下:
  1. 用户在浏览器输入域名后,客户端会向DNS发送请求,查询域名解析地址。
  2. DNS返回域名解析地址。
  3. 如果无代理(例如CDN、DDos高防等),DNS返回的域名解析地址为WAF IP,客户端通过WAF IP访问WAF。如果存在代理:
    1. DNS返回的域名解析地址为代理IP,客户端通过代理IP访问代理。
    2. 代理通过WAF IP访问WAF。

    云模式-CNAME接入场景下,当源站被攻击时,WAF可能会切换CNAME对应的WAF IP。因此,请勿将CNAME对应的WAF IP添加到WAF前的请求源(如图3中的客户端代理)出方向的白名单中,否则可能会导致网站业务中断。

  4. WAF对流量进行检测后,拦截异常流量,使用回源IP(段)将正常流量转发到源站服务器

接入流程

为了将网站接入WAF进行防护,根据网站是否使用代理(例如高防、CDN、云加速等),您需要完成如下接入操作。

操作步骤

说明

步骤一:添加防护域名

介绍如何将防护域名 、源站信息等添加到WAF,完成监听和转发配置

步骤二:放行回源IP

介绍如何获取回源IP,放行回源IP,避免WAF回源IP被源站服务器拦截

步骤三:本地验证

介绍如何在本地计算机验证域名接入配置是否生效,防止全网故障。

步骤四:修改域名DNS解析设置

修改域名DNS解析,将全部公网流量引流到WAF。

  • 未使用代理:介绍如何修改DNS解析为WAF CNAME。
  • 使用代理:介绍在DNS的解析已指向代理的前提下,如何修改代理的回源地址为WAF CNAME。

步骤五:接入验证

介绍如何验证域名是否接入成功、基础防护是否生效。

约束条件

  • 云模式-CNAME接入仅支持防护网站域名。如果需要配置固定的接入IP,请选择云模式-ELB接入
  • 如果同一个域名同时存在HTTP(七层)和四层业务,不能使用云模式-CNAME接入。推荐使用云模式-ELB接入独享模式接入,在ELB上配置四层业务对应的监听器直接转发至源站,使得四层业务请求不经过WAF,只有七层业务请求经过WAF检测。

前提条件

基础接入配置

参考以下步骤,可快速将网站接入WAF。

在配置过程中,最低TLS版本和加密套件IP标记负载均衡算法IPv6防护HTTP2协议防护策略配置项均可保持默认。完成基础接入配置后,可根据实际业务情况,参见进阶配置进行调整。

步骤一:添加防护域名

为了将业务接入WAF防护,需要将防护域名、源站信息等,添加到WAF。

  1. 登录Web应用防火墙控制台
  2. 在控制台左上角,单击图标,选择区域或项目。
  3. (可选) 如果您已开通企业项目,在左侧导航栏上方,单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。

    所有项目下不支持添加防护网站。

  4. 在左侧导航栏,单击“网站设置”

    在开始添加防护网站前,可单击页面右上角的“流程引导”,了解接入流程。

  5. 在网站列表左上角,单击“添加防护网站”
  6. 选择“云模式-CNAME接入”并单击“开始配置”
  7. “添加防护网站”面板,填写网站基础信息

    图4 基础信息配置
    表1 基础信息参数说明

    参数

    参数说明

    取值样例

    防护域名

    需要添加到WAF进行防护的域名。
    • 支持添加以下类型的域名:
      • 单域名,例如一级域名“example.com”,二级域名“www.example.com”等。
      • 泛域名,例如“*.example.com”
        • 入门版不支持添加泛域名。
        • 如果各子域名对应的服务器IP地址相同:输入防护的泛域名。例如:子域名“a.example.com”“b.example.com”“c.example.com”对应的服务器IP地址相同,可以直接添加泛域名“*.example.com”
        • 如果各子域名对应的服务器IP地址不相同:请将子域名按“单域名”方式逐条添加。
        • 域名和证书需要一一对应,泛域名只能使用泛域名证书。如果您没有泛域名证书,只有单域名对应的证书,则只能在WAF中按照单域名的方式逐条添加域名进行防护。
    • 同一个域名对应不同端口视为不同的防护对象。例如“www.example.com:8080”“www.example.com:8081”视为两个不同的域名,将占用两个域名额度。
    • 若源站服务器位于中国大陆,则该域名需经过ICP(Internet Content Provider)备案。WAF会检查域名备案情况,未备案域名将无法添加。

    单击“快速添加云内域名”,可直接选择已在华为云内使用的域名。域名来自云解析服务(DNS)上的公网域名,若没有您所需的域名,请前往云解析服务进行添加。

    www.example.com

    网站名称(可选)

    自定义网站名称。

    WAF

    网站备注(可选)

    添加网站的备注信息。

    waftest

    防护端口

    填写要防护的端口。此处只能添加一个端口,如果要防护同一个域名的不同端口时,需重复步骤一:添加防护域名,再次将域名和端口添加到WAF。
    • 配置为80、443端口:在下拉框中选择“标准端口”
    • 配置为其他端口:选择可选端口范围内的端口。单击“查看可添加端口”,查看WAF支持的HTTP和HTTPS端口。更多信息请参见WAF支持的端口范围

      如果配置为除80、443以外的其他端口,访问网站时,需要在网址后面增加非标准端口进行访问,否则访问网站时会出现404错误

    标准端口

    服务器配置

    配置源站服务器相关信息,包括:

    • 对外协议:客户端请求访问服务器的协议类型,支持:
      • HTTP“防护端口”选择“标准端口”时,HTTP协议默认防护的80端口。
      • HTTPS“防护端口”选择“标准端口”时,HTTP协议默认防护的443端口。
        • HTTPS协议是HTTP的安全版本,它在HTTP基础上增加了SSL/TLS协议,提供了数据加密、完整性校验和身份验证。因此,选择HTTPS协议时,需要配置证书。
        • 选择HTTPS协议时,支持开启HTTP2协议
    • 源站协议:网站服务器支持的协议类型,也是WAF转发客户端请求的协议类型,包括“HTTP”“HTTPS”两种。

      如果“对外协议”“源站协议”不一致,WAF会将“对外协议”转换为“源站协议”,使用“源站协议”来转发客户端的请求。

    • 源站地址:客户端访问的网站服务器的公网IP地址或域名
      • 公网IP地址:一般对应该域名在DNS服务商处配置的A记录。支持以下两种IP格式:
        • IPv4,例如:XXX.XXX.1.1
        • IPv6,专业版企业版支持IPv6地址。例如:fe80:0000:0000:0000:0000:0000:0000:0000
      • 域名:一般对应该域名在DNS服务商处配置的CNAME。
    • 源站端口:WAF转发客户端请求到服务器的业务端口。
    • 权重:负载均衡算法将按权重将请求分配给源站。仅云模式的专业版企业版支持该功能。
      • 当负载均衡算法为“加权轮询”时,所有请求将按权重轮流分配给源站服务器。
      • 当负载均衡算法为“源IP Hash”“Session Hash”时,权重只区分是否为“0”,为“0”则不分发流量,不为“0”则分发流量。
      • 权重可填0-65536,数值越大被分发的流量越多。
      • 权重设置为“0”时,如果配置了多个服务器,该源站服务器不会再接受新请求;如果只配置一个服务器,所有请求都会分配给源站服务器。
    • 对外协议:HTTP
    • 源站协议:HTTP
    • 源站地址:IPv4 XXX .XXX.1.1
    • 源站端口:80

    证书选择

    “对外协议”设置为“HTTPS”时,需要选择网站关联的证书,支持“国际证书”“国密证书”(仅华北-乌兰察布一地域支持国密证书)。

    • 域名和证书需要一一对应,泛域名只能使用泛域名证书。如果您没有泛域名证书,只有单域名对应的证书,则只能在WAF中按照单域名的方式逐条添加域名进行防护。
    • 如果您的证书即将到期,为了不影响网站的使用,建议您在到期前重新使用新的证书,并在WAF中同步更新网站绑定的证书。

      WAF支持证书过期时发送告警通知,您可以在“告警通知”界面配置证书过期提醒,具体的操作请参见开启告警通知

    WAF支持导入新证书选择已有证书选择SCM证书
    • 导入新证书:如果您未创建证书,单击“导入新证书”,在“导入新证书”对话框,填写证书相关参数。更多信息,请参见上传证书

      WAF当前仅支持PEM格式证书。如果证书为非PEM格式,请参考如何将非PEM格式的证书转换为PEM格式证书转换为PEM格式,再上传。

      成功导入的新证书,将同步添加到“证书管理”页面的证书列表。

    • 选择已有证书:如果已创建证书,单击下拉框,在“已有证书”中选择正确、有效的证书。
    • 选择SCM证书:如果您已经在同一个账号下使用了CCM中的证书,也可以直接在下拉框中选择SCM证书,此处选择的SCM证书名称与CCM里证书名称一致。
      • 目前华为云SCM证书只能推送到“default”企业项目下。如果您使用其他企业项目,则不能选择使用SCM推送的SSL证书。
      • 选择的SCM证书会自动在“证书管理”页面生成一条记录,该证书支持在“证书管理”页面修改证书名称,但不会同步修改CCM里显示的证书名称。

    -

    最低TLS版本和加密套件

    选择证书后,需要选择最低TLS版本和加密套件。更多信息,请参见配置PCI DSS/3DS合规与TLS
    • 最低TLS版本:为兼容大部分业务场景,最低TLS版本默认为TLS v1.0。用户可参考表1,选择安全性更高的TLS版本。TLS版本安全性从低到高依次为:TLS v1.0、TLS v1.1、TLS v1.2。
    • 加密套件:在兼顾安全性和兼容性的前提下,加密套件默认为“安全加密套件”。用户可参考表2,选择安全性更高的加密套件。
    • 最低TLS版本:TLS v1.0
    • 加密套件:安全加密套件

    IP标记

    网站接入WAF后,“已使用七层代理”默认为“是”。该场景下,WAF无法直接获取客户端真实IP,导致基于IP的防护规则失效。选择IP标记后,可指定客户端IP的判定方式,帮助WAF获取客户端真实IP。
    • $remote_sockaddr:当WAF前无其他代理时,如果报文存在TOA(TCP Option Address),且不希望WAF以TCP Option Address作为客户端IP时,选择该选项。配置后,WAF会以报文的3层源IP作为客户端真实IP。
    • $remote_addr:当WAF前存在四层代理时,如果希望WAF以TCP连接IP作为客户端真实IP,选择该选项。
    • x-forwarded-for:当WAF前存在七层代理时,选择该选项后,WAF会以X-Forwarded-For(XFF)中的首个IP地址作为客户端真实IP。
    • 自定义:当WAF前存在七层代理时,选择该项并配置字段名后,WAF优先从配置的字段中获取客户端真实IP。配置多个字段时,WAF从左到右依次读取客户端真实IP。

      如果WAF从自定义字段中未获取到客户端真实IP,将依次从CDN-Src-Ip、X-Real-Ip、X-Forwarded-For、$remote_addr字段获取客户端真实IP。

    $remote_sockaddr

  8. 填写网站高级配置信息。

    图5 高级配置
    表2 高级配置参数说明

    参数

    参数说明

    取值样例

    负载均衡算法

    存在多个源站服务器地址时,需选择多源站服务器间的负载均衡算法,使WAF将回源请求转发到对应的服务器,实现负载均衡。更多信息请见修改负载均衡算法

    WAF支持的算法如下:
    • 源IP Hash:将某个IP的请求定向到同一个服务器。
    • 加权轮询:所有请求将按权重轮流分配给源站服务器,权重越大,回源到该源站的几率越高。
    • Session Hash:将某个Session标识的请求定向到同一个源站服务器,请确保在域名添加完毕后配置攻击惩罚的流量标识,否则Session Hash配置不生效。

    加权轮询

    IPv6防护

    如果该域名存在IPv6协议的访问请求,请选择“开启”,开启后WAF将为域名分配IPv6的接入地址。专业版企业版支持IPv6防护。更多信息请参见开启IPv6防护
    • “源站地址”选择“IPv6”时,默认开启“IPv6防护”

      当源站存在IPv6地址,默认开启IPv6防护。WAF为了防止客户IPv6的业务中断,禁止关闭IPv6的开关,如果确定不需要IPv6防护,需要先修改服务器配置,在源站删除IPv6的配置,具体的操作方法请参见修改服务器配置信息

    • “源站地址”选择“IPv4”时,开启“IPv6防护”后,WAF将为域名分配IPv6的接入地址,即将IPv4源站转化成IPv6网站,将外部IPv6访问流量转化成对内的IPv4流量。具体的请参见WAF如何解析/访问IPv6源站?

    开启

    HTTP2协议

    “服务器配置”中至少有一条源站地址的“对外协议”配置为“HTTPS”时,才可以配置HTTP2协议。专业版企业版支持HTTP2协议。

    HTTP2协议仅适用于客户端到WAF之间的访问。如果您的网站需要支持HTTP2协议的访问,开启该开关。开启后,请确认客户端最大支持TLS 1.2,否则HTTP2不生效。

    使用

    防护策略

    选择要启用的防护策略。
    • “系统自动生成策略”(默认):详细说明如表3所示。如果已添加的防护策略达到配额,不支持选择该项。
    • 手动创建的防护策略:根据防护需求创建的防护策略。专业版企业版支持选择手动创建的防护策略。更多信息,请参见配置防护策略

    系统自动生成策略

    表3 系统自动生成策略说明

    版本

    防护策略

    策略说明

    入门版、标准版

    Web基础防护,默认开启常规检测
    • “规则集”“默认规则集【中等】”
    • “防护动作”“仅记录”,即发现攻击行为后WAF只记录攻击事件不阻断攻击。

    仅记录SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。

    专业版、企业版

    Web基础防护,默认开启常规检测
    • “规则集”“默认规则集【中等】”
    • “防护动作”“仅记录”,即发现攻击行为后WAF只记录攻击事件不阻断攻击。

    仅记录SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。

    网站反爬虫,默认开启扫“扫描器”检测、“防护动作”“仅记录”(发现攻击行为后WAF只记录攻击事件不阻断攻击)。

    仅记录漏洞扫描、病毒扫描等Web扫描任务,如OpenVAS、Nmap的爬虫行为。

  9. 单击“下一步”,根据“接入验证”提示,完成以下操作:

    图6 添加域名完成
    1. 放行WAF回源IP
    2. 本地验证
    3. 修改域名DNS解析设置

步骤二:放行回源IP

回源IP是WAF转发正常客户端请求到服务器时用的源IP,在服务器看来,接入WAF后所有访问源站的IP都会变成WAF的回源IP,而真实的客户端地址会被加在HTTP头部的XFF字段中。

如果源站使用了其他防火墙、网络ACL、安全组、杀毒软件等,很容易把WAF的回源IP当作恶意IP进行拦截。在此基础上,为避免黑客获取源站IP后绕过WAF直接攻击源站,建议您在源站服务器上配置只放行WAF回源IP全部端口的访问控制策略。

  • WAF的回源IP会因为扩容/新建集群而增加,对于一个客户的存量域名,一般回源IP会固定在2~4个集群的几个C类IP地址(192.0.0.0~223.255.255.255)上。
  • 一般情况下,在没有灾备切换或其他调度切换集群的场景下,回源IP不会变。且WAF后台做集群切换时,会探测源站安全组配置,确保不会因为安全组配置导致业务整体故障。
  1. 获取WAF的回源IP。

    完成步骤一:添加防护域名后展开“步骤一:放行回源IP”,或者在“网站设置”页面,在目标网站所在行的“接入状态”栏中,单击“回源IP加白”,单击,复制所有回源IP。
    图7 复制回源IP

  2. 打开源站服务器上的安全软件,将复制的IP段添加到白名单。

    • 源站服务器部署在华为云ECS上,请参考源站服务器部署在ECS上,放行WAF回源IP进行操作。
    • 源站服务器部署在华为云ELB上,请参考源站服务器部署在华为云ELB上,放行WAF回源IP进行操作。
    • 如果您同时使用了华为云云防火墙(CFW),请参考添加防护规则放行WAF的回源IP。
    • 如果后端资源在其他云厂商,请在对应安全组、访问控制等中添加信任WAF的回源IP。
    • 如果源站服务器只安装了个人版杀毒软件,通常这些软件没有配置加白IP的界面。如果是对外提供Web业务的服务器,建议您安装服务器版本的企业安全软件,或华为云主机安全服务产品,这些产品会识别一些请求量较大的IP的socket,并偶发断开连接,一般情况下不会拦截WAF的回源IP。

  3. 完成以上操作后,勾选“已完成回源IP加白”

步骤三:本地验证

完成添加防护域名、放行回源IP后,可修改本地计算机的hosts文件,并设置本地计算机的域名寻址映射(仅对本地计算机生效的DNS解析记录),将网站域名的解析指向WAF的IP地址后,在本地计算机访问被防护的域名,验证WAF中添加的域名接入设置是否正确有效,避免域名接入配置异常导致网站访问异常。

进行此操作前请确认:

  • 确保添加的域名(例如:www.example.com)的源站服务器协议、地址、端口配置正确,如果“对外协议”选择了“HTTPS”,也必须确保上传的证书和私钥正确。
  • 已完成步骤二:放行回源IP
  1. 获取CNAME值。

    • 方式一:完成步骤二:放行回源IP后展开“步骤二:本地验证”,或者在“网站设置”页面中“接入状态”列单击“本地验证”,在弹出的页面中复制CNAME值。
    • 方式二:在网站设置页面,在目标域名所在行中,单击目标域名名称,进入域名基本信息页面,在“CNAME”信息行,单击,复制“CNAME”值。

  2. ping“CNAME”值并记录“CNAME”对应的IP地址。

    以域名www.example.com为例,该域名已添加到WAF的网站配置中,且WAF为其分配了以下CNAME值:xxxxxxxdc1b71f718f233caf77.waf.huaweicloud.com。

    在Windows中打开cmd命令行工具或者Linux中的bash工具,运行ping xxxxxxxdc1b71f718f233caf77.waf.huaweicloud.com获取WAF的接入IP。如图8所示,在响应结果中可以看到用来防护您的域名的WAF接入IP。
    图8 ping cname

    如果ping CNAME没有获取到WAF的接入IP,可能是由于您的网络不稳定,请确保您的网络运行正常,再执行以上操作。

  3. 在本地修改hosts文件,将域名及“CNAME”对应的WAF接入IP添加到“hosts”文件。

    1. 用文本编辑器打开hosts文件,hosts文件路径如下:
      • Windows:“C:\Windows\System32\drivers\etc\”
      • Linux:“/etc/hosts”
    2. 在hosts文件添加如图9内容,前面的IP地址即在2中获取的WAF接入IP地址,后面的域名即被防护的域名。
      图9 追加记录
    3. 修改hosts文件后保存,然后在命令行中对防护域名执行连通性测试。
      图10 ping域名

      预期此时解析到的IP地址应该是2中绑定的WAF的接入IP地址。如果依然是源站地址,可尝试刷新本地的DNS缓存(Windows的cmd下可以使用ipconfig/flushdns命令,Linux的bash下可以使用systemd-resolved命令)。

  4. 访问验证。

    1. 清理浏览器缓存,在浏览器中输入防护域名,测试网站域名是否能正常访问。

      如果hosts绑定已经生效(域名已经本地解析为WAF回源IP)且WAF的配置正确,访问该域名,预期网站能够正常打开。

    2. 手动模拟简单的Web攻击命令(例如<被防护域名>/?id=1 and 1=1,id=1 and 1=1为用作测试的SQL注入攻击代码),测试Web攻击请求。
      1. 将Web基础防护的状态设置为“拦截”模式,具体方法请参见配置Web基础防护规则
      2. 清理浏览器缓存,在浏览器中手动模拟简单的Web攻击命令(例如<被防护域名>/?id=1 and 1=1,id=1 and 1=1为用作测试的SQL注入攻击代码),测试WAF是否拦截了此条攻击,如图11所示。
        图11 访问被拦截
      3. 在左侧导航树中,选择防护事件,进入“防护事件”页面,查看防护域名测试的各项数据。

  5. 完成上述步骤后,勾选“已完成本地验证”

步骤四:修改域名DNS解析设置

将域名添加到WAF后,WAF作为一个反向代理存在于客户端和服务器之间,服务器的真实IP被隐藏起来,Web访问者只能看到WAF的IP地址,所以您必须将域名的DNS解析指向WAF提供的CNAME地址,才可以使域名的Web请求解析到WAF进行安全防护。本地验证通过后,您需要在DNS服务商处修改DNS解析设置,将网站的Web请求解析到WAF进行安全防护。

修改域名DNS解析设置前请确认:

  • 您拥有在域名的DNS服务商处修改域名解析设置的权限。

WAF前未使用代理和使用代理的场景下,修改域名DNS解析的配置不同。

  1. 获取WAF的CNAME值。

    • 方式一:完成步骤三:本地验证后展开“步骤三:DNS解析”,或者在“网站设置”页面中“接入状态”列单击“修改DNS解析”,在弹出的页面复制CNAME值。
      图12 获取WAF的CNAME值(1)
    • 方式二:在网站设置页面,在目标域名所在行中,单击目标域名名称,进入域名基本信息页面,在“CNAME”信息行,单击,复制“CNAME”值。
      图13 获取WAF的CNAME值(2)

  2. 修改域名DNS解析为WAF的CNAME值。

    到该域名的DNS服务商处,配置防护域名的别名解析,具体操作请咨询您的域名服务提供商。

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

    1. 进入公网域名列表页面
    2. 在目标域名所在行的“操作”列,单击“管理解析”,进入“解析记录”页面。
      图14 解析记录
    3. 在目标记录集的所在行“操作”列,单击“修改”
    4. 在弹出的“修改记录集”对话框中修改记录值。
      图15 修改记录集
      表4 修改记录集

      参数

      参数说明

      取值样例

      记录类型

      记录集的类型,此处为CNAME类型。

      • 对于同一个主机记录,CNAME解析记录不能重复,您需要将已存在的解析记录的CNAME修改为WAF CNAME地址。
      • 同一解析记录下,不同DNS解析记录类型间可能存在冲突。

        例如,对于同一个主机记录,CNAME记录与A记录、MX记录、TXT记录等其他记录互相冲突。

        在无法直接修改记录类型的情况下,您可以先删除存在冲突的其他记录,再添加一条新的CNAME记录。删除其他解析记录并新增CNAME解析记录的过程应尽可能在短时间内完成。如果删除A记录后没有添加CNAME解析记录,可能导致域名无法正常解析。

      • 域名解析类型的限制规则请参见添加记录集时,为什么会提示“与已有解析记录冲突”

      CNAME

      主机记录

      解析域名的前缀,默认为空。

      例如,创建的域名为“example.com”,其“主机记录”设置包括:

      • www:用于网站解析,表示解析的域名为“www.example.com”
      • :用于网站解析,表示解析的域名为“example.com”

        主机记录置为空,还可用于为空头域名“@”添加解析。

      • abc:用于子域名解析,表示解析的域名为“example.com”的子域名“abc.example.com”
      • mail:用于邮箱解析,表示解析的域名为“mail.example.com”
      • *:用于泛解析,表示解析的域名为“*.example.com”,匹配“example.com”的所有子域名。

      www

      线路类型

      解析的线路类型用于DNS服务器在解析域名时,根据访问者的来源,返回对应的服务器IP地址。默认值为“全网默认”

      全网默认

      TTL(秒)

      解析记录在本地DNS服务器的缓存时间,以秒为单位。默认值为“300”。取值范围为:1~2147483647。

      如果您的服务地址经常更换,建议TTL值设置相对小些,反之,建议设置相对大些。

      300

      记录值

      填写您要指向的别名,只能填写一个域名,此处为1已复制的WAF CNAME地址。

      请勿将当前CNAME解析对应的IP直接配置为防护域名。

      xxxxxxxdc1b71f718f233caf77.waf.huaweicloud.com

      高级配置(可选)

      设置记录集的别名、权重、描述。此处保持默认即可。

      --

    5. 单击“确定”,完成DNS配置,等待DNS解析记录生效。

      修改完成后,您可以在域名对应的记录集列表中查看已修改的记录集。当记录集的状态显示为“正常”时,表示记录集修改成功。

  1. 获取WAF的CNAME值。

    • 方式一:完成步骤三:本地验证后单击“步骤三:修改代理回源地址”,或者在“网站设置”页面中“接入状态”列单击“修改代理回源地址”,在弹出的页面中复制CNAME值。
      图16 获取WAF的CNAME值(1)
    • 方式二:在网站设置页面,在目标域名所在行中,单击目标域名名称,进入域名基本信息页面,在“CNAME”信息行,单击,复制“CNAME”值。
      图17 获取WAF的CNAME值(2)

  2. 确认DNS的解析已指向代理,同时将使用的代理类服务(高防、CDN服务等)的回源地址修改为复制的目标域名的CNAME,具体的方法请参见网站业务接入

    为了防止其他用户提前将您的域名配置到Web应用防火墙上,从而对您的域名防护造成干扰,建议您的DNS服务商处添加“子域名”“TXT记录”

    1. 获取“子域名”“TXT记录”:在域名基本信息页面顶部,单击“未接入”旁边的,在弹出的对话框中,复制“子域名”“TXT记录”
    2. 到DNS服务商处添加“子域名”,并为它配置“TXT记录”。具体的配置方法请参见未配置子域名和TXT记录的影响

    WAF会根据配置“子域名”“TXT记录”判断域名的所有权属于哪个用户。

配置验证

完成如上配置后,您需要验证域名的CNAME是否配置成功。

  1. 在Windows操作系统中,选择开始 > 运行,在弹出框中输入“cmd”,按“Enter”
  2. 执行nslookup命令,查询CNAME。

    如果回显的域名是配置的CNAME,则表示配置成功,示例如图18所示。

    以域名www.example.com为例。

    nslookup www.example.com
    图18 查询CNAME

  3. 完成以上步骤,勾选“已完成DNS解析”

步骤五:接入验证

  • 接入状态验证
    完成以上配置后,WAF会根据以下条件,每隔30分钟自动检测两周内新增或更新的域名接入状态。如果域名创建时间在两周前,且最近两周内没有任何修改,您可以在域名“接入状态”栏,单击手动刷新接入状态。
    • 是否为网站域名配置了CNAME记录或者TXT记录(有代理场景)
    • 是否有流量经过,即网站在5分钟内的访问请求是否达到20次。

    接入状态判断逻辑如图19所示。

    图19 接入状态判断逻辑
    接入状态说明:
    • 未接入:网站域名没有配置CNAME记录和TXT记录,且网站没有流量经过。您可以根据接入状态提示,进行回源IP加白本地验证修改DNS解析。如果手动刷新接入状态后,仍然为“未接入”,可参照域名/IP接入状态显示“未接入”,如何处理?重新完成域名接入。
    • 已接入:域名已成功接入WAF,即域名已配置CNAME记录;或域名已配置TXT记录,且网站有流量经过。
    • DNS解析异常:网站域名配置了TXT记录,但网站没有流量经过。您可以在5分钟内访问网站20次以上后,手动刷新接入状态,查看是否更新为“已接入”
  • 防护效果验证

    手动模拟简单的Web攻击命令(例如<被防护域名>/?id=1 and 1=1,id=1 and 1=1为用作测试的SQL注入攻击代码),验证WAF防护是否生效。

进阶配置

在进行基础接入配置,且满足一定条件时,可同时配置最低TLS版本和加密套件IP标记负载均衡算法IPv6防护HTTP2协议防护策略。如果以上配置项均保持默认配置,可根据实际业务调整。

用户可在“网站设置”页面,单击网站域名后,在网站详情页面进行配置。

云模式-CNAME接入支持以下进阶配置项:
表5 进阶配置

功能

支持功能

HTTPS安全合规加固

  • 配置PCI DSS/3DS合规与TLS:在兼顾兼容性和安全性的基础上,WAF默认配置的最低TLS版本为TLS v1.0,加密套件为“安全加密套件”,用户可根据业务需要,配置安全性更高的TLS版本、加密套件;或开启PCI DSS/PCI 3DS,构建“合规准入+加密传输+欺诈拦截” 三重防护体系,达成业务安全与合规的双重目标。
  • 开启HTTP2协议:用于HTTP2协议访问,适用于客户端到WAF之间。
  • 开启Cookie安全属性:自动为源站返回的Cookie追加HttpOnly和Secure属性(均设为true),防范XSS(跨站脚本攻击)窃取Cookie、Cookie劫持、中间人篡改Cookie等安全风险,同时满足安全合规要求,避免被Appscan、AWVS、绿盟等Web安全扫描器记录为安全威胁。

真实客户端IP透传

回源链路与性能优化

  • 配置WAF到网站服务器的连接超时时间:为各关键环节设置 “时间阈值”,如果请求或响应时间超过阈值,WAF即终止流程并返回对应错误码,避免异常或攻击请求长期占用资源。
  • 开启熔断保护功能保护源站安全:避免因频繁遇到502 Bad Gateway、504 Gateway Timeout错误或请求处理延迟,造成网站瘫痪。
  • 开启链路追踪:可根据访问日志信息,追踪完整的请求链路,获取请求的来源、经过的节点、响应时间等信息,帮助您快速定位和解决业务问题。

网络扩展与高可用配置

  • 开启IPv6防护:可解决IPv6网络环境下的Web攻击、恶意流量入侵等问题,同时实现IPv6与IPv4源站的无缝通信,保障网站IPv6业务的合规性与安全性。
  • 线路设置:配置防护域名流量经过的线路。
  • 修改负载均衡算法:针对HTTP/HTTPS请求的特征(如源IP、Session标识)进行流量分配。
  • 修改拦截返回页面:根据不同业务需要,配置访问者请求被拦截时,WAF返回的提示页面。
  • 修改人机验证状态码:实现WAF防护动作与业务系统的兼容性适配,避免因状态码不匹配导致的业务流程中断/前端解析异常。

运维监控效率提升

  • 配置日志记录响应体字节长度:截取满足响应体字节长度的响应体数据并写入日志。
  • 配置自定义记录日志Trace ID:提取并记录自定义请求头或响应头字段到WAF日志的custom_traceid字段中,通过统一Trace ID串联前端、WAF、网关、后端服务全链路,解决WAF日志与业务日志脱节的痛点,实现WAF日志与业务日志的联动关联,大幅提升日志追踪、问题排障与安全溯源的效率。

关于进阶配置的详细描述,请参见进阶配置

日常运维

在日常防护过程中,用户可能需要进行以下操作:
  • 查看网站基本信息:查看防护域名的对外协议类型、策略名称、告警页面、CNAME、CNAME IP等信息。
  • 更新网站绑定的证书:若证书即将到期,或因吊销、更换机构等其他原因需变更证书时,需及时更新域名已绑定的SSL证书。

    为避免因证书过期而导致业务中断,可设置证书到期告警通知,在证书到期前通过邮件、短信等方式接收通知。具体操作,请参见开启告警通知

  • 备案过期后重新接入:CNAME方式接入后,WAF会定期检查已接入域名的备案情况,一旦检查到域名备案过期,会自动停止域名的转发。已接入域名备案过期后,需要重新申请备案,备案成功后回到CNAME接入页面,单击再次接入防护按钮。(需确认华为云WAF是否适用?)
  • 切换防护模式
    • Bypass:如需将业务恢复到未接入WAF、排查网站异常等状况时,可切换为该状态,使所有请求直接到达其后端服务器,不再经过WAF检测。
    • 暂停防护:如果大量的正常业务被拦截,可切换为该状态,使WAF对所有请求只转发不检测,日志也不会记录。
    • 开启防护:部分场景,如手动续费后,建议检查防护状态。若运行状态为未防护,需重新开启防护。
  • 通过API批量管理WAF接入域名:
  • 删除防护网站:不再需要WAF防护时,可删除防护网站。

生产环境配置建议

为保障生产环境业务安全与运行稳定,将业务域名接入WAF防护前,建议遵循以下建议:

  • 接入时间:优先在凌晨低峰期切换DNS,降低用户影响。
  • 灰度策略:建议先接入非生产环境的域名,运行一段时间以确认业务正常后,再接入生产环境的域名。
  • 检查业务:接入完成后,您可以通过如下方式确认业务是否正常。
    • 查看日志:查看日志中状态码200的占比是否有明显波动、QPS是否有明显突增突降等。可查询防护事件,进行检查。
    • 业务监控:检查业务侧功能是否正常,例如用户访问、交易等功能。
  • 源站加固:建议在源站服务器上,配置只放行WAF回源IP全部端口的访问控制策略,防止黑客获取源站IP后绕过WAF直接攻击源站。
  • HTTPS配置:建议在源站服务器与WAF侧同步部署SSL证书,并参照以下配置建议,实现证书的规范化高效管理。
  • 规则优化:接入初期使用观察模式,排除误拦截后再开启拦截模式。
  • 监控告警
  • 备份策略:保存当前DNS、证书、回源配置信息,便于故障快速回滚。

后续操作

  1. 配置防护规则:如果默认开启的防护规则不能满足网站的安全需求,您可以配置有针对性的防护规则。
  2. 查询防护事件:查看网站30天内的攻击日志详情。

相关文档