最近,同事在首都在线的一个BBS小网站被DDOS攻击了。服务器放在首都在线香港,没有备案(因为BBS现在即使在国内做备案,个人也几乎不可能通过),直接被首都在线给放IP黑洞里,而且默认是48小时,开工单过去,也得封24小时。技术反馈是18Gb/s的流量,不封是不行的。有什么方法合理的使用云主机厂商的资源,防注这DDOS吗?
换IP地址
第一个想到的是更换首都在线云主机的IP地址,但是对方是对着我们的域名打的,换IP地址不能解决问题。换了一打,新IP马上就被黑洞了。
投诉无门
因为没有备案,所以也无从向公安相关部门投诉的。
用阿里云云主机做代理
阿里云是标称提供5G/s的DDOS流量的大云主机提供商,从国内访问阿里云香港也比较快,所以,我的第一个想法当然是用阿里云去试一下。
方法是在阿里云香港申请一台按时间收费流量收费的低配置T5 ubuntu云主机,上面安装nginx 做proxy代理到首都在线源站,费用大概在 0.11元/h,非常的便宜,但是可以享受到5G/s的防DDOS。
但是5G/s并不能扛住,对方是18G/s的流量 ,打个十几分钟,就会被阿里云放黑洞里云了。但释放时间要快很多,第一次1个小时,后面会慢慢增加到5小时,但比首都在线解封快多,而且还提供了流量图及攻击cap日志,这个服务是首都在线这种小云主机商没有的。从CAP日志分析来看,所有的攻击都是udp 攻击 ,攻击的类型是udp反射攻击,DNS/NTP/MEMCAHED都有,但大多是MEMCACHED攻击流量 ,网上查了一下,MEMCACHED udp 反射攻击最高可以进行6万倍的流量放大,也就是说我有10M带宽和足够的 MEMCACHED udp反射源,理论上就可以打出600G/s的流量,如果是合理的放大1万倍,就可以打出100G/s的流量。大家可以看一下相关的介绍
下图是当时攻击时,阿里云提供的流量图:
下图是阿里云提供的攻击流量CAP记录文件分析情况图:
从图来看,基本上都是发向udp 11211(memcached)的流量
知道了主要攻击方式,向阿里云提工单,要求不要把我的代理IP放黑洞,是否可以在电信运营商层面封相应的udp 包,回答当然是不行的。多提交几次工单, 阿里云高防IP运营专员来电话了,当然是建议我们买他们1个月2.8W元的高防IP。问为什么这么贵?回答是DDOS流量防护是要上层IDC机房配合的,电信、联通、移动为什么配合你,当然是要多收很多钱了。建了9个高防机房,这些都是成本。当然,对一个没有任何收入的小BBS网站来说,这是不可能的事情。花点小钱也就算了,花大钱,没门。
用DNS来分散流量
就这样,相应的DDOS攻击一直没有停,1~2个小时从黑洞解封,过会又被打入黑洞。于是所信用DNS来做个双IP的解析,域名的一个IP指向自己,另一个指向阿里云的官网的IP。也就是把近一半的DDOS流量导向阿里云。这样,延长了被打放黑洞的时间,同时耗费攻击都的流量,同时可能有近一半运气好的用户可以访问到我们的网站。但还是会被扔进黑洞,问题没有解决。
用阿里云的DCDN来彻底解决 MEMCACHED DRDOS 攻击
阿里云DCDN全名是全站加速,它能加速静态内容,也能加速动态内容,而且支持HTTPS,收费可以通过流量包的方式,按流量(HTTP静态)及访问次数(HTTPS静态/动态)收费。目前阿里云已经支持全球CDN,也就是说,如果你选择全球CDN,你的域名是不用备案的。而CDN天然是防UDP DOS攻击的,因为它从来不会接受UDP的连接,也不会按UDP的流量来计费。买好流量包,配置好全站加速站点,改DNS,问题解决。
注: 这个方案只能防UDP DRDOS(这种MEMCACHED UDP DRDOS因为可以放大万倍,所以可以打出高流量 ,但对CDN无效)。但对于对着你应用层过来的TCP DDOS以及CC攻击效果会有一点,但会让你多花很多钱。比如HTTPS 按访问次数收费的话。所以,要通过攻击数据如阿里云提供的CAP文件,来分析DDOS的攻击类型,然后合理的利用云资源来解决。有些方案,只要合理利用,还是花不了很多钱的。
最后,上本文的重点,使用国外的方案CloudFlare
CloudFlare 国外的CloudFlare是一个可以免费使用的DNS+CDN+防DDOS的一体解决方案。我使用下来,它有如下的特点 :
- 支持DNS,可以把你的域名的NS 记录指向他们的DNS,解析非常快。
- 使用灵活,可以在他们的DNS上设置使用他们的CDN,还是不使用,直接访问源站。使用他们的DNS,从源站切换到Cloudflare CDN的时间是2分钟,在遇到像上面的UDP DRDOS攻击时,非常有用。
- 他们的CDN服务非常不错,到国内的延时是国外所有CDN中最好的,而且免费。
- 支持HTTPS。CDN的 HTTPS在阿里云上可是要按访问次数收费的,这里不用,免费。而且你的证书只要源站上部署就可以了,不用在CloudFlare CDN 上部署。如果你的站点在国外,没有备案,用CloudFlare的CDN是个好的选择
- 自带防御DDOS攻击的能力,自带Firewall 策略,这些在阿里云上都是非常昂贵的服务,而CloudFlare上是免费的。
在NS记录切换到Cloudflare后,可以在2分钟内切换一个网站到CloudFlare CDN 上,CloudFlare CDN 可以高效防御DDOS(免费)。在遇到DDOS攻击时,可以2分钟切换到CDN上,这样使用非常方便高效。CloudFlare在国内访问的效果可以接受,用http://tool.chinaz.com/站长工具测试,整个BBS首页访问在2~3秒左右,虽然不快,但要比首都在线香港要好很多。
支持HTTPS,源站如果是HTTPS,不用上传证书到CloudFlare就可以实现HTTPS CDN ,而且免费
可以根据Cookie,ASnum,IP,Country等,在CDN上设置防火墙,有效抵御DDOS攻击