IT技术互动交流平台

如何防御DOS和DDOS攻击

发布日期:2012-10-08 09:37:02

前一段也许是中秋和国庆的缘故吧,我公司客户网店的生意比较好,在这生意红火的时候,一些人就把持不住了,开始对客户进行威胁,说如果你不给我多少钱的话,我就对你的网站进行攻击,让你做不成生意……

    面对这样的威胁,报警有用么,没有用,因为损失也不是很大,所以公安部门是不会立案的,防止恶意黑客攻击的重任就担在了我们身上。

在开始讲解我们在防御攻击之前先简单的介绍一下DOS和DDOS。

1.DOS

 

DOS攻击是最早出现的,它的攻击方法说白了就是单挑,是比谁的机器性能好、速度快。举个这样的攻击
例子,假如你的机器每秒能够发送10个攻击用的数据包,而被你攻击的机器(性能、网络带宽都是顶尖的)每秒能够接受并处理100攻击数据包,那样的话,你的攻击就什么用处都没有了,而且非常有死机的可能。
要知道,你若是发送这种1VS1的攻击,你的机器的CPU占用率是90%以上的,你的机器要是配置不够高的话,那你就死定了。

2.DDOS

 

正所谓道高一尺,魔高一仗。经过无数次当机,黑客们终于又找到一种新的DOS攻击方法,这就是DDOS攻击。它的原理说白了就是群殴,用好多的机器对目标机器一起发动DOS攻击,但这不是很多黑客一起参与的,这种攻击只是由一名黑客来操作的。这名黑客不是拥有很多机器,他是通过他的机器在网络上占领很多的“肉鸡”,并且控制这些“肉鸡”来发动DDOS攻击,要不然怎么叫做分布式呢。还是刚才的那个例子,你的机器每秒能发送10攻击数据包,而被攻击的机器每秒能够接受100的数据包,这样你的攻击肯定不会起作用,而你再用10台或更多的机器来对被攻击目标的机器进行攻击的话,嘿嘿!结果我就不说了。

 

我给大家举些例子分析一下nginx服务器上的日志

 


 

在这里我稍微分析一下web服务器访问日志的格式,根据自己当时日志格式定义的不同,日志内容是不一样的,但一般都是这样的类型:

记录客户端的IP—记录访问时间与时区—记录请求的url与http协议—记录请求状态,成功是200—记录发送给客户端主体内容的大小—记录客户读取浏览器的相关信息。

再来看一下当时站点被攻击时的日志

 


 

通过日志可以看出它是对一个页面进行不停地访问,并且速度很快,同一个IP也会多次访问,但是我们需要特别关注一下浏览器的信息。

再看一下另一种攻击时的日志

 


 

这种攻击都没有记录浏览器的信息。

对于这两种攻击我们可以在nginx的conf文件里面加入这样的信息

 

if ( $http_user_agent ~* ^$){ 
        return 444; 
 } 
 
 if ( $http_user_agent ~* "Windows 5.1" ) 
 { 
         return 444; 
 } 


如果使用的浏览器为空则返回444,使用的浏览器为Windows 5.1也返回444。

返回值444,是干什么的呢?你知道么?

根据官方文档的介绍“非http标准的返回码444,它可以用来关闭连接”,这样的话他就不会占用我们服务器的任何资源,这三个4真是把访问杀得很彻底啊! www.it165.net

那有的人会问,为什么要封Windows 5.1这种类型的浏览器呢,我给大家说一下我发现的正常日志的浏览器类型都有哪些:compatible; MSIE 6.0;MSIE 8.0;MSIE 9.0;Windows NT 5.1;Windows NT 6.1; Trident/4.0;Trident/5.0;这些东西都是不固定的需要自己慢慢发现。

自己感觉对于攻击要看看日志不要盲目的就去封IP,但并不是说封IP没有用啊!

 

刚才说的都是nginx的,接下来我们谈一谈apache上的攻击。

其实apache服务器自身就有一个模块mod_evasive可以防御DDOS攻击,至于效果么,自己试试就知道了。

    回过头来继续说攻击,其实一般简单的攻击都是对一些小站点小打小闹,大型的攻击人家才不会对小站点下手的,再说大型的攻击靠封IP和修改配置文件压根都不管用的,需要买上万或是上百万的硬件防火墙,所以目前对于我们这些小运维来说也用不到,所以能够简单的应付一下攻击就可以了!!!

     最后还是那句话多看日志,三思而后行。

本文出自 “譕淚らづ寳唄” 博客


Tag标签: DOS   DDOS攻击  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规