ntlm_auth-可以使用新旧密码登录 AD

ntlm_auth-可以使用新旧密码登录 AD

我在 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

如果我删除.tdb中的缓存文件/var/cache/samba/,我只能使用 NEW_PASS 登录。我该如何解决这个问题?有没有办法让服务器不缓存密码?或者 ntlm_auth 的任何标志,我可以使用它们来不考虑 old_password?

我正在使用 CentOS5 和 ntlm_auth 3.3.8。

提前致谢。

答案1

听起来你遇到了 Server 2003 SP1 中引入的“功能”,并且至少在 Server 2008 R2 中仍然存在。默认情况下,域控制器现在允许使用最新的先前密码进行 NTLM 身份验证一小时。可以通过创建OldPasswordAllowedPeriodat的 DWORD 值来修改此行为HKLM\SYSTEM\CurrentControlSet\Control\Lsa。该值以分钟为单位,值为 0 将禁用它,并且不需要重新启动。另请注意:

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

Windows Server 2003 Service Pack 1 修改 NTLM 网络身份验证行为了解详情。

编辑:感谢大家的支持,我最初是在http://timstechnoblog.blogspot.com/2010/02/old-password-still-valid-for-hour.html并记得这个问题还没有答案。

答案2

ntlm_auth 默认使用 /etc/samba/smb.conf。尝试在 smb.conf 中配置以下标签

winbind offline logon = false

相关内容