首页主机资讯如何在Ubuntu上配置Apache防盗刷

如何在Ubuntu上配置Apache防盗刷

时间2025-12-03 11:09:04发布访客分类主机资讯浏览824
导读:Ubuntu上配置Apache防盗刷的实用方案 一 核心思路与适用场景 目标是抑制刷接口、撞库、爬虫抓取、资源盗链等行为,建议采用“速率限制 + 异常拦截 + 身份校验 + 资源保护”的多层策略,既减少误杀,又提升拦截效率。 二 快速落...

Ubuntu上配置Apache防盗刷的实用方案

一 核心思路与适用场景

  • 目标是抑制刷接口、撞库、爬虫抓取、资源盗链等行为,建议采用“速率限制 + 异常拦截 + 身份校验 + 资源保护”的多层策略,既减少误杀,又提升拦截效率。

二 快速落地步骤

  • 启用速率限制模块并配置全局速率

    • 安装模块:sudo apt-get install libapache2-mod-ratelimit
    • 在虚拟主机或全局配置中加入:
      <
          IfModule mod_ratelimit.c>
          
          # 每个客户端IP每分钟最多 60 次请求
          SetEnv rate-limit 60/minute
      <
          /IfModule>
          
      
    • 说明:该方式对整站或特定 Location 生效,适合作为第一道“闸门”。
  • 安装并配置 mod_evasive 防刷与防DoS

    • 安装:sudo apt-get install libapache2-mod-evasive
    • 配置(/etc/apache2/mods-enabled/evasive.conf 或相应 Include 文件):
      <
          IfModule mod_evasive20.c>
          
          DOSHashTableSize    3097
          DOSPageCount        2      # 同一页面在 DOSPageInterval 内的请求上限
          DOSSiteCount        50     # 同一站点在 DOSSiteInterval 内的请求上限
          DOSPageInterval     1      # 单位:秒
          DOSSiteInterval     1      # 单位:秒
          DOSBlockingPeriod   600    # 封禁时长:单位秒(建议至少 10 分钟)
      <
          /IfModule>
          
      
    • 启用并重启:sudo a2enmod evasive & & sudo systemctl restart apache2
    • 说明:对“短时间高频访问同一资源”的场景非常有效。
  • 部署 Fail2Ban 自动封禁恶意来源

    • 安装:sudo apt-get install fail2ban
    • 配置 /etc/fail2ban/jail.local:
      [DEFAULT]
      bantime  = 600
      findtime = 600
      maxretry = 3
      
      [apache-auth]
      enabled  = true
      filter   = apache-auth
      action   = iptables-multiport[name=Apache, port="http,https", protocol=tcp]
      logpath  = /var/log/apache2/access.log
      
    • 重启:sudo systemctl restart fail2ban
    • 说明:基于日志的自动化封禁,可与 mod_evasive 形成互补。
  • 保护敏感接口与后台

    • HTTP 基本认证(示例对 /var/www/html/protected 目录):
      <
          Directory /var/www/html/protected>
          
          AuthType Basic
          AuthName "Restricted Area"
          AuthUserFile /etc/apache2/.htpasswd
          Require valid-user
      <
          /Directory>
          
      
      创建用户:sudo htpasswd -c /etc/apache2/.htpasswd username
    • 验证码(reCAPTCHA,适用于登录/注册/评论等表单)
      • 前端表单加入:
        <
            div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY">
            <
            /div>
            
        <
            script src="https://www.google.com/recaptcha/api.js" async defer>
            <
            /script>
            
        
      • 服务端校验(PHP 示例):
        $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=YOUR_SECRET_KEY&
            response=".$_POST['g-recaptcha-response']);
            
        $data = json_decode($response);
            
        if ($data->
        success) {
         /* 处理业务 */ }
         else {
         /* 拒绝请求 */ }
        
        
    • 说明:对“撞库、批量提交”类刷单行为效果显著。
  • 资源防盗链(保护图片、视频、下载)

    • 启用模块:sudo a2enmod rewrite
    • 在虚拟主机或 .htaccess 中加入:
      RewriteEngine On
      RewriteCond %{
      HTTP_REFERER}
       !^https?://(www\.)?yourdomain\.com [NC]
      RewriteCond %{
      HTTP_REFERER}
           !^https?://(www\.)?cdn\.yourdomain\.com [NC]
      RewriteRule \.(jpg|jpeg|png|gif|ico|css|js)$ - [F,L]
      
    • 说明:Referer 可被伪造,建议仅作为辅助手段,关键资源使用签名URL/临时令牌更安全。

三 进阶可选方案

  • 使用 ModSecurity(WAF) 做更细粒度策略与速率限制
    • 安装:sudo apt-get install libapache2-mod-security2
    • 启用:sudo a2enmod security2 & & sudo systemctl restart apache2
    • 可在 CRS 或自定义规则中加入速率限制与异常特征拦截,适合对应用层攻击与刷量做深度防护。

四 调参与运维建议

  • 阈值设置遵循“先宽后严、逐步收敛”原则:上线初期将速率与封禁时间设得宽松(如每分钟几十次、封禁10 分钟),观察 /var/log/apache2/access.log 与业务指标后再逐步收紧,避免误杀搜索引擎或正常用户。
  • 对 CDN 或反向代理部署:真实客户端 IP 通常在 X-Forwarded-For 头中,需确保 Fail2Ban/应用层规则正确识别真实 IP,避免被伪造来源绕过。
  • 对高并发场景优先使用“边缘限流 + 源站兜底”(如 CDN/WAF 自带速率限制),源站再用 mod_ratelimit/mod_evasive 做第二道防护,降低源站压力。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Ubuntu上配置Apache防盗刷
本文地址: https://pptw.com/jishu/762164.html
Debian Python应用如何打包 如何检查linux deluser是否成功

游客 回复需填写必要信息