Https

如何通過squid透明轉發HTTPS流量?

  • December 22, 2020

我想將所有 HTTP 和 HTTPS 流量重定向到squid充當透明代理。然後,此流量將在特定時間內被阻止或授權(批量)。具體來說,我不想解密/重新加密 HTTPS 流量,而是將其推送。

HTTP 部分起作用,一條REDIRECT規則shorewall將用於目標埠的所有流量傳輸80到模式下的偵聽3128squid 埠transparent

埠的相同技巧443不起作用。

有關於如何為 HTTPS 流量設置透明代理的教程,但我發現的所有教程都描述了創建證書對來解密/重新加密流量 - 這是我不想做的事情。

squid wiki提到 CONNECT 作為隧道 HTTPS 流量的一種方式,但添加到http_access allow CONNECT all配置(並禁用預設值deny)不會改變任何內容。

然後一些先前的 答案表明,如果不破壞 TLS 隧道,就不可能進行透明的 HTTPS 傳輸。

因此:有沒有辦法進行配置squid,以便通過重新路由到它的 HTTPS 流量iptables然後透明地傳輸,而不進行任何修改?

(當滿足某些時間規則時,我最終會阻止(也就是說,該阻止不會基於 HTTPS 流本身的任何內容))

但我發現的所有內容都描述了創建證書對來解密/重新加密流量 - 這是我不想做的事情。

由於 https 協議的工作方式,您所要求的根本不可能。您的選擇是:

  • 允許通過防火牆傳出 https,並且不要嘗試使用任何代理
  • 將客戶端配置為使用您的代理/過濾器,它們將使用對代理的 HTTP CONNECT 呼叫。
  • 將您的代理設置為中間人,然後執行 sslbump。

當滿足某些時間規則時,我最終會阻止

您可以使用正確的iptables 模組根據一天中的時間進行過濾。也許您應該只在防火牆中處理一天中的時間過濾?

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