cd /usr/ports/www/mod_evasive
make install clean
vi /usr/local/etc/apache2/httpd.conf
LoadModule evasive20_module libexec/apache2/mod_evasive20.so
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 10
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 360
DOSEmailNotify info@itkylin.com
DOSLogDir “/var/log/http/mod_evasive”
# Wildcards can be used on up to the last 3 octets if necessary.
# Multiple DOSWhitelist commands may be used in the configuration.
DOSWhiteList 192.168.0.8
DOSWhiteList 192.168.1.*
</IfModule>
:wq
mkdir /var/log/http/mod_evasive
chown -R www:www /var/log/http/mod_evasive
参数简单说明:
DOSHashTableSize 3097 记录和存放黑名单的哈西表大小,如果服务器访问量很大,可以加大该值
DOSPageCount 5 同一个页面在同一时间内可以被统一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置。
DOSSiteCount 10 同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。
DOSPageInterval 2 设置DOSPageCount中时间长度标准,默认值为1。
DOSSiteInterval 2 设置DOSSiteCount中时间长度标准。
DOSBlockingPeriod 360 被封时间间隔秒,这中间会收到403 (Forbidden) 的返回。
自带的测试工具:
cd /usr/local/share/doc/mod_evasive/
chmod 755 test.pl
./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 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
HTTP/1.1 403 Forbidden