URL过滤HTTPSstream量

我正在处理的configuration是一个透明的HTTP代理:在防火墙上,所有的HTTPstream量(端口80)通过iptables被redirect到代理; Dansguardian安装在代理上,并过滤URL。 在网上阅读我意识到,如果我也将HTTPSstream量(端口443)redirect到代理,那么当用户指向HTTPS网站时,用户将收到错误,是否正确?

我发现解决这个问题的解决scheme是:

  • 我删除防火墙上的redirect规则,用户在浏览器的连接选项中指定代理地址。 他们是否必须为HTTPSstream量指定不同的端口或者为每个协议指定默认端口(3128)? 或者我必须在squid.conf中指定“https_port”指令?
  • 我删除防火墙上的redirect规则,并创build一个configuration文件(proxy.pac / wpad.dat); 用户在其浏览器上指定该文件的URL,所以它自动加载代理configuration。

在这一点上我的问题是:为什么这些解决scheme与HTTPSstream量和透明代理不工作?

先谢谢你。

当httpsstream量到达透明代理时,只有IP“可见”:没有足够的信息来重新创build连接请求并对其进行代理。

当您在浏览器中设置代理(手动或通过proxy.pac)浏览器知道发送更多信息到代理关于它想要什么。

一些代理可以使用SNI信息来透明地代理大部分SSLstream量,然后域名可以过滤(来自sni信息)或MITM,并完成一个完整的过滤工作。 我为一个这样的filter的供应商 – 光滑墙 (谁也雇用丹斯丹丹 )。

HTTPS协议实现SSL,通常确保完整性,不可抵赖性和机密性。 试图透明代理HTTPSstream量是一种中间人,所以它打破了SSL通道。

如果要代理HTTPS协议而不破坏SSL通道,则需要使用所谓的CONNECT通道,客户端必须知道(然后将SSL封装在HTTP CONNECT内)。

他们是否必须为HTTPSstream量指定不同的端口或者为每个协议指定默认端口(3128)? 或者我必须在squid.conf中指定“https_port”指令?

CONNECT隧道在http_port上工作

我删除防火墙上的redirect规则,并创build一个configuration文件(proxy.pac / wpad.dat); 用户在其浏览器上指定该文件的URL,因此会自动加载代理configuration。

您可以通过DHCP为用户提供proxy.pac的位置。

更多关于Squid和HTTPS