Proxy
透明 HTTP/HTTPS 域過濾代理
我想設置一個透明的 HTTP/HTTPS 代理來根據目標主機名(域)過濾出站請求。代理本身應該是非侵入式的,只是轉發流量,而不是解密/修改它。在 HTTPS 的情況下,它應該使用 TLS SNI 擴展來提取主機名而不進行解密。
多個客戶端將使用代理訪問多個主機,因此代理應查找是否允許發出請求的客戶端使用給定的目標主機名。
squid(最好是 3.3.8 版)可以做到這一點嗎?如果是這樣,您能否提供一個簡單的範例配置來說明如何實現它?如果沒有,你能推薦能夠做到這一點的替代品嗎?
附加資訊:
- 應該執行代理的伺服器是 Ubuntu 14.04
- 流量重定向由另一個路由器覆蓋到該伺服器的固定埠
- 代理在轉發請求時應該像往常一樣使用 DNS 來解析目標主機名
非常感謝!
從 3.5 版開始,squid 可以滿足您的需要,因為您需要該版本中引入的“peek-and-splice”功能。您的操作稱為“窺視”:http ://wiki.squid-cache.org/Features/SslPeekAndSplice 。
使用類似的東西:
https_port 3130 intercept ssl-bump ssl_bump peek all ssl_bump splice all
intercept
使代理透明。我不確定第三個要求(使用 DNS 名稱),squid 在這種模式下似乎真的很透明。但它應該提取 SNI 資訊(如果存在)。
您可以在 ACL 中使用該資訊:
acl aclname ssl::server_name .foo.com ...