登录云防护控制台,找到云盾->Web应用防火墙->域名配置,输入相关的域名及源站信息,并点击“添加域名”按钮:

点击添加域名后,会弹出选择解析方式的弹窗:

如果您当前添加的域名解析也在云防护(万网),并且也是用当前登录的账号配置的,您可以选择左边的一键解析(符合条件的域名,一键解析选项不会置灰),系统会自动为您修改当前添加域名的DNS解析并接入WAF,这个过程大概需要10-15分钟,配置完毕后界面会提示您已经接入WAF防护。 如果不符合一键解析的条件,您可以选择右边的手动修改,我们稍后会介绍如何手动配置DNS。

配置好域名后,WAF会自动分配给当前域名一个CNAME,可点击域名信息来查看:

这个CNAME在稍后配置DNS解析时会用到。如果您需要知道当前WAF的IP地址,可以通过ping一下这个CNAME的方式,一般情况下这个IP不会频繁变动。

如果防护HTTPS站点,必须上传服务器的证书和私钥到WAF,否则访问HTTPS站点会有问题。勾选HTTPS后,会看到红色的“异常”字样,提示当前证书有问题,点击“上传证书”来上传:

WAF可以直接复制证书和私钥文本内容,一般如pem、cer、crt等证书格式,可用文本编辑器直接打开,有些格式(如PFX、P7B等)的证书需要先转换成这些格式,转换方式可参考这里。如果有多个证书文件(如证书链),可拼接合并后一起上传。

WAF能识别的证书样例格式如下:

  1. -----BEGIN CERTIFICATE-----
  2. 62EcYPWd2Oy1vs6MTXcJSfN9Z7rZ9fmxWr2BFN2XbahgnsSXM48ixZJ4krc+1M+j2kcubVpsE2
  3. cgHdj4v8H6jUz9Ji4mr7vMNS6dXv8PUkl/qoDeNGCNdyTS5NIL5ir+g92cL8IGOkjgvhlqt9vc
  4. 65Cgb4mL+n5+DV9uOyTZTW/MojmlgfUekC2xiXa54nxJf17Y1TADGSbyJbsC0Q9nIrHsPl8YKk
  5. vRWvIAqYxXZ7wRwWWmv4TMxFhWRiNY7yZIo2ZUhl02SIDNggIEeg==
  6. -----END CERTIFICATE-----

私钥样例格式如下:

  1. -----BEGIN RSA PRIVATE KEY-----
  2. DADTPZoOHd9WtZ3UKHJTRgNQmioPQn2bqdKHop+B/dn/4VZL7Jt8zSDGM9sTMThLyvsmLQKBgQ
  3. Cr+ujntC1kN6pGBj2Fw2l/EA/W3rYEce2tyhjgmG7rZ+A/jVE9fld5sQra6ZdwBcQJaiygoIYo
  4. aMF2EjRwc0qwHaluq0C15f6ujSoHh2e+D5zdmkTg/3NKNjqNv6xA2gYpinVDzFdZ9Zujxvuh9o
  5. 4Vqf0YF8bv5UK5G04RtKadOw==
  6. -----END RSA PRIVATE KEY-----

上传完毕后,HTTPS状态应该变为正常:

刚添加完域名时,接入状态可能会提示异常:

这是正常的,待修改DNS使用CNAME解析接入WAF后,或者是有正常流量经过WAF以后会变成正常的,具体判断标准可参考CNAME接入状态说明。 至此,控制台配置完成。您可以继续添加其他域名,或进入到下一步。

WAF控制台提供了最新的回源IP段列表:

回源IP是WAF用来代理客户端请求服务器时用的源IP,在服务器看来,接入WAF后所有源IP都会变成WAF的回源IP,而真实的客户端地址会被加在HTTP头部的XFF字段中。 强烈建议接入WAF后卸载掉服务器上的其他安全软件,如安全狗、云锁等,至少确保源站已将WAF的全部回源IP放行(加入白名单),不然可能会出现网站打不开或极其缓慢的情况。

接入WAF后,WAF作为一个反向代理存在于客户端和服务器之间,服务器的真实IP被隐藏起来,客户端只能看到WAF,而看不到源站。如下图所示(origin为源站):

在源站(真实服务器)看来,所有的请求源IP都会变成WAF的回源IP段。 由于来源的IP变得更加“集中”,频率会变得更快,服务器上的防火墙或安全软件很容易认为这些IP在发起攻击,从而将其拉黑。一旦拉黑,WAF的请求将无法得到源站的正常响应,故务必要确保回源IP在源站上没有被拦截。

在把业务流量切到WAF上之前,建议先通过本地验证的方式确保一切配置正常,WAF转发正常。

首先需要修改本地hosts文件(什么是hosts文件),使本地对于被防护站点的请求先经过WAF。以Windows为例,hosts文件的位置一般位于“C:\Windows\System32\drivers\etc\hosts”,用记事本或notepad++等文本编辑器打开,在最后一行添加如下内容:

WAF的IP 被防护域名

其中前面的IP地址为对应的WAFIP地址,WAF的IP可以通过ping提供的CNAME来获得,

修改hosts文件后保存。然后本地ping一下被防护的域名,预期此时解析到的IP地址应该是刚才绑定的WAF IP地址。如果依然是源站地址,可尝试刷新本地的DNS缓存(Windows的cmd下可以使用ipconfig/flushdns命令)。

确认hosts绑定已经生效(域名已经本地解析为WAF的IP)后,打开浏览器,输入该域名进行访问,如果WAF的配置正确,网站预期能够正常打开。 同时也可以尝试一下手动模拟一些简单的web攻击命令,如 在URL后面加一个/?alert(xss),这是一个测试的web攻击请求,如www.aliyundemo.cn/?alert(xss) 预期WAF能够弹出阻拦页面:

一切OK后,接下来可以把业务流量切到WAF上来了。

通过修改DNS解析到WAF,完成业务正式接入。本篇以万网和花生壳为例,给出DNS配置的方式,其他的DNS提供商可以类似配置。 首先找到在步骤一中记录下的对应CNAME,如xxxxxxxx7wmqvixt8vedyneaepztpuqu.alicloudwaf.com。

WAF支持CNAME解析接入,也可以A记录解析,但我们强烈推荐使用CNAME解析,因为在某些极端情况下(如节点故障、机房故障等),CNAME接入可以实现自动切换节点IP甚至将解析切回源站,从而最大程度保证业务稳定,提供了高可用性和灾备能力。

必须使用A记录接入的情况(比如@记录与MX记录冲突等),可以ping一下CNAME得到WAF的IP地址(这个地址一般不会频繁变化),采用A记录解析接入。

以域名abc.com为例:

  • www:用以精确匹配www开头的域名,如www.abc.com,不能匹配abc.com
  • @:可以匹配直接访问abc.com的情况
  • *:泛域名,可匹配任意域名,如blog.abc.com, www.abc.com,abc.com

登录万网控制台,找到对应域名的“域名解析”->“解析设置”,正常情况下会有已经存在的一些解析,如下图:

将记录类型改成CNAME,记录值改成WAF控制台提供的CNAME,如下图:

当然,对应多个记录类型,WAF会提供多个CNAME,分别修改记录就可以了。

TTL值一般建议600秒,这个值越大,DNS记录的同步和更新越慢。

有的域名提供商不像万网可以支持直接修改已有域名的记录类型和主机类型,如花生壳,需要先将原有的A记录删除,再添加CNAME记录。请尽快完成此操作,否则删除原有解析后会解析失败。其他配置类似:

至此,WAF的接入完成。