这次特意细看了一下云盾上的CC防护功能,发现有部分朋友估计并未正确使用WAF。所以,我在本文就简单的分享一下阿里云盾-WAF网站防御的正确使用方法。
一、域名解析
大部分朋友,只是开启了云盾就不管了,这也就是很多朋友受到CC攻击后,云盾却毫无反应的原因了。实际上WAF防御必须配合域名解析来使用。
阿里云的WAF网站防御实际上相当于没有缓存机制的百度云加速或360网站卫士,不过只能用cname接入方式,后续是否会结合万网解析,新增NS接入方式就不得而知了:
如上图所示,要开启WAF网站防御,就必须在域名解析那,将主机记录cname到云盾生成的CNAME地址。这时用户访问网站是这样一个情况:
用户浏览器 → 域名解析 →cname到云盾服务器 → 源服务器
当受到攻击时,流量会经过云盾节点,并触发清洗机制,起到CC/DDoS防护作用。
当然,也有部分朋友知道WAF使用方法,但可能是出于SEO考虑,这些朋友也只会在网站受到攻击的时候才会修改为CNAME解析,因为CNAME解析到阿里云WAF域名后,IP并不是固定的,这点和云加速之类的是一致的,不过遗憾的是WAF并没有搜索引擎自动回源机制,所以使用cname之后,IP的频繁变更会对SEO造成不良影响!
如下图所示,使用WAF之后,网站IP也就变成了云盾节点IP了:
那该如何解决这个问题呢?想必看过张戈博客上一篇文章的朋友已经了然于心了吧?没错!和备案不影响SEO的做法一样:将默认线路cname到阿里云WAF地址,然后再新增一条搜索引擎线路,指定到源服务器IP即可!这样就可以长期开启云盾WAF防御,而不影响SEO了!
本想,百度自家的云加速解析,对搜索引擎线路的判断应该是最靠谱的(对于做百度流量的网站来说),毕竟是自家的产品,有哪些蜘蛛IP,都一清二楚,不会搞错!但实际测试发现,百度云加速目前并不支持cname默认线路的同时,新增搜索引擎线路,会提示该记录已存在!
Ps:尝鲜版的百度云加速倒是支持,地址是 http://next.su.baidu.com,感兴趣的可以自行测试下。
后来仔细一想,百度虽然对自己的蜘蛛了解透彻,但是对其他几家呢?比如搜狗,比如360?估计是个半吊子。处于完整性考虑,我推荐使用DNSPOD解析,原因无它,看图:
DNSPOD和百度有过合作,所以有一个百度专属线路,额外的还有搜索引擎线路,想必比百度云加速收集的蜘蛛IP更加完善吧!
所以,正确的解析如下所示:
这样解析不但可以放心使用阿里云WAF防御,还可以隐藏你的网站真实IP,避免发生源站被攻击只能换IP的尴尬(通过hosts本地解析进行攻击,啥CDN防护都没了作用!)
二、防护设置
可能开启了云盾,也正确解析了域名,但是被CC攻击时,云盾还是毫无反应?!实际上还要设置下DDoS防护高级设置,因为云盾默认的DDoS防护阈值还是太高,如下所示:
清洗触发值: 每秒请求流量:180M 每秒报文数量:30000 每秒HTTP请求数:1000
我们这种搭建在阿里云的小博客,大部分带宽都只有1~2M,别人2M请求流量或100+并发就已经把你的网站打出了翔咯!所以很多朋友就算正确开启了WAF防御,被攻击的时候还是非常卡!
因此,我们必须根据自己网站的流量设置下阈值。
看了下,最低的请求流量是10Mbps,也就是10M带宽,所以一般ECS服务器根本不够看,因为水管太小了。。因此,我们需要设置另一个阈值:http并发请求。
对于我这种1M带宽的ECS,相信100并发已经卡出了翔。所以,我们考虑设置在50以下:
Ps:当然做好了CDN动静分离的网站可以设置到100+,比如用了七牛CDN的朋友,总之得根据实际情况而定。
阈值只是触发的前提,下面还有一个触发之后的清洗限制,也就是发现并发超过阈值时,云盾对来访的单IP做连接数限制,超过了这个限制就返回503:
原则上,触发清洗阈值之后,单一IP连接数限制得越小越好,但是又不能将正常的访问阻挡在门外。所以这个限制该如何定义还得看实际情况!当然,你可以通过模拟攻击去测试出一个合理的限制值,但是也得考虑一些局域网公用一个公网IP上网的情况(得看网站的受众人群)。
看到这,相信不少用阿里云服务器的朋友已经有所收获吧?再我看来,使用阿里云WAF的作用主要有2个,一个是基础DDoS防护,另一就是隐藏网站真实IP。当你的网站经常被攻击,而云盾都无法完全清洗时,我们还可以在本文的基础上再套上一层百度云加速,平常不被攻击时,百度云加速设置回源,关闭加速即可,具体做法我就不多说了,看图即懂:
这种方案的网站访问模式如下:
用户浏览器 → 域名解析 → 百度云加速节点(缓存开启时) → 阿里云盾节点 → 源服务器
当然,这个方案只适用于百度云加速3.0尝鲜版,地址:http://.su.baidu.com/ ,感兴趣的自己去研究下吧!就写这么多,洗洗睡。
最新补充:提了好几次工单,才弄清楚云盾中的DDoS和WAF是2个不同的功能,看来是我理解错了!最后纠正下,DDoS中的DD/CC防护和WAF设置并无关系,也就是你不设置WAF的CNAME也没关系,只要开启了DDoS防护就可以了!所以本文中的部分描述是不到位的,但是必须说明的是,参考本文开启WAF之后,确实可以实现隐藏真实IP的妙用!强烈建议使用!