因为近期很多腐竹都遭到了DDoS的攻击,本人也不例外。为了帮助广大公益服腐竹,本人总结了一些个人经验,希望能对大家有所帮助。
注:本文重点在于“如何经济廉价的解决DDoS攻击所带来的影响”,所以各大厂商高昂的DDoS防御服务不在本文的介绍范围内。
本文集中整理“方法列表”,而具体提及的一些方法的具体使用如果不懂请自行搜索。没有提到的一般都是网上都能搜索到的。
由于云环境多样复杂,本文提到的方法不一定对你都有帮助,请自行甄别有用的信息,灵活的去应对DDoS攻击。
要点该要:
- 网站免费Cloudflare CDN服务
- 高防内穿节点
- 大厂服务器异地容灾
- 家庭动态公网IP
- 软件防火墙
- 高防服务器
- DNS均衡负载
认清DDoS本质
对于DDoS攻击的专业解释网上有很多,这里就不过多赘述了。通俗的来讲,DDoS就是由多台主机通过发送大流量的数据包,让你的服务器造成网络堵塞,从而达到让你的服务器无法正常访问的目的。
这是我在知乎上看到的一个比方:假如你的服务器是一个餐厅,一共能承载50个人,这时你的竞争对手突然拍出了几千号人,一拥而上来到你的餐厅,占着座位不点菜,坐一会就走,然后又来了一个同样的人,这样想来你餐厅吃饭的人就没法正常就餐了。
这是一个很通俗的解释,从中可以抓到这几个要点:
- DDoS攻击具有时效性。因为是占用带宽导致的网络堵塞,等待攻击结束后服务器自然也可以恢复正常。
- DDoS需要具有一定的量才有效,如果只是低流量的攻击,无法造成实际影响。而这种“量”的说法是相对的。
- DDoS并非无成本攻击。如果是小量的DDoS攻击,或许可以经过各种途径获取。但是如果想要打出百G级别的攻击,很多情况下并不是“免费”就可以搞定的。需要耗费一定的“资源”。而这种资源的表现有很多种,如:钱,服务器,肉鸡等。
DDoS的认知
当你明白这三点后,你可能会意识到这是一场“资源战”。比的,就是你的资源和攻击者的资源,谁更有力,就是谁的胜利。
这就是为什么说“攻击量的说法是相对的”。如果他攻击的量对你的服务没有正常影响,那么就可以约等于“没有遭受到攻击”,无非就是餐厅多了几个闲的没事进来转悠的人而已。
而“DDoS的攻击具有时效性”和“DDoS攻击并非无成本”这两点,注定攻击者无法进行长时间的攻击。而这个时间有多长,要依据情况来判定。要清楚:攻击者的目的是让你的服务无法正常访问,所以比到最后,如果你的服务依旧正常运行,而他的资源告捷,就是你的胜利。
所以DDoS的攻击/防御很有可能会变成长时间的拉锯战,要做好心理准备,活到最后的,才是赢家。
使用Cloudflare进行网站防护。
Cloudflare是一个十分知名的网络安全服务商。你应该在不少国内外网站都见过他的身影。本文依旧不会进行Cloudflare的对接教程说明,如果不懂请自行搜索。
如果你是没有很多钱的个人站长,却遭受了DDoS攻击,那么Cloudflare的免费套餐是你的不二之选。
使用Cloudflare免费套餐的优点:
- 永久免费,不限流量,Cloudflare的免费套餐可以说是独一无二的。不要小瞧了这点,这是迄今为止所有的国内CDN厂商都无法做到的。
- 防火墙自定义规则,流量拦截,五秒盾,CC防护。这些很多功能放在国内CDN厂商/软件防御都是付费的功能,Cloudflare免费套餐一条龙备齐,一个不差。
- 可以隐藏你的服务器源IP地址,让攻击者溯源攻击变得更加困难。
- 如果你的服务器是国外被墙IP,国内无法正常访问,那么通过套Cloudflare免费套餐你的服务网站即可正常访问。
使用Cloudflare免费套餐的缺点:
- Cloudflare免费套餐只能对接网站服务,如果你是开Minecraft服务器,游戏服务,内网穿透等服务,是无法使用Cloudflare免费服务的。付费服务似乎支持25565端口的使用,不过价格和门槛原因本文不再讨论,有兴趣可以自己搜索。
- 由于Cloudflare是国外服务商,你的服务器又是国内服务器,所以不可避免的会大幅增加访问延迟,虽然可以通过自选IP等方式缓解,但速度肯定不如你国内服务器来的快。
- Cloudflare免费套餐的防护并非绝对的,攻击者如果极其针对你,可以通过各种手段进行溯源,然后直接攻击源站IP,这样你的Cloudflare就跟没套没两样。
使用高防内穿节点进行防护
如果说Cloudflare免费套餐只能对接网站服务,那么这个方法(内穿:内网穿透,反代:反向代理)可能是对已有服务器的其他服务的腐竹是不二之选。
这个方法支持的服务有很多,包括但不限于建站,Minecraft服务器,游戏服务器,个人网盘等服务。
使用反代后,玩家都将通过反代服务器进行连接,再由反代服务器发送数据到你的服务器。同理,攻击者的攻击流量也会被打到反代服务器上,并不会直接攻击到你的服务器,由于反代服务器拥有高防节点IP,所以对方的攻击无法对反代服务器造成影响,自然对你的服务也就没有影响。
使用本方法切忌:不要再将源站IP公开!,这样攻击者可以直接攻击你的源站IP,套了和每套没什么区别。
本方法的优点:
- 反代可隐藏源站IP,转移攻击者攻击对象,从而达到减轻服务器负担的效果。
- 节省自行另购高防IP/高防服务器的成本,部分内穿服务并不会很昂贵,是很有性价比的选择。
本方法的缺点:
- 反代后所有连接服务都将显示反代服务器的IP,无法直接查询访问者的真实IP,具有一定的安全隐患。
- 受限于内穿分配带宽,原本的带宽在实际使用体验中会有缩水。
- 本方法需要花费一定资金才能实行。尽管也有免费的内穿服务,但是否合适还待商定。所以是否“经济廉价”,取决于你是怎么用的。
大厂服务器“异地容灾”快速恢复。
这里的“大厂”指的是阿里云,腾讯云这种大规模,规范化的云服务厂家,其他云可参考是否有类似功能来判定本方法能否使用。
很多大厂服务器的用户都有一个这种烦恼:服务器不经打。一被DDoS攻击就会被拉入黑洞,长时间无法正常访问。因为大厂默认机器防御只有5Gbps,超出防御流量的攻击就会被拉入黑洞,黑洞属于“大厂的自行防卫措施”(简单来讲就是节省成本),时常2小时到1天不等。然而大厂提供的DDoS攻击防护套餐又贵的离谱,显然不是个人腐竹可以支撑的起的。而且往往一些服务器是无法自行接触黑洞状态的(如轻量应用服务器),黑洞状态下上述的两种方法又无法使用。那想要快速经济的解决黑洞问题,可以参考如下流程:
- 服务器创建快照备份。快照备份会备份你云服务器内的所有数据,如果有数据丢失等情况使用备份快照可以轻易恢复。
将备份快照创建为自定义镜像。我们都知道云服务器在选购时会让用户选择镜像。而通过快照创建的自定义镜像包含了你备份的所有数据。 - 创建小时计费服务器,并选择自定义镜像。这样你新创建的服务器具有你被拉入黑洞的服务器的所有数据,开服即用,十分方便。而小时计费服务器是作为你的常用服务器的应急“异地容灾”,在常用服务器恢复正常后将数据导回常用服务器,再将小时计费服务器销毁即可。
- 按黑洞时间1天,小时计费服务器0.025元/时 来计算,一天下来的费用也就0.025*24=0.6元。即可做到快速从黑洞状态恢复。
这个方法在很多DDoS攻击应对相关文章中并没有提及,也很容易被人忽略。这也是本人大厂服务器被DDoS后通过各路道友的指点,最终发现的解决方法。其特点就是快速且经济廉价的从黑洞状态恢复。
“异地容灾”往往需要用到多台服务器同时工作,而部分个人腐竹可能无法支撑起长时间多台服务器的费用开销,所以我认为将小时计费服务器作为常用服务器黑洞状态时的“异地容灾”服务器,是个很好的方法。
当然,并不是小时计费服务器就抗打了,所以要结合上述两种方法,进行源站IP隐藏,才能起到防护作用。简单来说,这个方法可以让你的服务器快速“活”起来,但是没法保证他一会又“死”掉。不过死掉了也很简单,释放掉重新再来一台就是了(笑)
家庭动态公网IP
这个方法具有一定的门槛和危险性,因为未知的情况太多,无法保证对你家的网络会造成什么影响,请慎重选择。
为什么说家庭动态公网IP可以防御DDoS?因为不像云服务器,上层还有云厂商的网关监控流量,会把你拉入黑洞。家庭公网IP上层就直接是网络服务运营商,没有黑洞这一说,被打后撑死网络阻塞,不需要多久即可自动恢复正常。手动进行重新拨号跟没事人一样()原理类似于弹性公网IP。这是我个人目前认为防御DDoS最低成本的选择,公网IP是可以免费申请的,路由器重新拨号也只是动动手的事。但是据说过大流量的攻击会让服务商关闭你的公网,甚至可能造成范围内断网,所以还是谨慎使用为好。
如果想要用这个方法,你首先要确认你家的带宽服务商是哪家。电信大概率可以通过拨打客服电话申请到公网IP,联通看脸,移动大内网移不动,从网络架构来讲就没法给你公网,基本就无望了。
如果不知道自己家里有没有公网IP,可通过如下方法验证:
- 通过ipip.net查询自己的外网IP地址,注意是外网IP,不是内网。
- 路由器使用DMZ映射指向你的局域网内的电脑IP。
- 被映射电脑开放防火墙,随便搭建一个外网服务(MC服务器,网站一类的都可以)
- 通过查询到的外网IP访问服务,访问成功即可表明外网IP已开通。
- 内网DMZ映射设备其实已经可以作为一个“服务器”看待,这也是诸多家里云运营的基础条件。其最大优点就在于没有上级网关会莫名其妙的给你拉黑洞,尽管被DDoS依旧会造成短时间的无法访问,但是这种状态过不了多久就会自动恢复,心放宽点说就约等于没打。
这个方案也是本人长期使用的方案,亲历证明小流量攻击(100G以内)是可以视作无效的。但是也不排除出现上述弊端的可能性,所以本人不是非常推荐使用。
软件防火墙
软件防火墙也不为失是一种可以选择的防御措施。个人常用的软件防火墙为安全狗,安全狗支持Windows Server/linux等多种服务器系统,可以在一定程度上拦截已攻击的流量进行清洗,从而达到加速缓解DDoS攻击带来网络阻塞的效果。
当然,这个方法并不是一个有效的防护DDoS的措施,如果你的服务器是大厂服务器,在受到攻击后会立刻被拉入黑洞,服务器根本没有多余的时间去清理流量就已经死掉了),所以这个方案适合搭配“家庭动态IP”去结合使用,可能会更加有效。
高防服务器
这应该是最简单粗暴的解决方式了:直接购买高防服务器,从物理层面可以抵挡一定程度的DDoS流量攻击。就像之前打比方的一样,DDoS是一场资源战,既然你拍出了千人来阻塞,那我就把餐厅扩建到可以承载万人,也就相当于没被打)
但是和第二条高防内穿节点同理,这点是否“经济廉价”,取决于你如何选择。网上的IDC什么样的,什么价格的都有,要考虑到防御,稳定性,安全性,性能还有性价比等因素综合考虑。
DNS均衡负载
这个功能需要用到域名,并且需要你的DNS服务器支持不同线路的解析,看情况还需要用到多台服务器或者高防内穿节点,可以视作第二条和第五条的进阶版。
通过DNS域名的线路设置,你可以使同一域名下不同线路解析到不同的服务器/节点,以此达到负载均衡的作用。如阿里的DNS,免费版即可设置默认/中国电信/中国联通/中国移动/中国教育网/境外等线路。如果有条件可以每个线路设置不同的服务器,那样对应线路的访问就会被分配到你解析的对应服务器上,即可做到负载均衡的效果。
另一个好处是,通过DNS均衡负载,即使是很多免费提供但是带宽极小的内穿节点,只要申请多个节点,并使用DNS均衡负载,即可实现理论上的“带宽叠加”的效果,对于服务器节点也是同理。
这样做可以分流来自不同线路的DDoS攻击,不过相对的成本要更加昂贵一些。如dnspod免费版并不支持线路解析,需要升级才可进行。但是升级版本的dnspod解析更加细致,细致到每个省每个市都能给你分配一条解析线路出来。如何使用,请各位自行定夺。
同样,使用这个方法不要透露源站IP,只有保护源站IP不被泄露,不要裸奔,才是DDoS低成本防御的第一步。
本篇博客内容来自于SMGoro Blog,原帖地址: https://blog.smgoro.top/archives/305/
如本文侵犯到了您的合法权益,请联系站长冬天(Mail: inwinter04@163.com)删除。