要通过Web应用防火墙(WAF)防护您的网站,您必须在Web应用防火墙控制台完成域名配置,并将域名解析指向WAF为域名分配的CNAME地址,让所有访问网站的流量都经过WAF的过滤。

接入WAF前后的的流量逻辑如下所示。

接入前准备

在将您的网站域名通过CNAME方式接入Web应用防火墙进行防护前,您需要完成以下准备工作:

  • 该网站域名必须可以通过公网访问。
  • 使用中国大陆WAF时,该网站域名必须已完成ICP备案。
    说明 您可以通过阿里云为您的网站域名提交备案申请,具体方法请参考 备案导航
  • 确认该网站域名是否已接入或需要接入CDN、高防IP等其它代理型系统。
  • 准备被防护域名的DNS管理员权限,用来修改DNS记录,以切换被防护网站的流量。
  • 如果该网站域名需要通过HTTPS协议访问,您还需要准备好相应的证书内容和私钥。
    说明 一般情况下,您所需准备的证书相关内容包括:
    • *.crt(公钥文件)或*.pem(证书文件)
    • *.key(私钥文件)

接入流程



以下接入步骤适用于仅使用WAF对网站域名进行防护的场景,即该网站域名不接入CDN、高防IP等其它代理型服务。关于需要将WAF与其它代理型服务结合部署的场景,请查看以下内容:

步骤1:网站配置

登录 云盾Web应用防火墙控制台,前往 管理 > 网站配置页面,单击 添加网站,根据提示结合业务情况进行配置。

配置说明如下:
配置 描述
域名 填写要接入的域名。
协议类型 根据网站协议选择HTTP和/或HTTPS。关于高级设置,请参考HTTPS高级配置
服务器地址
  • 选择 IP,并填写源站公网IP。
    说明 服务器地址是您希望WAF把请求转发到的地址,通常来说就是真实服务器的地址(如ECS的IP),也可以是SLB的IP,如果您是线下业务,填写公网IP即可。
  • 如果您希望WAF防护的目标使用域名接入(例如,将OSS的存储空间的用户域名接入WAF防护),则需要选择其它地址,填写对应的源域名,注意不是接入WAF防护的网站域名。

    OSS域名回源注意事项: 如果您的源站服务器地址为OSS域名,在WAF控制台中完成域名接入配置后,需要在OSS控制台中为该OSS域名绑定自定义域名,具体操作步骤参考绑定自定义域名

服务器端口 填写服务器监听的端口。关于自定义端口,请查看非标端口支持
WAF前是否有七层代理(高防/CDN等) 判断是否使用了代理。
负载均衡算法 选择IP hash轮询算法,一般保持默认。关于源站负载均衡,请参考WAF源站负载均衡
更具体的配置说明,请参考添加网站配置

启用HTTPS

如果该网站域名需要支持通过HTTPS协议访问,您还需要参考以下步骤在WAF控制台中为该网站域名上传相应的证书。

  1. 准备所需证书信息。
    • 如果您的证书是通过阿里云云盾证书服务所购买的,您可以登录云盾证书服务控制台,选择您的证书,单击下载,并选择类型下载证书。
      说明 所下载的证书一般包括*.pem(证书文件)和*.key(私钥文件)两个文件。


    • 如果您的证书是通过其他渠道购买的,您可以联系相应的证书供应商,获得证书文件或寻求技术支持。
  2. 登录云盾Web应用防火墙控制台,前往管理 > 网站配置页面,选择网站域名,单击(上传证书按钮)上传证书。选择手动上传,并分别上传证书文件和私钥文件中的指定内容,具体说明请参考添加网站配置中的上传HTTPS证书和私钥部分。
    说明 如果您的证书是通过阿里云云盾证书服务购买的,您可以选择 选择已有证书,直接选择您已购买的证书即可。


查看域名接入状态

配置网站后,您可以登录 云盾Web应用防火墙控制台,在 管理 > 网站配置页面查看已添加的网站域名的 DNS解析状态,确认其是否正确接入WAF。如果DNS解析状态为异常,且收到 未检测到CNAME接入无流量的异常提示,则说明您所配置的网站域名未正确接入WAF。

  • DNS解析状态自动检测该网站域名的解析是否指向CNAME,并检测最近数分钟内该域名的访问流量是否经过Web应用防火墙。
  • DNS解析状态的CNAME接入检测每一小时执行一次,流量检测每数分钟执行一次。如果您确认已将网站域名解析正确接入WAF的CNAME,可在一小时后再次查看DNS解析状态。
    说明 该提示仅用于提醒您将网站域名接入WAF,不会因此而影响您网站的访问。

如果在配置完网站域名解析后,该网站域名的DNS解析状态仍然提示异常,且显示未检测到CNAME接入无流量当前无流量等错误信息,请查看DNS解析状态异常

步骤2:本地测试

将业务流量正式切换到WAF前,建议您先通过本地验证的方式确保WAF转发规则配置正常后,再修改网站域名的DNS解析记录,防止因配置错误而导致您业务的中断。

关于本地测试的具体方法,请查看本地验证

步骤3:准备获取访问者真实IP的方法

将业务流量正式切换到WAF后,对于该网站的访问就不再是简单地从用户的浏览器直达服务器,中间将至少经过WAF进行转发。在这种情况下,您需要通过额外的方法获得真正发起请求的真实客户端IP。
说明 一般情况下,当一个透明的代理服务器将用户的请求转到下一环节的服务器时,会在HTTP的头部增加一条X-Forwarded-For记录,用于记录用户的真实IP,其形式为 X-Forwarded-For:用户IP。因此,如果真实客户端与网站服务器中间经历了多个代理服务器,X-Forwarded-For将以该形式来展示所经过的代理服务器IP及真实用户IP: X-Forwarded-For:用户IP, 代理服务器1-IP, 代理服务器2-IP, 代理服务器3-IP, ……

因此,在将您的网站域名正式接入WAF防护后,您可以使用X-Forwarded-For的方式来获取访问者真实IP。关于具体的配置方法,请查看获取访问者真实IP

步骤4:切换DNS解析记录(正式接入Web应用防火墙防护)

修改您的网站域名的DNS解析,将该网站域名接入WAF进行防护。

将鼠标移至已添加的网站域名记录,获取WAF已为该域名所分配的CNAME地址。
说明 单击 复制CName可将该CNAME地址复制到剪贴板。


以下操作步骤以阿里云云解析DNS为例进行描述。如果网站使用的是其它域名提供商,参考以下操作步骤并结合实际域名管理控制台变更您的网站域名的DNS解析记录。

  1. 登录云解析DNS控制台,修改您的网站域名的解析记录。
    配置 说明
    记录类型 修改为CNAME。
    主机记录 填写对应的子域名(例如,www.aliyundemo.cn的主机记录为”www”,aliyundemo.cn的主机记录为”@”)。
    记录值 填写Web应用防火墙已分配的CNAME地址。
    00TTL 即域名缓存时间,可按照您的实际需求填写(一般建议设置为600秒)。
  2. 填写完成后,单击保存,完成解析记录的变更。

更具体的操作说明,请参考修改DNS解析

注意事项

  • 同一个主机记录,CNAME解析记录值只能填写一个,您需要将其修改为WAF所分配的CNAME地址。
  • 同一个主机记录,A记录和CNAME记录是互斥的。您需要修改为CNAME类型,并填入WAF所分配的CNAME地址。
  • 如果DNS服务商不允许直接将A记录的解析记录修改为CNAME记录,您需要先删除该A记录后,再增加CNAME类型的解析记录。
    说明 整个删除、新增过程应尽可能在短时间内完成,确保网站访问不中断。如果删除A记录后长时间没有添加CNAME类型解析记录,可能导致域名解析失败。
  • MX记录和CNAME记录是互斥的。如果您的网站域名必须保留MX记录,可以通过使用A记录指向WAF的IP来接入WAF防护。通过对WAF分配的CNAME地址使用Ping命令可以获取所分配的WAF IP,然后将A记录类型的解析记录中的记录值修改为该WAF IP。
    说明 如果您采用A记录方式将网站域名接入WAF防护,WAF将无法进行故障集群调度和故障bypass操作。

步骤5:启用源站保护

将网站域名正式接入WAF防护后,您还需要为源站配置相应的保护措施。

源站保护是防止攻击者在获取源站服务器的真实IP后,绕过WAF直接攻击您的源站,导致您的业务遭受恶意攻击。
说明 源站保护配置不是必须的。即使不配置源站保护,也不会影响正常业务转发。

一般情况下,建议您通过配置源站ECS的安全组或源站SLB的白名单,防止恶意攻击者直接攻击您的源站。关于具体的源站保护方法,请查看源站保护配置