防止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

广告
将在 10 秒后关闭
bannerAds