目录
一、DDOS 是什么?
二、DDoS的危害
三、常见的DOS攻击
四.DDoS的防范
一、DDOS 是什么?
DoS为Denial of Service的简称,意思是拒绝服务。DoS攻击是一种使被攻击者无法正常提供服务的攻击
来解释一下,DDOS 是什么。
举例来说,我开了一家餐厅,正常情况下,最多可以容纳30个人同时进餐。你直接走进餐厅,找一张桌子坐下点餐,马上就可以吃到东西。
很不幸,我得罪了一个流氓。他派出300个人同时涌进餐厅。这些人看上去跟正常的顾客一样,每个都说"赶快上餐"。但是,餐厅的容量只有30个人,根本不可能同时满足这么多的点餐需求,加上他们把门口都堵死了,里三层外三层,正常用餐的客人根本进不来,实际上就把餐厅瘫痪了。
这就是 DDOS 攻击,它在短时间内发起大量请求,耗尽服务器的资源,无法响应正常的访问,造成网站实质下线。
DDOS 里面的 DOS 是 denial of service(停止服务)的缩写,表示这种攻击的目的,就是使得服务中断。最前面的那个 D 是 distributed (分布式),表示攻击不是来自一个地方,而是来自四面八方,因此更难防。你关了前门,他从后门进来;你关了后门,他从窗口跳起来。
二、DDoS的危害
当服务器被DDos攻击时,一般会出现以下现象:
被攻击主机上有大量等待的TCP连接;
网络中充斥着大量的无用的数据包;
受害主机无法正常和外界通讯;
受害主机无法处理所有正常请求;严重时会造成系统死机。
对于用户来说,在常见的现象就是网站无法访问。
三、常见的DOS攻击
1.LAND攻击
Local Area Network Denial attack,局域网拒绝服务攻击。攻击者构造了一个TCP SYN数据包,包中的源地址和目的地址都为被攻击主机的地址。被攻击的主机收到之后,就会给自己地址发一个SYN+ACK,接着又会给自己地址发一个ACK,创建了一个空连接并一直等待,直到这个连接超时。如果攻击者发送了大量的这种数据包,就会把被攻击主机的连接占满。
2.SYN Flooding攻击
攻击者使用伪造的源地址去向被攻击主机发送SYN握手请求,被被攻击主机返回一个SYN+ACK,但是因为源地址是不存在的,所以收不到接下来的ACK消息,连接不会正常建立,会等待一段时间之后超时。如果攻击者发送了大量的这种SYN请求,就会导致被攻击主机创建了大量的TCB队列,导致其它正常请求无法建立。
3.Smurf攻击
攻击者伪造成被攻击主机的IP向其它不同的主机发送ICMP请求,收到ICMP请求的这些主机就会把请求全部到返回给被攻击主机,导致其资源占满。
四.DDoS的防范
为了对抗 DDoS攻击,你需要对攻击时发生了什么有一个清楚的理解。简单来讲,DDoS 攻击可以通过利用服务器上的漏洞,或者消耗服务器上的资源(例如 内存、硬盘等等)来达到目的。
一般来说,可以用以下办法防范:
1、如果可以识别出攻击源,如机器IP等,可以在防火墙服务器上放置一份 ACL(访问控制列表) 来阻断这些来自这些 IP 的访问。
2、对于带宽消耗型攻击,最有效的办法那就是增加带宽。
3、提高服务器的服务能力,增加负载均衡,多地部署等。
4、优化资源使用提高 web server 的负载能力。例如,使用 apache 可以安装 apachebooster 插件,该插件与 varnish 和 nginx 集成,可以应对突增的流量和内存占用。
5、使用高可扩展性的 DNS 设备来保护针对 DNS 的 DDOS 攻击。可以考虑购买 Cloudfair 的商业解决方案,它可以提供针对 DNS 或 TCP/IP3 到7层的 DDOS 攻击保护。
6、启用路由器或防火墙的反IP欺骗功能。
7、付费,使用第三方的服务来保护你的网站。
8、监控网络和 web 的流量。时刻观察流量变化
9、保护好 DNS 避免 DNS 放大攻击。
10.更多措施可以看文章DDOS 攻击的防范教程 —— 阮一峰 - 掘金