尝试接入 cloudflare 抵御清洗 DDOS 攻击

0

尝试抵御DDOS 攻击,攻击迁移博客域名 dns 解析到 Dnspod 国际版,通过域名解析负载均衡设置国内、外使用不同cdn 服务。

最近博客隔几天就被人攻击一次,都被攻击怕了。也不知是不是被谁盯上了,隔几天来一个DDOS攻击,结果 腾讯云的 cdn 一点防御清洗也没有,网站稳定性倒是没什么影响,就完全用 cdn 流量包扛攻击流量。但完全就是任人宰割,我想可能是 cdn 没义务自己掏钱加防护,阻止自己赚 cdn 流量费。

为了解决攻击带来的费用支出,特别研究了把 cdn 迁移到 cloudflare 的方案,cloudflare免费版 也有防御 ddos 的的基础配置。但在国内cloudflare的加速访问确实不行,加速服务是传说中的加慢服务,要想使用国内的百度云节点,据说需要升级付费版。

加钱基本可以解决很多烦恼,但有免费的花费少量时间还是可以折腾一下的。

因为之前分析攻击者 ip 大部分是海外的,好在是针对域名发起的流量攻击,可以考虑在解析的时候把国内和国外域名 dns 解析分开,国外访问的攻击可以分流到 cloudflare 去,国内的攻击比例相对较少,可以考虑先用流量包扛一扛。

研究了一圈实施方案,最后定的是用 dnspod 的的子域名负载均衡, 国内流量走腾讯云 cdn + 境外流量走 cloudflare cdn。

思路弄完就是实际操作了,过程中需要解决一些细节问题。

需要先解决 dnspod 免费版账号功能限制问题。

解决方案是付费升级专业版就好了,但为了省钱,还是考虑研究一下免费方案,改成 dnspod 国际版。

dnspod 国内版免费套餐只能解析一个子域名的负载均衡,只能解析两条。

解决方式是使用 Dnspod 国际版,国际版支持免费账户解析10条子域名的负载均衡记录,后续如果升级个人专业版也比国内版便宜一点。

使用dnspod 国际版的障碍是注册账户需要使用国外手机号,直接没有国内账户注册的入口。(使用 Google voice 号码解决。)

国内访问 dnspod 国际版的后台不太稳定,经常报错,操作体验不是很理想,但多尝试一下还是可以继续用。

使用 dnspod 国际版以后可能腾讯申请ssl 证书自动化会失效,这是后面考虑的问题,现在先尝试缓解被攻击的问题。

通过 dnspod 国际版可以域名把 dns 解析国内国外分开了,如果你只解析一个子域名,完全可以继续用国内版。

另外需要解决的问题就是 cloudflare 免费版的功能限制,cloudflare free 套餐只能使用 ns 解析的方式,跟 dnspod 功能冲突,cloudflare 免费版本的 ns 服务也没有负载均衡。

解决这个cloudflare免费版必须使用 cloudflare ns 解析的问题,可以通过获得 cloudflare 域名 cname的解析来解决。

要想获得cloudflare 的 cname 模式也需要花钱升级专业版。但也能通过 cloudflare 的服务商接口来接入域名来解决,cloudflare 免费版还不支持 cname 解析,通过服务商接口添加的域名会给服务商提供 cname 解析域名,不用修改域名的ns记录到cloudflare服务器。

cloudflare 的服务商可以自己申请权限,也可以用别人已经接入好的服务,我使用的 cdn.wzfou.com 提供的服务直接接入的,再申请合作服务商的权限还需要搭建一套系统,容易越搞越复杂。

准备好了各项设置,在 wzfou 添加 cloudflare 需要用到的域名,然后把原站的 ip 或 cname 地址解析上。

在dnspod 国际版增加域名,并进行相应的解析。dnspod 国际版跟国内版负载均衡设置不太一样,国际版设置是区分中国(国内)和默认(除中国外)。

0

最后一步是在 域名管理后台将 ns 改到 dnspod 国际站的 ns 服务器上。

挂代理和在服务器上简单测试了一下国内、国外访问网站是否正常,看看解析记录是否分开,确认解析生效以后就等着看效果了。

第二天一看,网站又打不开了。看腾讯cdn后台数据,15号早上博客又被攻击到 腾讯云cdn 关站了,这时国外ip访问应该还能继续打开。

腾讯 cdn 触发了新调整的带宽阀值,国内攻击带宽到了 100M 后关站保护。

(后来检查了一下,好像是dnspod 导入的国内cname 记录和新加的 cloudflare cname记录重复了,dns 自动负载了一部分请求到腾讯云cdn。)

0

cloudflare 后台的报表没有腾讯云cdn的快,过了两个小时才有报表出来。

国外流量大部分分流到了cloudflare cdn ,但好像cloudflare 没有中间源缓存,相应的回源请求对服务器压力也挺大。

不过 cloudflare 已经能缓解一部分攻击了。效果还是比较明显,至少过滤了百万次的攻击流量。

cloudflare 是如何缓解ddos 攻击的可以看一下这篇官方发布的文章:

0-3秒缓解DDoS攻击,揭秘Cloudflare在全球边缘的DDoS防护策略
https://zhuanlan.zhihu.com/p/160787423

以下是 cloudflare 相关流量截图,感兴趣的可以参考下。
0

0
0

0