centos

CentOS Apache2如何限制访问频率

小樊
47
2025-05-27 02:50:00
栏目: 智能运维

在 CentOS 上使用 Apache 服务器时,可以通过配置 mod_evasive 模块来限制访问频率。mod_evasive 是一个用于防止 DoS(拒绝服务)攻击的模块,它可以检测并阻止恶意请求。以下是如何安装和配置 mod_evasive 的步骤:

安装 mod_evasive

  1. 安装 EPEL 仓库(如果尚未安装):

    sudo yum install epel-release
    
  2. 安装 mod_evasive

    sudo yum install mod_evasive20
    

配置 mod_evasive

  1. 启用 mod_evasive: 编辑 Apache 配置文件(通常是 /etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf),添加以下内容以加载 mod_evasive 模块:

    LoadModule evasive20_module modules/mod_evasive20.so
    
  2. 配置 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 地址在多长时间内不能再次访问。
  3. 重启 Apache: 保存配置文件并重启 Apache 以应用更改:

    sudo systemctl restart httpd
    

验证配置

你可以通过模拟大量请求来测试配置是否生效。例如,使用 ab(Apache Bench)工具:

ab -n 100 -c 10 http://your_server_ip_or_domain/

这将发送 100 个请求,每次并发 10 个请求。如果配置正确,你应该会看到一些请求被阻止。

通过以上步骤,你可以在 CentOS 上使用 Apache 服务器限制访问频率,从而提高服务器的安全性和稳定性。

0
看了该问题的人还看了