一、DDOS攻击的原理
全程:distributed denial of service.分布式拒绝服务攻击。
官方解释:
在某一时刻(极小的一个时间区间)向要攻击的目标服务器发起大量的请求,耗尽目标服务器的可用资源,造成用户无法访问该服务器。也就是无法提供服务了,而且由于这种发起大量请求必然不太可能是单一的,是来自多方位的,所以是分布式的。
开发过web或者进行过压力测试的人应该都用过压力测试工具,我们可以简单搭个Tomcat的web服务来感受一下,用Jmeter可以简单实现在短期发送大量请求的要求,同时打开一个命令行页面我们可以看到它会提示线程池满了。这就是说这个web服务器资源满了。
二、DDOS分类
种类有很多,这边只提及几种比较常见的。
1.通过让对方的网络过载,来阻扰网络通讯。
2.阻断用户访问服务。
3.阻断服务与用户的连接。
4.就是上面说的,通过大量请求让服务器超负荷。最常见,也叫CC攻击。
三、防范措施
其实原则上,这种攻击是没办法完全避免的,只能尽可能的防范。
1.备份服务器
我认为最怂的方法,但确实最有效的。不多解释。
2.更换更大的带宽
治标不治本的做法,但也是一种有效的方法。
3.拦截过滤请求。
以web为例,比较常见的DDOS都是一个集群同时发送请求的。
比较显然的做法就是一个了
A.过滤IP字段
这个方法不难,比较常见的方法就是从两个层面去拦截。
从硬件服务器的防火墙可以设置。
同样的从web服务器的nginx,Apache这种服务器也可以配置拒绝访问的IP地址。
当然这里必须要说的就是,从后者层面去拦截的方式是有代价的,付出的资源较大。
4.CDN方法
通俗解释就是主要针对那种只提供静态资源的服务。
做法就是将静态内容分发给不同的服务器,类似于上面提到的扩展带宽。
其实,还是有方法去绕过这个转发去获取IP的。