Proxy

透明 HTTP/HTTPS 域過濾代理

  • December 16, 2015

我想設置一個透明的 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 ...

引用自:https://serverfault.com/questions/743483