ntlm_auth – 可以使用旧密码和新密码在AD中login

我有AD和ntlm_auth的问题。 我使用以下命令查询AD服务器以检查用户是否存在:

ntlm_auth --use-cached-creds --username=SOME_USER --password=SOME_PASS --domain=SOME_DOMAIN 

但是,当我在AD中更改用户的密码时,以下两个查询都有效:

 ntlm_auth --use-cached-creds --username=SOME_USER --password=OLD_PASS --domain=SOME_DOMAIN ntlm_auth --use-cached-creds --username=SOME_USER --password=NEW_PASS --domain=SOME_DOMAIN 

如果我删除/var/cache/samba/.tdbcaching文件,则只能使用NEW_PASSlogin。 我该如何解决这个问题? 有没有办法让服务器不caching密码? 或ntlm_auth的任何标志,我可以使用不考虑old_password?

我正在使用CentOS5和ntlm_auth 3.3.8。

提前致谢。

听起来就像您正在运行Server 2003 SP1中引入的“function”,至less仍然存在于Server 2008 R2中。 默认情况下,域控制器现在允许最近一次以前的密码用于NTLM身份validation一个小时。 此行为可以通过在HKLM\SYSTEM\CurrentControlSet\Control\Lsa创buildOldPasswordAllowedPeriod的DWORD值来修改。 该值以分钟为单位,值为0将禁用它,不需要重新启动。 还要注意的是:

  1. 这仅适用于NTLM,而不适用于Kerberos身份validation。
  2. 必须在每个域控制器上进行此更改。
  3. 用户的密码策略必须启用密码历史logging,否则该function将被禁用。

有关详细信息,请参阅Windows Server 2003 Service Pack 1修改NTLMnetworking身份validation行为 。

编辑:给信贷在哪里,因为我原来偶然发现在http://timstechnoblog.blogspot.com/2010/02/old-password-still-valid-for-hour.html这篇文章,并记住这个问题是没有答案。

ntlm_auth默认使用/etc/samba/smb.conf。 尝试在smb.conf中configuration下面的标签

 winbind offline logon = false