• 就要自媒体-微信公众平台文章推荐
  • 手机访问
  • 加入收藏
  • 如何有效防止ddos攻击(一文带你深入了解DDoS攻击类型)

    自媒体 自媒体

    需要说明的是,我对 DDOS 并不精通,从没想过自己会成为攻击目标。攻击发生以后,很多素昧平生的朋友提供了各种帮助和建议,让我学到了很多东西。这里记录的就是对我最有帮助的一些解决方案。 (原文来自www.9y9y.com)

    一、DDOS 是什么?

    首先,我来解释一下,DDOS 是什么。

    (原创文章www.9y9y.com)

    举例来说,我开了一家餐厅,正常情况下,最多可以容纳30个人同时进餐。你直接走进餐厅,找一张桌子坐下点餐,马上就可以吃到东西。 (本文来自www.9y9y.com)

    很不幸,我得罪了一个流氓。他派出300个人同时涌进餐厅。这些人看上去跟正常的顾客一样,每个都说"赶快上餐"。但是,餐厅的容量只有30个人,根本不可能同时满足这么多的点餐需求,加上他们把门口都堵死了,里三层外三层,正常用餐的客人根本进不来,实际上就把餐厅瘫痪了。

    这就是 DDOS 攻击,它在短时间内发起大量请求,耗尽服务器的资源,无法响应正常的访问,造成网站实质下线。

    DDOS 里面的 DOS 是 denial of service(停止服务)的缩写,表示这种攻击的目的,就是使得服务中断。最前面的那个 D 是 distributed (分布式),表示攻击不是来自一个地方,而是来自四面八方,因此更难防。你关了前门,他从后门进来;你关了后门,他从窗口跳起来。

    二、DDOS 的种类

    DDOS 不是一种攻击,而是一大类攻击的总称。它有几十种类型,新的攻击方法还在不断发明出来。网站运行的各个环节,都可以是攻击目标。只要把一个环节攻破,使得整个流程跑不起来,就达到了瘫痪服务的目的。

    其中,比较常见的一种攻击是 cc 攻击。它就是简单粗暴地送来大量正常的请求,超出服务器的最大承受量,导致宕机。我遭遇的就是 cc 攻击,最多的时候全世界大概20多个 IP 地址轮流发出请求,每个地址的请求量在每秒200次左右。我看访问日志的时候,就觉得那些请求像洪水一样涌来,一眨眼就是一大堆,几分钟的时间,日志文件的体积就大了100MB。

    本文以下的内容都是针对 cc 攻击。

    三、HTTP 请求的拦截

    如果恶意请求有特征,对付起来很简单:直接拦截它就行了。

    HTTP 请求的特征一般有两种:IP 地址和 User Agent 字段。比如,恶意请求都是从某个 IP 段发出的,那么把这个 IP 段封掉就行了。或者,它们的 User Agent 字段有特征(包含某个特定的词语),那就把带有这个词语的请求拦截。

    拦截可以在三个层次做。

    (1)专用硬件

    Web 服务器的前面可以架设硬件防火墙,专门过滤请求。这种效果最好,但是价格也最贵。

    (2)本机防火墙

    操作系统都带有软件防火墙,Linux 服务器一般使用 iptables。比如,拦截 IP 地址1.2.3.4的请求,可以执行下面的命令。

    iptables 比较复杂,我也不太会用。它对服务器性能有一定影响,也防不住大型攻击。

    (3)Web 服务器

    Web 服务器也可以过滤请求。拦截 IP 地址1.2.3.4,nginx 的写法如下。

    Apache 的写法是在.htaccess文件里面,加上下面一段。

    如果想要更精确的控制(比如自动识别并拦截那些频繁请求的 IP 地址),就要用到 WAF。这里就不详细介绍了,nginx 这方面的设置可以参考如下地址:

    https://www.nginx.com/blog/mitigating-ddos-attacks-with-nginx-and-nginx-plus/

    https://www.nginx.com/blog/rate-limiting-nginx/

    Web 服务器的拦截非常消耗性能,尤其是 Apache。稍微大一点的攻击,这种方法就没用了。

    四、带宽扩容

    上一节的 HTTP 拦截有一个前提,就是请求必须有特征。但是,真正的 DDOS 攻击是没有特征的,它的请求看上去跟正常请求一样,而且来自不同的 IP 地址,所以没法拦截。这就是为什么 DDOS 特别难防的原因。

    当然,这样的 DDOS 攻击的成本不低,普通的网站不会有这种待遇。不过,真要遇到了该怎么办呢,有没有根本性的防范方法呢?

    答案很简单,就是设法把这些请求都消化掉。30个人的餐厅来了300人,那就想办法把餐厅扩大(比如临时再租一个门面,并请一些厨师),让300个人都能坐下,那么就不影响正常的用户了。对于网站来说,就是在短时间内急剧扩容,提供几倍或几十倍的带宽,顶住大流量的请求。这就是为什么云服务商可以提供防护产品,因为他们有大量冗余带宽,可以用来消化 DDOS 攻击。

    一个朋友传授了一个方法,给我留下深刻印象。某云服务商承诺,每个主机保 5G 流量以下的攻击,他们就一口气买了5个。网站架设在其中一个主机上面,但是不暴露给用户,其他主机都是镜像,用来面对用户,DNS 会把访问量均匀分配到这四台镜像服务器。一旦出现攻击,这种架构就可以防住 20G 的流量,如果有更大的攻击,那就买更多的临时主机,不断扩容镜像。

    五、CDN

    CDN 指的是网站的静态内容分发到多个服务器,用户就近访问,提高速度。因此,CDN 也是带宽扩容的一种方法,可以用来防御 DDOS 攻击。

    网站内容存放在源服务器,CDN 上面是内容的缓存。用户只允许访问 CDN,如果内容不在 CDN 上,CDN 再向源服务器发出请求。这样的话,只要 CDN 够大,就可以抵御很大的攻击。不过,这种方法有一个前提,网站的大部分内容必须可以静态缓存。对于动态内容为主的网站(比如论坛),就要想别的办法,尽量减少用户对动态数据的请求。

    上一节提到的镜像服务器,本质就是自己搭建一个微型 CDN。各大云服务商提供的高防 IP,背后也是这样做的:网站域名指向高防 IP,它提供一个缓冲层,清洗流量,并对源服务器的内容进行缓存。

    这里有一个关键点,一旦上了 CDN,千万不要泄露源服务器的 IP 地址,否则攻击者可以绕过 CDN 直接攻击源服务器,前面的努力都白费。搜一下"绕过 CDN 获取真实 IP 地址",你就会知道国内的黑产行业有多猖獗。

    cloudflare 是一个免费 CDN 服务,并提供防火墙,高度推荐。我还要感谢 v2ex.com 的站长 @livid 热情提供帮助,我现在用的就是他们的 CDN 产品。


    本文转载自“阮一峰的网络日志”,由“编码之道”编辑整理。

    自媒体微信号:9y9y扫描二维码关注公众号
    爱八卦,爱爆料。
    小编推荐
    1. NO.1 个人创业经历(一个真实的创业故事)

      「正文」 最近这几年,创业公司特别多,我自己也一路从创业公司中走来。 不可否认,正是因为这么多创业公司,才为社会提供了诸多的就业机会和

    2. NO.2 北京公交车站车祸 大货车与公交车追尾致多人受伤现场狼藉

      北京公交车站车祸 大货车与公交车追尾致多人受伤现场狼藉:【北京公交车站车祸大货车与公交车追尾致多人受伤现场狼藉】据网友爆料,今早北京房

    3. NO.3 印尼清真寺遇袭袭击者被当场打死 一周之内已发生2起类似事件

      印度尼西亚首都雅加达一清真寺6月30日晚发生袭击事件。两名警察受伤,一名袭击者被警方打死。 印尼 媒体 援引该国国家警察总局发言人塞提约瓦

    4. NO.4 情侣为当网红竟表演书挡子弹当场身亡 把命都搭上也是太拼了

      美国明尼苏达州的一对情侣,19岁的女孩蒙娜丽莎(Monalisa Perez)和她22岁的男友佩德罗(Pedro Ruiz III)为了成为网红,最近几个星期一直在视频网站youtube上

    5. NO.5 巴铁投资公司华赢凯来涉非法集资 32人被刑拘

      中新网7月2日电 据北京市公安局东城分局官方微博 消息 ,针对有投资人举报北京华赢凯来资产管理有限公司从事非法集资活动的情况,北京市公安局

    6. NO.6 被同学暴打拍裸照 初中女生失联后遭打父亲报了三次警见到女儿

      副标题#e# 被同学暴打拍裸照 初中女生失联后遭打父亲报了三次警见到女儿时惊呆了 【被同学暴打拍裸照】6月28号晚上,小琴被2个女同学约了出去,

    7. NO.7 13岁男孩玩手游1月充值近5万元 本是孩子“救命钱”

      副标题#e# 看到支付宝的一长串账单,李先生头都大了。今年5月27日至6月24日,他的小儿子成成(化名)用他的支付宝给游戏充值了近5万元,最大一笔

    8. NO.8 杭州55岁老板为掩人耳目安排小三与哥哥结婚

      杭州55岁老板为掩人耳目安排小三与哥哥结婚。 这段时间,各种荒唐 新闻 出现的可不少。这不,前两天,杭州的一家法院就遇上了件奇葩事儿。 欲

    Copyright2018.就要自媒体资讯站,让大家及时掌握各行各业第一手资讯新闻!