服务器遭受到DDOS攻击,可以说防不胜防,
但是作为apache服务器,可以安装一些模块一定程度上减缓DDOS的攻击
至于想了解DDOS详细信息的朋友,可以到网上搜索一下
=================================
首先要下载 mod_evasive_1.10.1.tar.gz
现在我登陆到服务器,准备把 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@localhost 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.8的版本)
# cd mod_evasive
注意你自己服务器apache的安装目录和位置,路径可能和我的不一样
# /usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c
编译成功。
模块就自动编译安装进 /usr/local/apache2/modules,
自动在httpd.conf里添加
LoadModule evasive20_module modules/mod_evasive20.so
3.配置
# vi /etc/httpd.conf
在配置文件最后面, 添加下面内容
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 3600
DOSEmailNotify [email protected]
DOSLogDir "/var/log/mod_evasive"
</IfModule>
保存退出,
新建目录:
mkdir /var/log/mod_evasive
重新启动apache2,配置完毕。
[root@localhost mod_evasive]# /usr/local/apache2/bin/apachectl stop
[root@localhost mod_evasive]# /usr/local/apache2/bin/apachectl start
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 [email protected]
#设置受到攻击时接收攻击信息提示的邮箱地址。
DOSLogDir "/var/log/mod_evasive"
#攻击日志存放目录,注意这个目录的权限,是运行apache程序的用户。