防止Apache遭受DOS攻击
使用mod_evasive模块
通过使用该模块,可以对来自特定IP地址的过多请求进行访问阻塞和解除阻塞的操作。
“机构”
(1)mod_evasive模块会记录将URL请求发送到Apache服务器的IP地址
(2)其后,将测量是否从任一IP地址发送了超出预设容许范围的请求。
(3)如果有超出容许范围的请求,该IP地址的请求将暂时被封锁。
<设定>的汉语本地化版本:
<设置>
当满足以下任一条件时,将其视为Dos攻击,并将访问禁止(403 Forbidden)600秒,并通过电子邮件通知 XXXX@XXXX.com 拒绝的IP地址。
如果在同一页上每两秒发生三次请求,或者在同一网站上每秒发生30次请求,可以满足以上两个条件。
設定文件:/etc/httpd/conf/httpd.conf
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 3
DOSSiteCount 30
DOSPageInterval 2
DOSSiteInterval 1
DOSBlockingPeriod 600
DOSWhitelist 127.0.0.1 192.168.1.*
DOSLogDir “/var/log/mod_evasive”
DOSEmailNotify XXXX@XXXX.com
</IfModule>
通过增大DOSHashTableSize的值,可以增加可以记录的IP地址数量。
<其他>
模块分发网站:
http://www.zdziarski.com/blog/?page_id=442
参考网站:
http://dev.classmethod.jp/cloud/aws/mod_evasive20/
http://blog.livedoor.jp/imura81gt/archives/24866172.html
从安装 mod_evasive 开始进行设置。
解压缩 mod_evasive_1.10.1.tar.gz 文件,指令为 tar zxvf mod_evasive_1.10.1.tar.gz。
切换到mod_evasive目录下 (Qie huan dao mod_evasive mu lu xia)
使用中文进行的归纳陈述,仅提供一个选项:
在终端输入以下命令即可将 mod_evasive20.c 安装到 Apache 服务器上:
/usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c
转到/usr/local/apache2/modules。
列出 mod_evasive20.so 的详细信息
-rwxr-xr-x 1 root root 51287年3月1日15:33 mod_evasive20.so
创建目录 /var/log/mod_evasive/
将 /var/log/mod_evasive/ 的所有权改为 apache:apache
进入/usr/local/apache2/conf目录。
查看httpd.conf配置文件。
LoadModule evasive20_module modules/mod_evasive20.so ←インストールすると自動で設定される。
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 3
DOSSiteCount 20
DOSPageInterval 2
DOSSiteInterval 1
DOSBlockingPeriod 3600
DOSLogDir "/var/log/mod_evasive"
DOSEmailNotify xxxxx@xxxx.jp ←拒否したIPアドレスをメール送付。
</IfModule>
退出 (:wq)
重启httpd服务。
/usr/local/apache2/bin/apachectl -M
/usr/local/apache2/bin/apachectl的-M
进入 /usr/local/src/mod_evasive 目录。
将 test.pl 文件设置为可执行权限:chmod +x test.pl
以下是中文的句子转述:
使用中文自然地转述:
/usr/local/src/mod_evasive/test.pl