我正在运行 Squid 2.7-stable4、Samba 3 和带有 IE8 的 Windows 7 RC。
我在我的 squid 代理服务器上设置了 NTLM 身份验证,它适用于浏览器和 Windows 的每种组合(包括 XP 上的 IE8 和 Win7 上的 Firefox),但它对于 Windows 7 上的 IE8 不起作用(不断要求身份验证)。
我可以使用 LmCompatibilityLevel 注册表 hack 让它工作,但我真的更喜欢让它在服务器上工作。
有人对这个有经验么?或者知道从哪里开始寻找?桑巴日志没有透露太多。
编辑:这是我尝试进行身份验证时 wb-MYDOMAIN 日志所说的内容:
[2009/08/20 15:13:36, 4] nsswitch/winbindd_dual.c:fork_domain_child(1080)
child daemon request 13
[2009/08/20 15:13:36, 10] nsswitch/winbindd_dual.c:child_process_request(478)
process_request: request fn AUTH_CRAP
[2009/08/20 15:13:36, 3] nsswitch/winbindd_pam.c:winbindd_dual_pam_auth_crap(1755)
[ 4127]: pam auth crap domain: MYDOMAIN user: MYUSER
[2009/08/20 15:13:36, 0] nsswitch/winbindd_pam.c:winbindd_dual_pam_auth_crap(1767)
winbindd_pam_auth_crap: invalid password length 24/282
[2009/08/20 15:13:36, 2] nsswitch/winbindd_pam.c:winbindd_dual_pam_auth_crap(1931)
NTLM CRAP authentication for user [MYDOMAIN]\[MYUSER] returned NT_STATUS_INVALID_PARAMETER (PAM: 4)
[2009/08/20 15:13:36, 10] nsswitch/winbindd_cache.c:cache_store_response(2267)
Storing response for pid 4547, len 3240
在 W7 上运行本地 GP(不记得,但在 2000 和 2003 中它是 gpedit.msc)。查找本地机器策略->计算机配置->windows设置->本地策略->安全选项->网络安全:LAN Manager身份验证级别
设置 LM 和 NTLM - 如果协商,使用 NTLMv2 会话
正确的解决方案是使用更新的 samba 发行版中的 ntlm_auth 程序:samba 3.4 和 samba 3.5 似乎可以毫无问题地使用 NTLMv2 对 Win7 进行身份验证。Samba 3.0 无法做到这一点。
您不能在 NTLM 中真正做到这一点。您必须使用 kerberos,如Getting Squid to authentication with kerberos and Windows 2008/2003/7/XP中所述。