如何通过squid透明转发HTTPS流量?

WoJ*_*WoJ 5 https squid transparent-proxy

我想将所有 HTTP 和 HTTPS 流量重定向为squid充当透明代理。然后,该流量将在特定时间内被阻止或授权(批量)。具体来说,我不想解密/重新加密 HTTPS 流量,而是按原样推送。

HTTP 部分起作用,REDIRECT规则将shorewall所有打算发送到目标端口的流量传输80到模式下的侦听3128鱿鱼端口transparent

同样的技巧对于端口443不起作用。

有关于如何为 HTTPS 流量设置透明代理的教程,但我发现的所有教程都描述了创建证书对来解密/重新加密流量 - 这是我不想做的事情。

鱿鱼维基提到 CONNECT 作为隧道 HTTPS 流量的一种方式,但添加http_access allow CONNECT all到配置(并禁用默认值deny)不会改变任何东西。

然后,之前的 一些答案表明,在不破坏 TLS 隧道的情况下,透明的 HTTPS 流量是不可能的。

因此:是否有一种方法可以配置,squid以便通过重新路由到它的 HTTPS 流量iptables然后透明地传输,而不需要任何修改?

(当满足某些时间规则时,我最终会阻止(这就是说,该阻止不会基于 HTTPS 流本身内的任何内容))

Zor*_*che 4

但我发现的所有内容都描述了创建证书对来解密/重新加密流量 - 这是我不想做的事情。

由于 https 协议的工作原理,您所要求的根本不可能实现。您的选择是:

  • 允许通过防火墙传出 https,并且不要尝试使用任何代理
  • 配置客户端以使用您的代理/过滤器,它们将使用对代理的 HTTP CONNECT 调用。
  • 将您的代理设置为中间人,然后执行 sslbump。

当满足某些时间规则时我最终会阻止

您可以使用正确的iptables 模块根据一天中的时间进行过滤。也许您应该只在防火墙中处理一天中的时间过滤?

  • Peek 和 Splice 能做到这一点吗?https://wiki.squid-cache.org/Features/SslPeekAndSplice (2认同)