ubuntu

Ubuntu Apache配置如何设置防盗刷

小樊
42
2025-12-17 00:15:33
栏目: 智能运维

在Ubuntu上配置Apache服务器以防止盗刷(即防止恶意用户或机器人过度访问网站资源)通常涉及以下几个步骤:

  1. 安装和配置防火墙: 使用ufw(Uncomplicated Firewall)来限制对Apache服务器的访问。

    sudo ufw enable
    sudo ufw allow 'Apache Full'
    
  2. 限制请求频率: 使用mod_evasive模块来限制请求频率。首先安装该模块:

    sudo apt-get install libapache2-mod-evasive
    

    然后在Apache配置文件中启用和配置该模块。编辑/etc/apache2/mods-enabled/evasive.conf文件(如果不存在,可以创建一个):

    <IfModule mod_evasive20.c>
        DOSHashTableSize    3097
        DOSPageCount        2
        DOSSiteCount        50
        DOSPageInterval     1
        DOSSiteInterval     1
        DOSBlockingPeriod   10
    </IfModule>
    

    这些设置的意思是:

    • DOSHashTableSize:哈希表的大小。
    • DOSPageCount:单个页面在1秒内的最大请求次数。
    • DOSSiteCount:单个网站在1秒内的最大请求次数。
    • DOSPageInterval:单个页面请求之间的最小间隔(秒)。
    • DOSSiteInterval:单个网站请求之间的最小间隔(秒)。
    • DOSBlockingPeriod:被封禁的IP地址将被封禁的时间(秒)。
  3. 限制特定IP地址: 如果你知道某些IP地址是恶意的,可以在/etc/apache2/conf-available/other-vhosts-access-log.conf文件中添加这些IP地址到Deny from指令中。

    <Directory "/var/www/html">
        Order Deny,Allow
        Deny from 192.168.1.1
        Deny from 192.168.1.2
        Allow from all
    </Directory>
    
  4. 使用.htaccess文件: 在网站的根目录下创建或编辑.htaccess文件,添加以下内容来限制请求频率:

    <IfModule mod_evasive20.c>
        DOSHashTableSize    3097
        DOSPageCount        2
        DOSSiteCount        50
        DOSPageInterval     1
        DOSSiteInterval     1
        DOSBlockingPeriod   10
    </IfModule>
    
  5. 重启Apache服务器: 保存所有配置文件后,重启Apache服务器以使更改生效:

    sudo systemctl restart apache2
    

通过以上步骤,你可以有效地防止Apache服务器被恶意用户或机器人过度访问,从而保护你的网站免受盗刷攻击。

0
看了该问题的人还看了