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

Squid 代理伺服器安全策略深度解析:ACL 存取控制、連接埠管理、日誌審計、HAVP 病毒掃描串聯

編輯:代理伺服器

安全痛點:無配置 = 公開代理 = 濫用/攻擊跳板/法律風險

預設安裝的 Squid 往往無存取控制,導致:
❌ 任意用戶透過代理訪問色情/暴力/違法站點
❌ 攻擊者利用代理掃描/攻擊內網/外部目標 (隱藏真實 IP)
❌ 難以追蹤責任人 (日誌不全/無認證)

一、ACL (存取控制清單) 核心語法與實戰範例

Squid ACL 兩大要素:
① ACL 定義:acl 名稱 類型 參數
② 存取規則:http_access allow|deny 名稱 (按序匹配,首符合生效,預設 deny all)

1. 允許特定內網網段

acl lan src 172.16.0.0/255.255.0.0
http_access allow lan
http_access deny all  # 必須放最後

2. 允許名單 IP + 檔案清單

acl clients src 10.0.0.124/24 192.168.10.15/24
acl guests src "/etc/squid/guests"  # 檔案每行一個 CIDR
http_access allow clients
http_access allow guests
http_access deny all

/etc/squid/guests 內容範例:

172.168.10.3/24
210.113.24.8/16
10.0.1.24/25

3. 時間段存取控制

acl allclients src 0.0.0.0/0
acl admins src 192.168.10.0/24
acl work_time time MTWH 08:30-20:30   # 週一至四
acl fri_time time F 13:00-18:00       # 週五下午

http_access allow allclients work_time
http_access allow admins fri_time
http_access deny all

4. 站點/關鍵字屏蔽 (內容過濾)

acl bad_ip src "/usr/local/squid/etc/bad_ip"
acl bad_domain dstdomain "/usr/local/squid/etc/bad_domain"
acl bad_url url_regex "/usr/local/squid/etc/bad_url"
acl bad_path urlpath_regex "/usr/local/squid/etc/bad_path"

http_access deny bad_domain
http_access deny bad_ip
http_access deny bad_url
http_access deny bad_path

檔案內容範例:
bad_domain:porn.com
bad_url:sex, gamble
bad_path:/adult/, /xxx/

5. CONNECT 方法封鎖 (防繞過/隧道濫用)

# 定義安全埠
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535 280 488 591 777
acl CONNECT method CONNECT

# 拒絕非安全埠的 CONNECT
http_access deny CONNECT !SSL_ports

驗證:tail -f /var/log/squid/access.log | grep CONNECT 觀察被拒記錄 (TCP_DENIED)。

二、連接埠綁定:防止成公開代理

# 僅綁定內網介面 IP (如 192.168.0.254)
http_port 192.168.0.254:3128

外網介面完全不監聽,徹底杜絕公開代理濫用。

三、日誌審計與圖形化監控 (Cache Manager)

  1. 複製 CGI 程式:
    cp /usr/lib/squid/cachemgr.cgi /var/www/cgi-bin/ (Apache CGI 目錄)
  2. Apache 配置保護:
    <Location /cgi-bin/cachemgr.cgi>
    AuthType Basic
    AuthName "Squid Admin"
    AuthUserFile /usr/local/squid/etc/squid.pwd
    Require valid-user
    </Location>
  3. 建立密碼檔:
    htpasswd -c /usr/local/squid/etc/squid.pwd squidadmin
  4. 重啟 Apache + Squid
  5. 瀏覽器訪問 https://server/cgi-bin/cachemgr.cgi → 輸入帳密 → 填入 Squid IP:Port → 即時查看:
    快取命中率、記憶體/磁碟使用、連線數、請求分布、對等節點狀態等

四、串聯 HAVP 病毒掃描 (HTTP 反病毒代理)

HAVP (HTTP Antivirus Proxy) 使用 ClamAV 引擎,專掃 HTTP 流量病毒。

部署步驟

  1. 解壓編譯安裝:
    ./configure; make; make install
  2. 修改 havp.config 關鍵參數:
SCANTEMPFILE /tmp/havp-scan
ACCESSLOG /var/log/havp/access.log
ERRORLOG /var/log/havp/error.log
USER havp
PORT 8080          # HAVP 監聽埠
PARENTPROXY 127.0.0.1
PARENTPORT 3128    # 上游 Squid 埠
TEMPLATE /usr/local/havp/templates/en.html
  1. ClamAV 設定 StreamMaxLength > HAVP MAXRECV
  2. 啟動:/usr/local/sbin/havp
  3. 鏈路:Client → HAVP (8080) → Squid (3128) → Internet

驗證

訪問 EICAR 測試檔,應被 HAVP 攔截顯示病毒警告頁面。

限制

僅支援 HTTP 協定;HTTPS (加密)、FTP 等無法掃描。需配合終端防毒/SSL 檢測方案。

五、總結:纏深防禦清單

層面關鍵動作
存取控制ACL 白名單 + 時間段 + 內容過濾 + CONNECT 封鎖
介面綁定僅內網 IP 監聽
日誌審計Cache Manager 圖形化 + 定期離線分析
病毒防護HAVP + ClamAV 串聯 (HTTP 層)
維運日誌輪轉、配置版控、定期滲透測試

結語

Squid 安全非裝好即完,核心在於 ACL 白名單機制 + 最小權限介面綁定 + 持續日誌審計。HAVP 為 HTTP 層增加病毒防線,但加密流量仍需端點防護。將上述策略納入標準化部署模板,才能確保每一個 Squid 節點都是安全合規的。

Copyright © Windows教程網 All Rights Reserved