Skip to main content

tplogin.cn首页 > 新闻资讯 >

一次大规模网站攻击防御报告

2012-08-07 14:05 浏览:

笔者所在的网站在某一个晚上出现大范围的攻击,据事后统计而知,这次用了攻击方用了大约50万并发持续攻击网站,一看网站应用服务器的负载很高,怪不得很慢呢。接下来开始分析和解决问题。

一、 攻击描述

年初开始,网站应用服务器网卡流量普遍蹿升到100M以上,其中几台服务器网卡流量更是达到了204Mbps。随之带来的就是访问速度逐渐变慢,网络带宽数次被用完。

二、 攻击分析

1、 既然是网卡流出100M以上,那么一定有不正常的请求地址过来,接着服务器才会响应并发送到客户端。由此判断是请求的地址有异常

应用服务器受到攻击时的网卡流量图

应用服务器受到攻击时的网卡流量图

网站应用服务器受到攻击时的负载现象

网站应用服务器受到攻击时的负载现象

2、 分析web日志,可以发现很多IP同时在一秒钟对的多个地址发送GET请求,且返回的地址的流量在200k-300k之间。试想一下,返回一个php地址,怎么会有200多k的流量,那么就一定是恶意的请求。看下面url中的 232347,这个232347,就是返回给客户端的流量。

123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum-116-20.html HTTP/1.0" "200" 232347 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"
123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum-1402-1.html HTTP/1.0" "200" 253872 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"
123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum-63-1.html HTTP/1.0" "200" 118163 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"
123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum-1342-1.html HTTP/1.0" "200" 235327 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"
123.232.102.228 - - [07/Mar/2012:14:24:23 +0800] "GET /forum.php?mod=forumdisplay&fid=58 HTTP/1.0" "200" 283377 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)" "-"

3、攻击主要针对php应用,php并发跟nginx差了好几个数量级。这次攻击,平均每台php 每秒最高承受200个并发,绝大部分的针对列表页,直接对数据库造成影响。

四、解决方案

1、防火墙封IP(不推荐)

用封IP的方式来阻止攻击源IP,是一种方法,起初,我是采用了这种方法,但是这样封IP,还需要到日志中去搜索。比较繁琐,而且效果不明现。

2、Nginx被动防御(推荐)

还记得日志中的相同的user-agent的没有,nginx这次利用了user-agent来防御攻击。

在的nginx的配置文档的上面加入了

if ( $http_user_agent ~* "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.0\;\ .NET\ CLR\ 1.1.4322\)" )
 {
     return 444;
 }

重启nginx后,nginx 在日志中检测到该类user-agent时,就会返回444 http 状态码,既请求失败。这样设置后,各应用服务器负载恢复到正常,网卡流量正常。

218.5.73.245 - - [07/Mar/2012:10:53:12 +0800] "GET /forum-222-1.html HTTP/1.0" 444 0 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"
218.5.73.245 - - [07/Mar/2012:10:53:12 +0800] "GET /forum-222-1.html HTTP/1.0" 444 0 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"
218.5.73.245 - - [07/Mar/2012:10:53:12 +0800] "GET /forum-222-1.html HTTP/1.0" 444 0 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"

Nginx 处理攻击ip的结果

五、总结

1、本次nginx 在防小型ddos或者cc有自己的特色:处理请求高效,消耗资源极低。

缺点:需要分析日志,找到规律,比如:user-agent等等。

相关文章

QQ邮箱退出后下一次登录要再扫码吗

2022-02-26 11:47:57    浏览: 0

路由器多久关闭一次?来自宽带师傅的告诫,WiFi终于不是龟速了

2022-01-22 07:11:01    浏览: 100

无线路由器要多久关闭一次?

2022-01-06 08:50:38    浏览: 0

家里的路由器多久重启一次合适

2021-08-12 01:29:30    浏览: 90

家里的路由器每几分钟就会掉一次线是什么原因?

2021-08-02 04:37:15    浏览: 145