服务器遭受到DDOS攻击,可以说防不胜防,
但是作为apache服务器,可以安装一些模块一定程度上减缓DDOS的攻击
==================================================================
首先要下载 mod_evasive_1.10.1.tar.gz,在文章最后我会给出下载地址。 现在我登陆到服务器,准备把 mod_evasive_1.10.1.tar.gz 传送到服务器上
#wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
进行解压:
# tar zxvf mod_evasive_1.10.1.tar.gz
mod_evasive/ mod_evasive/.cvsignore mod_evasive/LICENSE mod_evasive/Makefile.tmpl mod_evasive/README mod_evasive/mod_evasive.c mod_evasive/mod_evasive20.c mod_evasive/mod_evasiveNSAPI.c mod_evasive/test.pl mod_evasive/CHANGELOG
我们先不进行安装, 解压出来 有一个文件 test.pl ,是用Perl语言写的,是测试服务器用的, 我们先来测试 一下服务器(在没有安装减缓DDOS的情况)
进入到目录
# cd mod_evasive # chmod 755 test.pl
下面进行测试 [root@zhouda mod_evasive]# ./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 200 OK HTTP/1.1 200 OK
…… 下面省略,都可以正常访问,没有任何防御DDOS攻击
==================================================================
好了,下面开始 安装,安装后 我们还会进行测试 ,前后进行对比。
2.安装 (我这里使用apache是 2.2.3)
# cd mod_evasive
注意你自己服务器apache的安装目录和位置,路径可能和我的不一样
# /usr/sbin/apxs -i -a -c mod_evasive20.c
编译成功。
模块就自动编译安装进 /usr/lib/httpd/modules
自动在httpd.conf里添加一行
LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.so
3.配置
# vi /etc/httpd/conf.d/mod_evasive20.c.conf
在配置文件最后面, 添加下面内容
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 5 DOSSiteCount 100 DOSPageInterval 2 DOSSiteInterval 2 DOSBlockingPeriod 3600 DOSEmailNotify admin@admin.com DOSLogDir "/var/log/mod_evasive" </IfModule>
保存退出,
新建目录: mkdir /var/log/mod_evasive 重新启动apache,配置完毕。
[root@zhouda conf.d]# /etc/init.d/httpd restart
4.再次测试
./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 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
可以看到已经有一些访问出现 403 Forbidden, 说明配置成功,
一定情况下抵挡防御DDOS的攻击, 当然如果是服务器机器承受不了,或者 带宽不够, DDOS还是比较难防的,不过我们抵挡一部分算一部分。^-^
====================================================================
最后说明配置文件的一些参数代表意思,自己看说明:
DOSHashTableSize 3097 #记录和存放黑名单表大小,如果服务器访问量很大,可以加大该值.
DOSPageCount 5 #同一个页面在同一时间内可以被同一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置.
DOSSiteCount 100 #同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。
DOSPageInterval 2 #设置DOSPageCount中计算时间的长度标准,默认值为1。
DOSSiteInterval 2 设置DOSSiteCount中计算访问时间的长度标准,默认值为1。
DOSBlockingPeriod 3600 #被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。
DOSEmailNotify admin@admin.com #设置受到攻击时接收攻击信息提示的邮箱地址。
DOSLogDir "/var/log/mod_evasive #攻击日志存放目录,注意这个目录的权限,是运行apache程序的用户。
最后下载地址:http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz