溫馨提示×

Ubuntu Apache2怎樣實現防盜刷

小樊
50
2025-09-19 13:30:34
欄目: 智能運維

Ubuntu Apache2實現防盜刷的綜合方案

1. 使用Fail2Ban監控并封禁惡意IP

Fail2Ban是一款入侵防御工具,通過分析Apache日志(如access.log)識別頻繁的失敗請求(如401未授權),自動封禁惡意IP地址。

  • 安裝Fail2Ban:運行sudo apt update && sudo apt install fail2ban安裝。
  • 配置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
    
  • 創建過濾器:編輯/etc/fail2ban/filter.d/apache-auth.conf,定義失敗請求的正則表達式:
    [Definition]
    failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" 401
    ignoreregex =
    
  • 重啟服務sudo systemctl restart fail2ban使配置生效。

2. 部署ModSecurity Web應用防火墻(WAF)

ModSecurity是一款開源WAF,可檢測并阻止SQL注入、XSS、暴力破解等惡意請求,提升網站安全性。

  • 安裝ModSecurity:運行sudo apt update && sudo apt install libapache2-mod-security2安裝。
  • 啟用模塊sudo a2enmod security2啟用ModSecurity。
  • 配置規則:編輯/etc/modsecurity/modsecurity.conf,添加基礎防護規則:
    SecAction \
      "phase:1,\
      nolog,\
      pass,\
      ctl:ruleEngine=On,\
      id:1000001,\
      tag:'OWASP_CRS/WEB_ATTACK/REQUEST_RATE_LIMIT',\
      setvar:'ip.req_rate_limit=5/m',\
      setvar:ip.req_rate_limit_burst=10,\
      expirevar:ip.req_rate_limit=60m"
    
  • 重啟Apachesudo systemctl restart apache2應用配置。

3. 使用ModEvasive限制訪問頻率

ModEvasive專門用于防止DoS、DDoS及暴力破解攻擊,通過限制單個IP的請求頻率封禁異常流量。

  • 安裝模塊sudo apt install libapache2-mod-evasive安裝。
  • 配置參數:編輯/etc/apache2/mods-enabled/evasive.conf,設置以下閾值:
    DOSHashTableSize    3097    # 哈希表大?。ù鎯P請求信息)
    DOSPageCount        2       # 單個頁面1秒內允許的最大請求數
    DOSSiteCount        50      # 單個網站1秒內允許的最大總請求數
    DOSPageInterval     1       # 頁面請求的時間間隔(秒)
    DOSSiteInterval     1       # 網站請求的時間間隔(秒)
    DOSBlockingPeriod   10      # 觸發封禁后,IP被阻止的時間(秒)
    
  • 啟用模塊sudo a2enmod evasive啟用,然后sudo systemctl restart apache2重啟服務。

4. 利用ModRewrite實現防盜鏈與訪問控制

ModRewrite模塊可通過URL重寫規則,防止資源被盜鏈(如圖片、CSS、JS)及限制特定IP訪問。

  • 啟用模塊sudo a2enmod rewrite啟用ModRewrite。
  • 配置規則:編輯虛擬主機配置文件(如/etc/apache2/sites-available/000-default.conf),添加以下內容:
    <VirtualHost *:80>
      ServerAdmin webmaster@localhost
      DocumentRoot /var/www/html
      RewriteEngine On
      # 防盜鏈:禁止非本站域名引用圖片資源
      RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.com [NC]
      RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.co\.uk [NC]
      RewriteRule \.(jpg|jpeg|png|gif|ico|css|js)$ - [F,L]
      # 限制特定IP訪問(如后臺路徑)
      RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.100$
      RewriteRule ^admin - [F,L]
    </VirtualHost>
    
  • 重啟服務sudo systemctl restart apache2使規則生效。

5. 啟用Apache限速模塊(ModRateLimit)

ModRateLimit可限制客戶端發送請求的帶寬或速率,防止濫用帶寬或頻繁請求。

  • 安裝模塊sudo apt install libapache2-mod-ratelimit安裝。
  • 配置限速:編輯/etc/apache2/mods-available/ratelimit.conf,添加以下內容:
    <IfModule mod_ratelimit.c>
      <Location "/">
        SetOutputFilter RATE_LIMIT
        SetEnv rate-limit 50    # 每秒允許的最大字節數(50KB/s)
        SetEnv rate-initial-burst 100  # 初始突發字節數(100KB)
      </Location>
    </IfModule>
    
  • 啟用模塊sudo a2enmod ratelimit啟用,然后sudo systemctl restart apache2重啟服務。

6. 結合Cloudflare CDN增強防護

Cloudflare作為CDN服務,可隱藏服務器真實IP、過濾惡意流量(如DDoS、SQL注入),并提供Web應用防火墻(WAF)功能。

  • 注冊與配置
    1. 注冊Cloudflare賬戶,添加域名并修改DNS解析至Cloudflare提供的NS記錄。
    2. 開啟“防火墻”→“防護規則”,啟用“基礎防護”(針對常見攻擊模式)。
    3. 進入“速度”→“優化”,開啟“Auto Minify”(壓縮代碼)和“Brotli”(高效壓縮)提升性能。
  • 效果:Cloudflare會攔截大部分惡意請求,減輕Apache服務器的壓力。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女