几天来我一直在尝试让 squid 运行 kerberos,但非常痛苦。我仔细检查了所有配置文件,它们似乎都正常。
这是我的问题,今天我用 wireshark 捕获了数据包,我发现我的客户端浏览器发送并获取了 HTTP 数据包在买票之前来自KDC。
我可以通过 squid 连接互联网,但它使用 NTLM 而不是 Kerberos,我认为授权会回退到 NTLM,因为它会尝试 Kerberos Auth前它从 KDC 获取票证。(它可以稍后再获取票证)
什么原因导致 KDC 在认证期间无法发送票证?
如果需要,您可以获取完整的 wireshark 日志从这里。
更新:请更新 wireshark 日志检查一下而不是第一个
更新2:鱿鱼配置文件:http://pastebin.com/k1pafHfH
多谢。
答案1
在您发送的跟踪中,我没有看到代理对身份验证提出质询。我看到的唯一 Kerberos 流量是发给 test1 的领域:LABRISTEST.COM 的 TGT。
如果代理强制执行身份验证,我期望代理返回“StatusCode: 407,需要代理身份验证”的跟踪。请参阅http://technet.microsoft.com/en-us/library/bb984870.aspx例如代理需要身份验证的可能跟踪。
我没有看到任何基于 NTLM 或 Kerberos 的代理身份验证。
客户端仅在必要时才会请求票证(即代理说需要身份验证)。在此之前,它不知道要请求什么票证,因此会匿名尝试。因此,在匿名访问代理后,您应该会看到票证请求。而且,只有当客户端本地没有缓存票证时,才会看到票证请求。还有一种情况是,尽管本地没有缓存票证,但由于负面缓存(缓存了上一次票证请求失败的事实),您也看不到请求。
我还注意到您没有使用 IE(UserAgent:Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0)进行测试。我建议您使用 IE 进行测试,除非您确定 Firefox 已配置为正确响应身份验证请求。
更新(1 月 16 日): 在收集跟踪信息之前,您应该始终刷新 DNS 缓存 (ipconfig /flushdns) 和 kerberos 缓存。这样可以看到与 KDC 检测相关的 DNS 流量和 kerberos 票证请求成功/失败。
了解如何在浏览器中配置代理设置也很重要,因为这对请求的票证有一定的影响。代理端口似乎是 3128,名称是 labris-1。因此,您可能需要在代理服务使用的 AD 对象上注册 http/labris-1:3128 和 http/labris-1.labristest.com:3128 SPN。您还需要从http://support.microsoft.com/default.aspx?scid=kb;EN-US;908209对于所有高于 V6 的 IE。确保 keytab 已更新并且可以在 squid 服务器上访问。