是否可以使用透明代理来过滤一些域名而不需要中间人的方法? 我想保证证书validation和用户隐私,另一方面,我想拒绝连接到某个域名。
透明代理可能吗? squid3可能吗?
一个透明的代理,根据定义,坐在中间人。 客户端不知道该代理存在,并将其请求作为TCP SYN发送到基于SSL的站点到目标端口443。
如果明确指定代理,则客户端将使用CONNECT谓词(因为它知道正在使用代理),哪些Squid访问控制列表(ACL)可以采取行动。
没有透明的代理可以可靠地应用访问控制,而不需要做中间人。 你所希望的最好的办法是根据目的地IP地址采取行动,坦率地说,只会让你头痛,因为你需要不断维护IP列表。
正如Evan Anderson在回答中所说,如果你在浏览器中手动设置代理,那么他们将使HTTP通过代理(使用CONNECT请求),并且由于这些请求中的主机名未encryption发送,您将能够将ACL应用于它。
但是,目前没有任何东西强制客户端使用您的代理,所以虽然您不能使其透明,但可以直接阻止所有直接的HTTP / HTTPS连接,并告诉用户如果他们想要浏览网页。
我们已经使用SNI实现了使用squidcaching的HTTPS过滤。 它在透明SSL模式下运行良好。 ACL也被实现。 我们已经将思科ASA的squid盒与WCCP服务器集成在一起,并将其投入生产。