在 CentOS 上使用 Apache 服务器时,可以通过配置 mod_evasive
模块来限制访问频率。mod_evasive
是一个用于防止 DoS(拒绝服务)攻击的模块,它可以检测并阻止恶意请求。以下是如何安装和配置 mod_evasive
的步骤:
安装 EPEL 仓库(如果尚未安装):
sudo yum install epel-release
安装 mod_evasive:
sudo yum install mod_evasive20
启用 mod_evasive:
编辑 Apache 配置文件(通常是 /etc/httpd/conf/httpd.conf
或 /etc/apache2/apache2.conf
),添加以下内容以加载 mod_evasive
模块:
LoadModule evasive20_module modules/mod_evasive20.so
配置 mod_evasive: 在 Apache 配置文件中添加或修改以下配置段,以设置访问频率限制:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
解释这些参数:
DOSHashTableSize
:哈希表的大小,用于存储 IP 地址信息。DOSPageCount
:在指定时间间隔内允许的最大请求数。DOSSiteCount
:在指定时间间隔内允许的最大站点请求数。DOSPageInterval
:时间间隔(秒),用于计算页面请求次数。DOSSiteInterval
:时间间隔(秒),用于计算站点请求次数。DOSBlockingPeriod
:被阻止的 IP 地址在多长时间内不能再次访问。重启 Apache: 保存配置文件并重启 Apache 以应用更改:
sudo systemctl restart httpd
你可以通过模拟大量请求来测试配置是否生效。例如,使用 ab
(Apache Bench)工具:
ab -n 100 -c 10 http://your_server_ip_or_domain/
这将发送 100 个请求,每次并发 10 个请求。如果配置正确,你应该会看到一些请求被阻止。
通过以上步骤,你可以在 CentOS 上使用 Apache 服务器限制访问频率,从而提高服务器的安全性和稳定性。