当前位置: 首页 > 工具软件 > mod_evasive > 使用案例 >

centos Apcache 防DDOS攻击mod_evasive安装配置

单于煌
2023-12-01
今天服务器受到严重的DDOS攻击,导致远程控制几乎都无法进去,系统基本死机,从网络上找到关于APACHE的防DDOS工具,参考之后发现无法安装,转载过来后做了一些实验和修改。

下面给出使用了Apache的防模块mod_evasive,具体安装配置如下:

一、下载模块

--------需要提前安装apxs - Apache 扩展工具
yum  install httpd-devel

------进入自己的安装盘位置
cd /usr/local/src

wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz 
tar xzvf mod_evasive_1.10.1.tar.gz 
cd mod_evasive

二、安装模块
1、对于Apache 1.x 请用下面的编译方法;

apxs -iac mod_evasive.c

2、对于Apache 2.x 可以用下面的办法;
apxs -cia mod_evasive20.c

    最后出现
    #############################################################
    Libraries have been installed in:
    /usr/local/apache/modules

    If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool,

and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following:

    - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution

    - add LIBDIR to the `LD_RUN_PATH' environment variable  during linking
    - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
    - have your system administrator add LIBDIR to `/etc/ld.so.conf'

    See any operating system documentation about shared libraries for  more information, such as the ld(1) and ld.so(8) manual

pages.
    ----------------------------------------------------------------------
    chmod 755 /usr/local/apache/modules/mod_evasive20.so
    [activating module `evasive20' in /usr/local/apache/conf/httpd.conf]
    [root@localhost mod_evasive]#

    ##############################################################
    表示已经编译写入了apache模块, 查看httpd.conf文件中已经自动添加了计算机
    LoadModule evasive20_module modules/mod_evasive20.so

    至此,完成了mod_evasive的安装,重启apache服务后,它就开始工作了,这个时候您如果不作任何别的设置,它也可以使用默认配置为您提

供良好的防攻击能力,当然,您也可以自己进行一些参数的定制配置,添加如下参数:

    <IfModule mod_evasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 5
    DOSSiteCount 50
    DOSPageInterval 2
    DOSSiteInterval 2
    DOSBlockingPeriod 10
    </IfModule>

    参数简单说明:
    DOSHashTableSize 3097 记录和存放黑名单的哈西表大小,如果服务器访问量很大,可以加大该值
    DOSPageCount 5 同一个页面在同一时间内可以被统一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在

DosPageInterval参数中设置。
    DOSSiteCount 50 同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。
    DOSPageInterval 2 设置DOSPageCount中时间长度标准,默认值为1。
    DOSSiteInterval 2 设置DOSSiteCount中时间长度标准。

    DOSBlockingPeriod 10 被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。

    其他可选参数:
    DOSEmailNotify  abc@qq.com 设置受到攻击时接收攻击信息提示的邮箱地址。

    DOSSystemCommand “su – someuser -c ‘/sbin/… %s …’” 受到攻击时Apache运行用户执行的系统命令
    DOSLogDir “/var/lock/mod_dosevasive” 攻击日志存放目录/var/lock/mod_dosevasive 一般就可以存放到/tmp目录

三、测试

在mod_evasive_1.10.1.tar.gz解压目录下面有个测试脚本,是用perl写的,如果可以看下一下结果,就表示该模块安装成功。

[root@Centos6 ~] # chmod 755 test.pl
./test.pl
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

这个时候,可以到你的/var/log/mod_evasive目录下面发现有一个日志文件,同时你的邮箱也会收到该报警信息。

 类似资料: