成功解决个人网站被webbench压力测试攻击的问题—webbench成功突破iptables防火墙

Posted by

2015年2月10日下午,文武双全个人网站又被人攻击了,这次是使用webbench1.5压力测试工具发动的攻击。前后持续了一个多小时吧,看上去不像是故意帮我测试服务器的。倒像是用工具,持续不断的靠压测占满带宽,导致网站无法访问的攻击。

来自美国单一ip的不间断webbench压力测试攻击

此次攻击的ip,是来自于美国的单一ip:198.2.218.18。此ip在nginx里留下了,23716次攻击记录,每秒钟的并发链接在58次。如图所示:

攻击的地址跟之前的也不一样,这一次主要攻击的是:

https://www.jicker.cn/category/emarkting  这个页面实际上是不存在的,应该返回404状态码的,但是文武双全的日志里竟然显示200;

https://www.jicker.cn/?s=a 这实际上是个查询页面,利用站内搜索查询所有包含“a”的页面,短期内大量的并发查询实际上对mysql是一个严峻的考验;

文武双全个人网站被webbench压测攻击的日志
文武双全个人网站被webbench压测攻击的日志

服务器被webbench压测下的状态

1,CPU没有被占满,nginx+php—fpm抗住压力;

个人网站被webbench攻击下的内存占用并不高
个人网站被webbench攻击下的内存占用并不高

2,内存占用低于50%,此次使用阿里云的VNC,可以登录服务器,没有发生内存溢出的行为;

3,带宽被占满,我3M的带宽,阿里云监控显示平均带宽占用为3.2M;

文武双全解决webbench攻击的方法

最简单的方法,是把ip用iptables封掉,但是攻击者只要换个ip依然可以用这种方法攻击你。于是我采取了另外一种方法,禁止webbench压力测试。

在网站配置文件中,加入如下代码:

if ($http_user_agent ~ “WebBench”) {
set $block_user_agents 1;
}

锁掉所有来自webbench的用户访问,解决问题了呢。当然,也可以用于屏蔽掉ApacheBench等压力测试工具的这种恶意攻击。

webbench成功突破iptables防火墙

攻击者可能是知道文武双全使用了iptables和nginx防CC攻击的module,来抵御DDOS和CC攻击。但是这次非常牛叉的是,虽然看似不起眼的只用了一个ip来攻击我,却能够成功的让iptables和nginx防CC攻击的module都失效了。

网络上查询了一番,我又学习到新的知识。原来webbench发送的是get命令,不管是cdn还是linux的防火墙,都不会把他当做ddos或者cc攻击来看待。所以他们都起不到防御作用。

事实证明,仅仅依靠iptables和nginx的module也并不是特别靠谱。能够穿透他们的攻击手段,还是非常的多的,还需要继续加强学习啊!

2 comments

  1. 博主你好,我的wordpress昨天也遭受到了webbench的攻击,请问你的代码是放在wordpress的哪个文件里?谢谢!

  2. 请问网站配置文件指的是什么文件

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据