透明的HTTP / HTTPS域名过滤代理

我想设置一个透明的HTTP / HTTPS代理来过滤基于目标主机名(域)的出站请求。 代理本身应该是非侵入性的,只是转发stream量,而不是解密/修改它。 在HTTPS的情况下,它应该使用TLS SNI扩展来解压主机名。

多个客户端将使用代理来访问多个主机,因此代理应该查看给定请求的客户端是否允许给定的目标主机名。

这是可能的鱿鱼(最好版本3.3.8)? 如果是这样,你能提供一个简单的例子configuration如何实现它? 如果不是的话,你能推荐能够做到的替代scheme吗?

附加信息:

  • 应该运行代理的服务器是Ubuntu 14.04
  • stream量redirect被另一个路由器覆盖到该服务器的固定端口
  • 代理应该像往常一样使用DNS来转发请求时parsing目标主机名

非常感谢!

从3.5版开始,你可能需要使用squid,因为你需要在该版本中引入“peek-and-splice”function。 您的操作称为“偷看”: http : //wiki.squid-cache.org/Features/SslPeekAndSplice 。

使用类似于:

https_port 3130 intercept ssl-bump ssl_bump peek all ssl_bump splice all 

intercept使代理透明。

我不确定第三个要求(使用DNS名称),在这种模式下,鱿鱼似乎是真正的透明。 但是如果在那里,它应该提取SNI信息。

你可以在ACL中使用这些信息:

 acl aclname ssl::server_name .foo.com ...