怎样保护CDN节点来应对DDOS攻击

来源:互联网 发布:淘宝网网页无法访问 编辑:程序博客网 时间:2024/05/16 12:34

使用CDN将有助于防御DDoS攻击。 CDN节点可以组建成一个大规模的流量负载集群,因此它能够处理的突发流量远远高于网站本身的源站服务器。此外,一些好的CDN服务商如Cloudflare往往拥有经验丰富的工作人员,技术和流程,并对DDoS攻击的缓解做了更充分的准备。


然而,在CDN后面所保护的服务器,一般叫做CDN的源站,需要时它能为CDN提供内容服务。当然攻击者可能穿透源服务器,比如CC攻击,那么CDN将无法从源站取回内容了,因此您的最终用户就不能被提供内容服务。


在这篇文章中,我列出两种选择来保护你的CDN后面的源站。你的目的是只应答从CDN处传来的接收(允许)请求。来自别的第三方的请求被阻止。

IP速率限制

保护源站服务器的一种方式是做IP速率限制:在定的时间内从一个IP地址的请求数只允许X次。这些限制不会作用于CDN,因为一个CDN会从一个小数量的IP地址做许多有效的请求,而且你愿意把所有这些请求都允许经过。

白名单

另一种有效的方法是只允许请求来自于你的CDN白名单。在理论上,这应该很有效,但在实践中很难见效。你可以添加白名单的IP地址或请求头中的一些独特的标识符。


选项​​A:白名单IP地址

IP地址白名单所面临的挑战是,你需要总是有IP地址的所有CDN边缘服务器,这可能hit你的节点。这是注定要失败的。因为许多的CDN不会给你的IP列表,即使他们给你,当他们添加新的IP地址时也不能完整做到全部通知你更新IP列表。


请求头中添加唯一白名单标识符

这个想法很简单:CDN在发送请求时加入一些独特的标示符,您可以在CDN节点利用它来做识别,并允许请求。你需要询问你的CDN提供商关于它的正确性,以便确定对于你这是否这是一个可行的选项。但是,即使这样,也不能完全确定。因为在节点请求头可以自由设定。如果他们知道你使用的特定CDN,并且知道在节点该CDN的识别规则,他们可以很容易地伪装成功。


选项​​B:投递起源主机

这是一个简单的伎俩,这也是最好的解决方案。创建一些随机的,长的字母数字字符集作为子域,。例如:205ck07023nckhfsh92485.example.com。这样,此主机名将只知道这台CDN,那么DNS提供商的所有者能猜这些到吗?是的,但可能性极小。

简单的在请求白名单HOST头中添加主机名,你就大功告成了。

原创粉丝点击