天天看点

个人网站或APP遭遇到DDOS攻击怎么办?

之所以写这篇文章,是因为笔者网站遭到DDOS攻击,从遭遇到的那一刻直到最后恢复,心情复杂,感觉凉凉,真的有坐以待毙的感觉。

背景

首先说一下背景,笔者做了一个影视站,爱美剧tv,这个网站已经存在四年多了,为什么说存在而不是运营呢,因为笔者以前工作很忙,基本就上了一个爬虫,写一个简单的展示页,为爱好美剧的朋友提供看美剧的便利。今年笔者因为疫情丢了工作,左思右想还没有想到好的出路,就想既然有这个网站,那么就深入做一下吧,看看能不能养活自己。在笔者几周的努力下,流量逐渐上升,形势看来一片大好,也许能收点广告费赚点饭钱,然后DDoS就来了...

上两张图:

个人网站或APP遭遇到DDOS攻击怎么办?
个人网站或APP遭遇到DDOS攻击怎么办?

笔者收到报警,就感觉不妙,虽然当时对DDoS是什么的概念还是很模糊,但是对这个的厉害还是有所耳闻,没想到我发生在自己身上,笔者就是一个小站啊。赶紧去登录阿里云服务器,结果...上不去了,因为被限流了,收到报警一分钟就不到,我这么迅速的反应,也上不去了,上不去就没办法处理了。第二张图是之后截的...

困惑

因为进不了服务器,就马上去阿里云上提工单,希望阿里云能帮助解决。也希望能登录服务器。因为之前也遭遇过一次攻击,我进到nginx看access.log,把从菲律宾过来的ip全部deny,然后就相安无事了。但是这次,阿里云解释,我进入了黑洞,直接被限流了,根据登录不上去,也没办法解决,让我购买一台同区域的服务器,然后从内网连接到主机看看是什么问题。

我对这个建议其实是不太满意的,我理解云商理解帮助我解决问题,而不是仅仅提个建议,然后解决的费用还让我来付,而且这个方法也解决不了问题,我登录上去看了也没用啊。但是当时想解决问题,还是购买了一台流量服务器进入主机,想通过nginx配置deny的方法,但是已经进入黑洞了,我从主机上面啥都看不到。我从整个事情事后来看,天量流量进入到机房到我的目标主机时,已经被阿里云或电信商限流了,我当然啥也看不到了。应该是保护了机房,但是限制了我的主机。

DDOS是什么

分布式拒绝服务攻击可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用,分布式拒绝服务攻击已经出现了很多次,导致很多的大型网站都出现了无法进行操作的情况,这样不仅仅会影响用户的正常使用,同时造成的经济损失也是非常巨大的。----来自于百度百科

对于我来说,简单来说瞬间巨量流量直接访问本机,然后被阿里云或电信运营商放到黑洞去了,从外面访问不了。

经过

遇到这种攻击怎么解决呢,本次被攻击,我实际上相当于等死,没有任何办法,一开始阿里云给出的办法就是买DDoS的高防,但是价格太贵了,三个月五万多,相当于一年二十多万,这对于个人来说,从各方面来说是挺难承受的。

而且一旦受到攻击,就被放到黑洞里去,笔者毫无办法登录。一旦进入黑洞,理论上就要300分钟后解封,意味着只要有竞争对手看你不爽,对你发动DDoS攻击,对于个人站或app来说,基本就完蛋了。因为那有用户一天两天或连续几天登录不了还会选择继续使用呢,没用用户,那么网站自然就没有意义了。

攻击了五个小时之后,攻击者终于停手了,网站恢复正常。

但是下次呢,怎么办?笔者不能坐以待毙啊,开始学习分析了解怎么防范DDoS.

如何防范DDoS

从理论上说,DDoS基本防不了,因为瞬间巨大的流量进入,如果不在网络层防护,主机肯定就崩溃了;现在我们都用云,机房我们也控制不了,云商为了保护自己,检测到危机马上就把你的主机断开了,你也无能为力了。

本次,我受到了每秒35G流量的冲击,可以想像如何来防呢,基本在当时是防不了。但是可以做一些预案。

我只针对流量攻击性的DDoS讲讲防范的方法。

DDoS是多种攻击的总称,如果你受到七层协议的攻击,如果你还可以登录主机,不防用我之前的方法,用nginx把流量deny.

如果四层协议攻击,那么在应用层做什么也没太大作用。即使你操作iptables,但是你的主机在云商,云商为了保护自己,也会把你的主机断开,所以通过iptables,防火墙,web服务来应对,对于放在云商那边的机器是很难操作的,这条路也不通。

那么有没有办法呢,当然有,本质就是大量带宽来消耗这些流量攻击。

1.简单粗暴的方法,买云商的DDoS高防,或其它厂商的高防,但是这个价格还是挺贵的,对于刚起步的业务,如果盈利模式不是特别清晰,还是慎用,虽然花了钱买到了保护,但是本身就没赚到钱,意义是什么呢?

2.自己扩充流量带宽,其实就是DDoS高防的本质,云商因为有带宽是富余的,可以使用带宽来分担流量,那么可以借用这个思路。对于个人来说,可以购买几台云主机,这几台云主机只是网关层或接入层用来分发的,某云商承诺对于单台主机可以保护5G流量的攻击,那么可以用一台云主机向其它主机分发流量。因为攻击者也是有成本的,受到了攻击,可以先备用着,可能这样一年成本在几千元就可以了,这比买高防要划算很多。这个对于直接攻击主机ip的DDoS攻击还是有效果的

3.购买CDN,实际上也是利用CDN的带宽来分担流量,这个成本由各位自己来决定。但是也要保护自己的ip,如果ip被暴露,直接攻击ip,CDN的作用也不大了。

4.换主机,如果是竞争对手已经用各种方法直接查到你的ip,那只能换主机了,然后采用上述的1/2/3的方法来保护。

我的解决方法

对于笔者来说,能用最低的成本,如果是免费的方法能保护主站是最好的办法。

经过我连夜奋战,找到一个解决方法,推出 Cloudflare.

Cloudflare的大名我就不多说了,在这一点上,我只能说,可能国外的云商比国内的云商还是厚道很多的,吃相上不会上来就要吸血,还是能帮就帮,如果要更专业的服务,价格也让你感觉能接受,注意是个人开发者能接受。

当然,我一分钱都没赚到,我还是采用Cloudflare的免费方案。

Cloudflare这个方案的本质就是利用Cloudflare富余的CDN来分担DDoS流量攻击,对于个人来说,他们是尽力来帮助,如果实在超出他们的成本,可能会向你推荐付费方案, pro版大概一个月20美金。

我的做法是把DNS解析托管给Cloudflare,这个不用在Cloudflare再做一次,只要输入域名,Cloudflare帮你自动解析,然后告诉你到域名厂商,简单的操作一下就可以了,对于我来说,就是换dns的解析服务器,我从dnspod换到了cloudflare.

一般二十四小时生效,然后你也不用担心你的暴露,DDoS攻击者直接通过ip攻击你的主机,Cloudflare已经把ip换成它的ip了,相当于对ip做了屏蔽,如下图:

个人网站或APP遭遇到DDOS攻击怎么办?

最初我很担心如果用了Cloudflare,网站的访问速度会不会受影响,目前还好,Cloudflare也给了具体的指标,见下图:

个人网站或APP遭遇到DDOS攻击怎么办?

这是目前我的解决办法,可能我经济压力不大时会考虑买高防之类的,但是对于现在业务不清晰,还处于探索期的我来说,目前还是先用Cloudflare.

继续阅读