2.5. 配置基于密码的帐户锁定策略


基于密码的帐户锁定策略可防止攻击者重复尝试猜测用户密码。您可以将帐户锁定策略配置为在指定次数尝试绑定后锁定用户帐户。

如果配置了基于密码的帐户锁定策略,Directory 服务器会在用户条目的以下属性中维护锁定信息:

  • passwordRetryCount :存储失败的绑定尝试数量。如果用户成功绑定到 retryCountResetTime 中的时间后,目录服务器会重置该值。当用户第一次绑定失败后,会出现此属性。
  • retryCountResetTime :存储重置 passwordRetryCount 属性的时间。当用户第一次绑定失败后,会出现此属性。
  • accountUnlockTime :存储用户帐户被解锁的时间。在第一次锁定帐户后会出现此属性。

当 Directory 服务器在登录失败时锁定帐户时,管理员可以配置以下行为之一:

  • 如果超过限制,服务器锁定帐户。例如,如果将限制设定为 3 次尝试,则锁定会在第四个失败尝试后发生(n+1)。这也意味着,如果第四个尝试成功,目录服务器不会锁定帐户。

    默认情况下,目录服务器使用传统 LDAP 客户端通常预期的传统密码策略。

  • 如果达到限制,服务器锁定帐户。例如,如果将限制设定为 3 次尝试,服务器会在第三个失败尝试(n)后锁定帐户。

    现代 LDAP 客户端通常预期这种行为。

这个步骤描述了如何禁用旧的密码策略。更改策略后,目录服务器会阻止达到配置的限制的用户的登录尝试。

前提条件

  • 您已配置了帐户锁定策略。

流程

  • 要禁用旧的密码策略并在达到限制时锁定帐户,请输入:

    # dsconf <instance_name> config replace passwordLegacyPolicy=off

验证

  1. 显示 passwordmaxfailure 设置的值:

    # dsconf <instance_name> pwpolicy get passwordmaxfailure
    passwordmaxfailure: 2
  2. 尝试多次使用无效的密码绑定,超过 passwordmaxfailure 中设置的值:

    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Invalid credentials (49)
    
    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Invalid credentials (49)
    
    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Constraint violation (19)
    	additional info: Exceed password retry limit. Please try later.

    禁用旧密码后,目录服务器会在第二次尝试后锁定帐户,并进一步尝试使用 ldap_bind: Constraint violation (19) )错误。

要阻止重复使用密码的登录绑定尝试,请配置基于密码的帐户锁定策略。

重要

在到达或超过配置的最大尝试时目录服务器锁定帐户的行为取决于旧的密码策略设置。

流程

  1. 可选:识别是否启用或禁用旧的密码策略:

    # dsconf <instance_name> config get passwordLegacyPolicy
    passwordLegacyPolicy: on
  2. 启用密码锁定策略,并将最大故障数设置为 2:

    # dsconf <instance_name> pwpolicy set --pwdlockout on --pwdmaxfailures=2
    Successfully updated global password policy

    启用旧的密码策略后,Directory 服务器会在第三个尝试绑定失败后锁定帐户( --pwdmaxfailures 参数的值 + 1)。

    dsconf pwpolicy set 命令支持以下参数:

    • --pwdlockout :启用或禁用帐户锁定功能。默认: off
    • --pwdmaxfailures :设置目录服务器锁定帐户前允许失败的绑定尝试的最大数量。默认: 3

      请注意,如果启用了旧的密码策略设置,则此锁定会稍后尝试。默认: 3

    • --pwdresetfailcount :在 Directory 服务器重置用户条目中的 passwordRetryCount 属性前设置时间(以秒为单位)。默认: 600 秒(10 分钟)。
    • --pwdlockoutduration :设置被锁定的帐户的时间(以秒为单位)。如果将-- pwdunlock 参数设置为 off,则此参数将被忽略。默认: 3600 秒(1 小时)。
    • --pwdunlock :启用或禁用锁定的帐户是否应在一定时间后被解锁或保持禁用,直到管理员手动解锁它们为止。默认: 上的

验证

  • 尝试使用无效的密码比您在- pwdmaxfailures 参数中设置的值多两次绑定:

    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Invalid credentials (49)
    
    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Invalid credentials (49)
    
    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Invalid credentials (49)
    
    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Constraint violation (19)
            additional info: Exceed password retry limit. Please try later.

    启用旧密码后,Directory 服务器会在超过限制后锁定帐户,并进一步尝试使用 ldap_bind: Constraint violation (19) )错误阻止帐户。

要阻止重复使用密码的登录绑定尝试,请配置基于密码的帐户锁定策略。

重要

在到达或超过配置的最大尝试时目录服务器锁定帐户的行为取决于旧的密码策略设置。

前提条件

  • 在 web 控制台中登录到实例。

流程

  1. 可选:识别是否启用或禁用旧的密码策略:

    # dsconf <instance_name> config get passwordLegacyPolicy
    passwordLegacyPolicy: on

    此设置在 web 控制台中不可用。

  2. 导航到 Database Password Policies Global Policy Account Lockout
  3. 选择 Enable Account Lockout
  4. 配置锁定设置:

    • 失败的登录次数,即锁定帐户 :设置目录服务器锁定帐户前允许的最大绑定尝试数。
    • time Until Failure Count: 设置目录服务器在 Directory 服务器在用户条目中重置 passwordRetryCount 属性前的时间(以秒为单位)。
    • 时间 Until Account Unlocked :设置帐户的时间(以秒为单位)。如果您禁用 Do Not Lockout Account forever,则忽略此参数
    • 不要锁定帐户:启用或禁用锁定 的帐户是否在一定时间后被解锁或保持禁用,直到管理员手动解锁它们为止。
  5. Save

验证

  • 尝试多次使用无效的密码绑定,超过您在 Number of Failed Logins this Locks out Account 中设置的值:

    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Invalid credentials (49)
    
    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Invalid credentials (49)
    
    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Invalid credentials (49)
    
    # ldapsearch -H ldap://server.example.com -D "uid=example,ou=People,dc=example,dc=com" -w <invalid-password> -b "dc=example,dc=com" -x
    ldap_bind: Constraint violation (19)
            additional info: Exceed password retry limit. Please try later.

    启用旧密码后,Directory 服务器会在超过限制后锁定帐户,并进一步尝试使用 ldap_bind: Constraint violation (19) )错误阻止帐户。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部