如何将 squid 配置为透明代理?

Posted

技术标签:

【中文标题】如何将 squid 配置为透明代理?【英文标题】:How to configure squid to be a Transparent proxy? 【发布时间】:2012-03-08 05:30:42 【问题描述】:

我正在使用 Squid 代理服务器,因为我也使用过cyberoam、Sonicwall 和 Clear OS。

我想像上面的产品一样设置自己的代理,即透明代理中的身份验证。 实际上,我设置了透明代理,但当时我的 HTTPS 站点无法正常工作。然后我配置了一个 iptables 规则,将所有 http 和 https 流量仅重定向到 3128(squid 端口)。但在这里我可以访问我所有的 https 网站,但我无法阻止它们。

我的要求是当我第一次访问任何网站时,它会要求我进行身份验证,然后只有我可以访问互联网。在日志报告中,我还可以显示它的用户名和另一件事,它也可以在瘦客户端(终端服务)中。

有人帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

代理身份验证在透明代理设置中不起作用。浏览器应配置代理以捕获来自代理的身份验证请求并向用户请求凭据。

另一件事是您可以为 HTTPS 创建透明代理。为什么?因为当浏览器连接时,它连接的是代理,而不是真正的服务器。浏览器将尝试协商 SSL,这是 Squid 不支持的。有一些技巧可以做到这一点,但你会破坏 SSL 安全性,浏览器会抱怨等等。我曾经使用一个工具来让它工作:u2nl,但这是一种通过 HTTPS 隧道传输代理的黑客。

最好的选择是使用非透明代理。如果您想避免浏览器配置,请查看WPAD

【讨论】:

【参考方案2】:

如前所述,您无法真正使用 Squid 阻止 HTTPS 站点,也无法真正使用在其透明模式下运行的代理进行身份验证。

据我所知,您可以使用外部 acl 来强制登录,但登录请求不会被代理处理,但您可以使用一些 PERL。

关于 HTTPS 的事情,你可以通过一些 hack 来处理它,但这是一个非常明智的问题,因为服务器性能会受到这种使用的惩罚,你可能会被认为是欺诈性服务,这不是不酷...相信我。

【讨论】:

以上是关于如何将 squid 配置为透明代理?的主要内容,如果未能解决你的问题,请参考以下文章

squid 透明代理配置

squid 透明代理配置

Centos7安装Squid代理服务及配置透明代理

SQUID代理服务

squid服务之配置透明代理

squid服务之配置透明代理