下载一个mod_evasive的tar包
# cd /usr/local/src/tarbag/# 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 -C ../software
添加该模块要先安装Apache,
Apache版本为2.X:
#/usr/local/apache1.X/bin/apxs -i -c /usr/local/src/software/mod_evasive/mod_evasive20.c
接着将生成的镜像导入类库
#echo "/usr/local/apache/modules" >> /etc/ld.so.conf
保存
#ldconfig
然后
编辑httpd.conf文件
# vi /usr/local/apache/conf/httpd.conf
先将加载模块写入
LoadModule evasive20_module /usr/local/apache/modules/mod_evasive20.so
接着
Apache版本为2.X :
添加
<IfModule mod_evasive20.c> DOSHashTableSize 3097 //记录和存放黑名单的哈西表大小,如果服务器访问量很大,可以加大该值
DOSPageCount 2 //同一个页面在同一时间内可以被同一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置。 DOSSiteCount 50 //同一个用户在同一个网站内可以同时打开的访问数,一个时间的数值在DOSSiteInterval中设置。
DOSPageInterval 1 //设置DOSPageCount中时间长度标准,默认值为1。
DOSSiteInterval 1 //设置DOSSiteCount中时间长度标准。
DOSBlockingPeriod 10 //被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。
</IfModule>
mod_evasive其他可选参数:
DOSEmailNotify
[email protected] 设置受到攻击时接收攻击信息提示的邮箱地址。
DOSSystemCommand “su - someuser -c ‘/sbin/… %s …’” 受到攻击时Apache运行用户执行的系统命令
DOSLogDir “/var/lock/mod_dosevasive” 攻击日志存放目录,BSD上默认是 /tmp
倘若不知道以上文本该写在那个区域,则新建一个名为mod_evasive.conf的文件:
# vi /etc/mod_evasive.conf
写入并保存
在httpd.conf文件中Include即可
# vi /usr/local/apache/conf/httpd.conf
在末尾加入
Include /etc/mod_evasive.conf
注:在添加mod_disk_cache时也可用相同的方法
测试
进入Apache主页,并刷新,查看结果