Squid Web Cache Wiki

Squid Web Cache 文档

🔗 使用 Microsoft 用户数据库以外的数据库进行单点登录

在 <OFFFA0E624.849C9A55-ON43256F7E.00374070-43256F7E.003972B7@zahid.com> 中,一位用户询问

我是否可以通过我的 LDAP 服务器为 Squid 用户使用单点登录身份验证,而不是出现身份验证提示。客户端使用的是 WinXP pro

简短的回答是:,至少开箱即用不行。但可以实现。

长篇回答:为了实现这一点,您需要访问包含用户密码的数据库,可以是明文格式,或者至少是它们的 NT 和 LM 哈希(有关这些内容的详细信息,请参阅 http://forum.hackinthebox.org/viewtopic.php?p=40224)。这些密码必须与 Active Directory 中的密码保持同步,否则会话的第一次身份验证将失败,用户将看到令人讨厌的弹出窗口。一旦您拥有了这些,您“只需”实现 NTLMSSP 协议(这是客户端和辅助程序使用的)以及 Squid NTLM 身份验证器协议。

🔗 407/DENIED 和 NTLM

由于 Microsoft 设计的 HTTP NTLM 身份验证方式,每个新的 TCP 连接都需要被拒绝两次以执行身份验证握手。然后,只要它保持活动状态,就不需要进一步的身份验证。是的,这破坏了协议分层。是的,这破坏了 HTTP 的无状态性。而且,是的,这浪费了大量带宽(对于一个平均大小的 16k 对象,两次约 2kb 的拒绝意味着在糟糕但并非不合理的情况下高达 20% 的开销)。有关身份验证如何执行的详细信息,请参阅 KnowledgeBase/NTLMAuthGoryDetails

🔗 多跳

Squid 在发送给上游的客户端请求中添加 Proxy-Authentication: 标头的机制不支持 NTLM 握手,以便使用 NTLM 登录到下一跳代理。

:information_source: Microsoft 已正式弃用 NTLM,转而支持 Kerberos。Squid-3.2 支持 Kerberos(Negotiate)登录到上游代理。

类别: 知识库

导航: 站点搜索站点页面类别🔼 向上