偶然的机会,白嫖到了3个月的Cloudfalre CDN的企业版(Enterperise),当时申请的是企业版的10个域名代理,也有幸获得了管理员的权限,让我可以更加深入的体验CF顶级套餐的各项功能。???
响应速度(Eesponding Speed)
IP分配(IP Distribution)
CF Enterperise的客服给我的回复是会比Pro和Binuess更好的ip段,也就是独享的ip。但是其实因为CF有了自选ip的功能,就算你是Free套餐也可以享受这些相对于中国大陆延迟更低的ip。但后续了解到上传旧版的SSL证书可以获得独享的ip,但因为旧版证书早就不再提供,所以就没有尝试。我个人是比较倾向于自选ip,因为可以自由更换抽风的ip,从而不断地优化网络。
网站缓存(Site Cache)
CF的网站边缘节点缓存是运用的Anycast(任播)技术,部署在世界各地。全球224个地区(除中国外)都可以基本在30ms以内访问网站。CF所有的套餐都是这个速度。但企业版可以在网站备案后享受使用与CF官方合作的国内百度云节点。
这里要介绍的是页面规则中的自定义缓存。页面缓存中有许多的选项,这里就不一一介绍,按照自己的需求进行选择永远是最佳的配置
。
对于强制缓存来说,缓存级别(Cache Level)是最好的选择的,这是我是一个正则比配页面下的所有路径进行的缓存。如果你的网站有动态页面的话一定要绕过,不然大概率报错
此外还对边缘TTL进行了缓存,这样子用户在每次访问的时候就不需要再对DNS服务器进行一次解析,而是直接通过CF节点解析。如果你的网站有不需要任何防御的页面,可以选择禁用安全性。这样子就不会拦截正常的请求,避免损失客户。
Page Rule Cache Level
Railgun(源服务器与节点加速)
企业版允许打开Railgun源服务器加速,提高网站源服务器与CF节点的连接速度,这个对于速度的提升还是很明显的。开启的方法CF官网也有说明文档
网站安全防御(Website Security Defense)
CF的另一个核心竞争力就是网站防御,每个套餐的防御所提供的防御种类以及规则限额不同,这也是这些套餐的最大区别。CF的节点防御DDoS的能力没的说,无视任何UDP,SYN,ACK流量,所以主要的方面就是防止来源于HTTP层的攻击,也就是所谓的CC攻击。
防火墙规则(Firewall Rules)
首先对于CF企业版,可以设置1000个防火墙规则,而pro版却限制到了5个。所以相对来说可自定义化的空间也就很大。
我简单设置了3个规则
- 第一个是CF最出名的验证码(Captcha),一般来说,这个验证码可以抵御所有类型的cc攻击,但是在后续的测试中,
有些脚本还是可以绕过。对于此处漏洞,我设置了速率限制(Rate Limit)。
在之后的策略配置中我会详细解释。这里我不选择CF的5秒盾(JS Challenge)是因为此盾只是起到缓存流量的作用,在攻击达到一定规模的时候,并不能有效阻止恶意请求,并且有中国有些地区并不能加载这个基于JS的CF5秒盾。所以我选择了最保险的验证码盾。 - 我是按照地区位置来设置验证码的。因为考虑到我网站有API接口,一部分用户的服务器可能托管在海外,所以一些主流的服务器托管地如:美国,加拿大,香港,台湾,新加坡等我是实行绕过,反之其他地区访问将会被验证码质咨 Edit Firewall Rule 1
- 第二个策略我进行了合并,主要分为3部分
- 第一部分是CF对于浏览器的请求危险值(Threat Score)的进行评分并对危险值大的浏览器请求进行阻止。进过测试,当危险值设置为大且等于1时可以有效地拦截大部分cc脚本的恶意请求。
当然,也有少的原生ip请求会被允许进入。
- 第二部分,我对用户代理(User Agent)等于未找到(undefined)的浏览器请求进行阻止。有些cc脚本并不配备有大量的User Agent,所以再对网站进行cc攻击时,有些代理ip并不能全部使用所配备的代理,所以这个阻止规则也能进行一定的拦截。
- 第三部分 最后一个是对已知的自动程序进行阻止,但是在8月份的时 候,这个规则被更改为了合法机器人爬虫(Known Bots)。所以说这个不是指的恶意请求的机器人,而是搜索引擎的爬虫。当然,如果你不想你的网站被收录的话,可阻止此项。Edit Firewall Rule 2
- 第一部分是CF对于浏览器的请求危险值(Threat Score)的进行评分并对危险值大的浏览器请求进行阻止。进过测试,当危险值设置为大且等于1时可以有效地拦截大部分cc脚本的恶意请求。
除此之外,CF防火墙还提供传入请求匹配字段的多种类规则,比如按照传入请求的ASN,Cookie,主机名,ip地址,引用方,请求方法,URL路径,URL完整进行匹配。
工具(Tool)
速率限制(Rate Limit)
在CF的Free,Pro,Buiness套餐中,提供的前10000个速率限制请求是免费的,但是之后每一个10000个请求都要收取$0.05的费用,如果你的网站长时间被攻击的话,这是很不值得。但是做为企业版用户,CF难得能提供全部免费请求,并且还可以设置从1秒-3600秒任意的时间范围。这个规则本来是用于保护登录界面,防止用户密码被暴力破解。
当然,速率限制对于cc攻击也弥补了验证码盾被绕过的不足,
我设置了全站速率限制,之所以启用这个速率限制是因为再一次攻击中我发现有人攻击我的js路径。所以设置全站速率限制,通过正则进行匹配。对于已经登录的用户,我对登陆后的操作页面进行了绕过,以及对网站的api进行了绕过。如果你的网站加载时会一直刷新js的话,建议再加一条对于js路径更加宽松的设置,这样子会避免很多误封。
区域限制(Zone Lockdown)
这个规则需要Business及以上套餐才能获得,企业版可以获得200个区域限制规则。开启这项规则是因为我发现我的API接口已经被严重泄露,所以询问客服后找到并打开了这个规则。我设置了3个规则,两个网站的后台,一个网站的接口。此规则根据URL路径设置,并限制哪些ip可以访问,未经允许的ip将会被拦截并且记录所访问的路径,这样子可以更方便网站管理员对于泄露的路径或者后台密码进行定期检查,有效增加了网站的安全性,这个规则我感觉是十分使用的。多用与保护管理员后台以及API的接口。
综合分析(Analytics)
WEB流量(Web Traffic)
本人是十分喜欢CF的综合分析(Analytics Overview)的,从宏观的流量请求到微观的每个请求的详细记录,都十分全面。我截取的是整个7月份的流量数据统计,可以清楚地看到的看到总计7.24亿次的访问的主要来源国家地区。总计缓存了6.90亿次的数据。其中有一天受到了262.25M/s≈2千600万次/s的基础HTTP DDOS的攻击,也就是所谓的cc攻击。
包括统计也会统计ip地址,用户代理,请求路径,国家地区的访问量,我也是在某次攻击后查看攻击路径时候发现攻击者抓住了我的js进行了攻击,事后我进行了页面规则(Page Rule)的缓存缓解,在之前的页面缓存中我也有提到。
活动日志(Acticity Log)
活动日记是一个比较微观细节性的统计,从事件编号(RayID),请求方法,HTTP版本,路径,查询字符串,用户代理,ip地址,ASN,国家/地区都会被方统计到,并且所触发的恶意请求的对应规则也会被显示在页面上,这样子可以让你更好的判断是哪个规则有漏洞,或者进行了误判。
套餐价格(Plans)
CF所服务的是全球市场,所以对于不是使用?美元作为交易货币的国家来说价格些许有些偏高。但是对比各大厂商的企业套餐来说,还是比较便宜的
- Free套餐 $ 0 / 月
- Pro套餐 $20 / 月
- Buiness套餐 $200 / 月
- Enterprise套餐 $2000 / 月
官网价格详情Cloudfalre Plans
账户流量总览
在账户到期的前一天,我调出了账户从开始到结束素有的流量数据统计图,进行一个全局的流量分析
账户总共有10个企业版账号,当然主要使用者就1-2个。总共发生了4.97B的请求,使用了215.56TB宽带,缓存了205.65TB宽带,总体缓存率达到了91.52%,这也是CF的核心竞争力节省带宽
,大幅度降低成本,速度也有效提升。CF在全球部署已经超过200多个城市,并且全面使用Anycast任播节点(请求访问响应最快的ip),他们家的视频和游戏托管同样受到很大一部分运营商的青睐。