linux服务器并webbench攻击解决方案

 首先我来说一下这个被攻击的网站的大概部署状况.这个网站主要是nginx+mysql+php,有两台服务器分别放了web和数据库,web只对外开启了80端口操作系统是centos,而数据库服务器则在内网,攻击者的手段其实很简单,用webbench网站压力测试工具发送大量的请求到服务器,之前的时候发送每一个请求之后数据库就会相应,然后读取内容最终显示,造成数据库和web之间大量的交换数据,甚至导致mysql达到连接数上限,请求被拒绝,而且攻击者时间挺多的,他不停地换浮动ip,因此直接用防火墙封锁ip没意义.

刚开始我的做法是,用php取得攻击者的agent头,判断是不是webbench来访,如果是就die掉,不在请求数据库,确实挺有效,数据库不会再超出限制了,但是对方频繁的发送请求过来,导致网络带宽被严重消耗,看来得想想其他办法,最终想到了一个解决方法且实际测试发现可行,因此分享给大家,其实我的做法原理很简单:用php取得用户agent头判断是否是webbench来源,如果是的话就在服务器上写一个shell文件,这个文件的内容就是封锁IP的规则,

然后再用chmod函数修改一下这个文件让其可执行,再用cron服务读取这个文件执行,把ip封锁掉,整个过程全部自动化完成不需要人为干预,另外在封锁的时候给我发一封email通知我有个倒霉蛋被干掉了,这样就行了.

具体实现代码如下:

IF(isSet($_SERVER['HTTP_USER_AGENT']) And Trim($_SERVER['HTTP_USER_AGENT'])!='') {

    $_SERVER['HTTP_USER_AGENT']=StrToLower($_SERVER['HTTP_USER_AGENT']);

    IF(StriStr($_SERVER['HTTP_USER_AGENT'],'webbench')!==False) {

        $p='/home/www/webbench.sh';

        $_SERVER['REMOTE_ADDR']=isSet($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'unknow';

        <span style="color: #ff0000;">File_Put_Contents($p,"#!/bin/bashniptables -I INPUT -s {$_SERVER['REMOTE_ADDR']} -j DROP;n",LOCK_EX);

</span>     Chmod($p,0755);

        chown($p,'www');

        <span style="color: #ff0000;">Function sMail($to,$tit,$msg) {

            IF(Filter_var($to,FILTER_VALIDATE_EMAIL)==''){

                throw new Exception('邮箱地址错误!');

            }

            $tit='=?UTF-8?B?'.Base64_Encode($tit).'?=';

            $msg = str_replace("n.","n..",$msg);      //Windows如果在一行开头发现一个句号则会被删掉,要避免此问题将单个句号替换成两个句号

            Return Mail($to,$tit,$msg,'From:No-reply@adm.bossadm.com.tw'."n".'Content-Type:text/html;charset=utf-8');

        }

        sMail('see7di@gmail.com','【WebBench又开始了t】!',date('Y-m-d H:i:s',time())." {$_SERVER['REMOTE_ADDR']}");</span>

        Header('Location:http://127.0.0.1');

        Die();

    }

}

后来我又做了一次调整,把发email的部份写入了shell文件内,不再用php发email,因為那会灌爆你的信箱,把上边的代码修改成:

IF(isSet($_SERVER['HTTP_USER_AGENT']) And Trim($_SERVER['HTTP_USER_AGENT'])!='') {

    $_SERVER['HTTP_USER_AGENT']=StrToLower($_SERVER['HTTP_USER_AGENT']);

    IF(StriStr($_SERVER['HTTP_USER_AGENT'],'webbench')!==False) {

        $p='/home/www/webbench.sh';

        $_SERVER['REMOTE_ADDR']=isSet($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'unknow';

        File_Put_Contents($p,"#!/bin/bashniptables -I INPUT -s {$_SERVER['REMOTE_ADDR']} -j DROP;necho "{$_SERVER['REMOTE_ADDR']} - `date`" | mail -s "WebBench-www.downcc.com" see7di@gmail.comn",LOCK_EX);

        Chmod($p,0755);

        chown($p,'www');

        Header('Location:http://127.0.0.1');

        Die();

    }

}

时间: 2024-12-09 05:13:25

linux服务器并webbench攻击解决方案的相关文章

文件上传到linux服务器 文件名为乱码

问题描述 我在windows系统 用fileupload上传包含中文文件名的文件,上传到linux服务器后文件名为乱码.我用乱码字符串做 GBK转UTF-8可以变为正常原本想在上传后先用程序重命名一遍UTF-8转GBK的文件名,但是出现了另外一种乱码.请教知道这个问题的解决方法或原因,谢谢.另外我用程序创建一个文件也会出现这种乱码. 问题补充:asyty 写道 解决方案 你的shell的编码字符集呢?为啥乱码是你想要的.....可以先把shell设置成utf-8再看看 你java传上去的竟然还是

分级防御对Linux服务器的攻击

随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案. 随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案. 对Linux服务器攻击的定义是:攻击是一种旨在妨碍.损害.削弱.破坏Linux服务器安全的未授权行为.攻击的

防范4种级别攻击来确保Linux服务器

    以下的文章主要描述的是防范四种级别攻击确保Linux服务器安全,如果你对防范四种级别攻击确保Linux服务器安全心存好奇的话,以下的文章将会揭开它的神秘面纱.随着Linux企业应用的不断扩展. 有大量的网络服务器都在使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注. 这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案. 随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注,这里根据

确保Linux服务器安全 防范四种级别攻击_Linux

随着Linux企业应用的不断扩展. 有大量的网络服务器都在使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注. 这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案. 随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案. 对Linux服务器攻击的定义是:攻击是一种旨在妨碍.损害.削弱.破坏Linux服务器安全的未授权

Fairware勒索软件频繁攻击Linux服务器 大家赶紧做好备份

近期,Linux服务器管理员们报告了多次攻击,这些攻击导致服务器的web文件夹消失.网站无限期关闭.在BleepingComputer网站的论坛上,众多帖子证实了大量这样的攻击. 据一个受害者说,此类攻击最可能是SSH暴力攻击造成的入侵.在每一次这样的攻击中,攻击者都会删除web文件夹并留下一个read_me文件,里面的链接指向一个贴有勒索信的Pastebin网站页面.攻击者在勒索信中索取2个比特币来交换文件. 什么是勒索软件 勒索软件通常会将用户系统上文档.邮件.数据库.源代码.图片.压缩文件

TCP服务器“拒绝服务攻击” 解决方案

    说这是一个完全的解决方案,其实有点夸大了,但这个方案确实可以缓解TCP服务器遭受"拒绝服务攻击"时表现出的脆弱性.    当服务器以Tcp的方式提供服务时,客户端通过tcp连接上服务器.这时,恶意的程序,也可以通过tcp连接我们的服务器,如果恶意的程序采用循环与我们的服务器建立成千上万的连接,并在每个连接上都发送恶意的数据包给服务器,慢慢就会导致服务器资源耗尽而崩溃!    为了增强Tcp服务器在遭受"拒绝服务攻击"时的稳定性,我采用的方案是这样的: (1)

简略讲解对Linux服务器的四种入侵级别

随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案. 对Linux服务器攻击的定义是:攻击是一种旨在妨碍.损害.削弱.破坏Linux服务器安全的未授权行为.攻击的范围可以从服务拒绝直至完全危害和破坏Linux服务器.对Linux服务器攻击有许多种类,本文从攻击深度的角度说明,我们把攻击分为四级. 攻击级别一:服务拒绝攻击(DoS) 由于DoS攻击工具的泛滥

linux服务器的攻防安全介绍_unix linux

随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案.  对Linux服务器攻击的定义是:攻击是一种旨在妨碍.损害.削弱.破坏Linux服务器安全的未授权行为.攻击的范围可以从服务拒绝直至完全危害和破坏Linux服务器.对Linux服务器攻击有许多种类,本文从攻击深度的角度说明,我们把攻击分为四级.  攻击级别一:服务拒绝攻击(DoS)  由于DoS攻击工具

Linux 服务器安全技巧_Linux

毋庸置疑,对于系统管理员,提高服务器的安全性是最重要的事情之一.因此,也就有了许多针对这个话题而生的文章.博客和论坛帖子. 一台服务器由大量功能各异的部件组成,这一点使得很难根据每个人的需求去提供定制的解决方案.这篇文章尽可能涵盖一些有所裨益的小技巧来帮助管理员保证服务器和用户安全. 有一些常识是每个系统管理员都应该烂熟于心的,所以下面的几点在本文将不会提及: 务必保证系统是最新的 经常更换密码 - 使用数字.字母和非字母的符号组合 给予用户最小的权限,满足他们日常使用所需即可 只安装那些真正需