在Apache配置中,可以使用mod_evasive模块来限制访问频率。mod_evasive是一个用于防止DDoS攻击和限制访问频率的模块。以下是如何安装和配置mod_evasive的步骤:
安装mod_evasive模块。在Debian/Ubuntu系统上,可以使用以下命令安装:
sudo apt-get install libapache2-mod-evasive
在CentOS/RHEL系统上,可以使用以下命令安装:
sudo yum install mod_evasive20
启用mod_evasive模块。在Debian/Ubuntu系统上,可以使用以下命令启用:
sudo a2enmod evasive
在CentOS/RHEL系统上,可以使用以下命令启用:
sudo systemctl enable mod_evasive20
配置mod_evasive。编辑Apache配置文件(例如/etc/apache2/apache2.conf或/etc/httpd/conf/httpd.conf),添加以下内容:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
参数说明:
DOSHashTableSize:哈希表的大小,用于存储IP地址和访问计数。建议使用质数,以减少哈希冲突。DOSPageCount:在DOSPageInterval时间内,允许的最大页面请求次数。DOSSiteCount:在DOSSiteInterval时间内,允许的最大站点请求次数。DOSPageInterval:时间间隔,用于计算页面请求次数。DOSSiteInterval:时间间隔,用于计算站点请求次数。DOSBlockingPeriod:被阻止的IP地址在多长时间内不能访问服务器。重启Apache服务以使配置生效:
sudo systemctl restart apache2
或
sudo systemctl restart httpd
现在,mod_evasive将限制访问频率,根据配置的参数阻止恶意访问。请注意,这只是一个基本的示例配置,您可以根据实际需求调整参数。