Solaris 下 apache 2.X 防 DDOS 攻击 (mod_evasive)

来源:互联网 发布:中文词频分析软件 编辑:程序博客网 时间:2024/04/30 01:14

一、下载 mod_evasive

cd /tmp

wget   http://www.sfr-fresh.com/unix/privat/mod_evasive_1.10.1.tar.gz/

 

 

二、安装 mod_evasive

tar vxzf mod_evasive_1.10.1.tar.gz

cd mod_evasive

#/usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c

 

三、配置 mod_evasive

在编译安装完成后,会自动插入一行到Apache 配置文件中,对于Apache 2.x 版本中,应该在其配置文件中有类似下面的一行;

LoadModule evasive20_module   lib/httpd/modules/mod_evasive20.so

然后我们再修改 Apache 的配置文件,配置文件名为httpd.conf;

在httpd.conf(Apache v2.x)中加入:

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

修改完成后,我们要重启Apache服务器;

在Solaris 9中,Apache 2.x的重启,我们要用到

#/.../httpd restart

 

 

四、对mod_evasive测试验证

防DDOS的模块做好后,我们可以要验证,可以用Apache 自带的ab工具,系统默认安装在/usr/local/apache2/bin目录中;比如;

#/usr/local/apache2/bin -n 1000 -c 50 http://www.google.com:80/
注:上面的例子的意思是,如果您的服务器是google的WEB服务器,我们要发送数据请求包,总共1000个,每次并发50个;

另外一个测试工具就是mod_evasive的解压包的目录中,有个test.pl ,你可以修改IP地址,然后用

#perl test.pl
是不是有效果,请根据 ab工具或 测试脚本出来的结果来查看;

因为我们编译mod_evasive时,用的是默认配置,所以日志被存放在/tmp目录中。如果有DDOS攻击,会在/tmp产生日志。日志的文件是以 dos-开头的。

 

五、mod_evasive 的高级配置;

如果想更改一些适合自己的参数,有些必要的参数,并不是通过配置文件修改就一下起作用的,我们要修改源码包中的mod_evasive20.c (Apache 2.x用之);

#define DEFAULT_HASH_TBL_SIZE   3097ul   // Default hash table size
#define DEFAULT_PAGE_COUNT      2           // Default maximum page hit count per interval
#define DEFAULT_SITE_COUNT      50          // Default maximum site hit count per interval
#define DEFAULT_PAGE_INTERVAL   1          // Default 1 Second page interval
#define DEFAULT_SITE_INTERVAL   1           // Default 1 Second site interval
#define DEFAULT_BLOCKING_PERIOD 10      // Default for Detected IPs; blocked for 10 seconds
#define DEFAULT_LOG_DIR         "/tmp"      // Default temp directory
比如我们改改其中的数字,根据英文很容易理解。比如修改日志存放目录,就把/tmp改成别的目录。如果您不知道放在哪好,还是用默认的吧;

如果您在这里更改了参数,不要忘记修改Apache 配置文件中关于mod_evasive 的参数;

如果您想加入一些其它的参数,请查阅源码包中的README,里面有详细说明,大多来说没太大的必要……

这个文件相当重要,如果您想更改某些设置,就要修改这个文件…… 

六、进阶
mod_evasive 还是有点用的,安装也不费力气。如果你需要的时候,会想到这个模块的 …… mod_evasive 是否有更高级的用法,也不是在这篇文章里能说的清楚的。如果不懂怎么办?请查看源码包中的README。

原创粉丝点击