Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

網站存取控制實戰:使用 .htaccess 封鎖特定 IP 與 IP 段

編輯:關於伺服器

需求:禁止特定 IP (如惡意爬蟲、攻擊來源、內部測試機) 存取網站。Apache 環境下,.htaccess 提供無需重啟服務、即時生效的目錄級存取控制能力。本文示範單一 IP、IP 段、域名、全域拒絕/允許的常用規則模板。

核心指令語法

<Directory /path/to/webroot>
  # 或直接寫在該目錄下的 .htaccess 檔案中
  Order Allow,Deny
  Deny from 210.10.56.32          # 單一 IPv4
  Deny from 219.5.45.             # IP 段 (CIDR 寫法較佳:219.5.45.0/24)
  Deny from 2001:db8::/32         # IPv6 段
  Deny from .evil-domain.com      # 以域名尾碼匹配 (需 DNS 反解,效能較差)
  Allow from all                  # 其餘全部允許
</Directory>

常用模板速查

需求配置範例
僅允許公司內網存取 (白名單模式)Order Deny,Allow
Deny from all
Allow from 10.0.0.0/8 192.168.0.0/16
封鎖已知惡意 IP 清單 (黑名單模式)Order Allow,Deny
Allow from all
Deny from 1.2.3.4 5.6.7.0/24 192.168.1.100
封鎖整個國家/地區 IP (需搭配 GeoIP 模組)GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
Deny from env=BlockCountry
僅允許特定 User-Agent (如監控探針)SetEnvIf User-Agent "Zabbix" allow_ua
Order Deny,Allow
Deny from all
Allow from env=allow_ua

關鍵細節與避坑

  • 順序至關重要: Order Allow,Deny 表示「先評估 Allow,再評估 Deny,最後匹配者生效」;Order Deny,Allow 反之。白名單用後者,黑名單用前者。
  • CIDR 寫法優於截斷寫法: 192.168.1.0/24 比 192.168.1. 更明確、支援 IPv6、避免歧義。
  • .htaccess 生效前提: 主配置 AllowOverride All 或 AllowOverride Limit,且 AccessFileName .htaccess。
  • 效能考量: .htaccess 每請求讀取一次,高流量站點建議將規則移至主配置 <Directory> 或 <Location>,並啟用 AllowOverride None。
  • IPv6 支援: Apache 2.2+ 原生支援 IPv6 位址/CIDR,格式同 IPv4。
  • 域名匹配風險: Deny from .domain.com 會觸發雙向 DNS 查詢 (正向+反向),極大增加延遲且易被偽造,**生產環境強烈不建議使用**。
  • 代理/負載均衡器後方: 真實客戶端 IP 在 X-Forwarded-For 標頭,需配合 mod_remoteip (2.4) 或 mod_rpaf (2.2) 重寫 %a 變數,否則封鎖的是代理 IP。

Apache 2.4 新語法 (推薦)

<Directory /path/to/webroot>
  Require all granted
  Require not ip 210.10.56.32
  Require not ip 219.5.45.0/24
  Require not ip 2001:db8::/32
  # 組合邏輯更直觀,支援複雜表達式
</Directory>

驗證生效

  • 瀏覽器訪問受保護頁面,應回傳 403 Forbidden
  • 檢查 access_log 確認被拒請求來源 IP
  • 使用 curl -I https://site/ 驗證回應碼

.htaccess 是輕量級存取控制的利器,但「配得快、改得快、查得慢」是其雙刃劍。關鍵業務請將規則下沉至主配置,並建立 IP 封鎖/放行變更流程 (記錄、審核、部署、驗證),避免誤封業務流量或誤放攻擊流量。

Copyright © Windows教程網 All Rights Reserved