3.5. 配置密码策略


密码策略通过强制执行一定级别的安全性,最大程度降低使用密码的风险。例如,您可以定义一个密码策略以确保:

  • 用户必须根据计划更改其密码
  • 用户必须提供非缓解密码
  • 密码语法必须满足某些复杂性要求

3.5.1. 密码策略如何工作

目录服务器支持细粒度密码策略,这些策略在特定的 pyramid 中工作。全局密码策略由子树级密码策略取代,该策略由用户级密码策略取代。

您可以定义:

  • 全局密码策略,应用到整个目录
  • 本地密码策略

    • 应用到特定子树的子树级别策略
    • 用户级策略,应用到特定用户

密码策略没有添加:只有一个密码策略适用于条目。例如,当您在全局或子树级别密码策略中配置特定属性时,但没有在用户级密码策略中配置特定属性,此属性不会应用到用户。在这种情况下,当用户尝试登录时,只有用户级策略处于活跃状态。

警告

当使用密码管理员帐户或 Directory Manager (root DN)设置密码时,您将绕过密码策略。不要将这些帐户用于常规用户密码管理。使用它们仅执行需要绕过密码策略的密码管理任务,如添加预哈希密码,或者有意覆盖当前密码限制,以便在重置后设置临时密码。

应用到用户帐户的完整密码策略由以下元素组成:

  • 密码策略检查的类型或级别。此信息指示服务器是否应该检查并强制执行全局密码策略或本地密码策略。
  • 密码添加和修改信息。密码信息包括密码语法和密码历史记录详细信息。
  • 绑定信息。绑定信息包括允许的宽限期、密码过期属性和跟踪绑定失败的数量。
注意

建立密码策略后,您可以通过配置帐户锁定策略来保护用户密码免受潜在的威胁。帐户锁定通过重复猜测用户密码来防止尝试破坏该目录。

3.5.2. 使用命令行配置全局密码策略

默认情况下禁用全局密码策略设置。您可以使用 dsconf 命令行工具配置全局密码策略。

流程

  1. 显示当前设置:

    # dsconf <instance_name> pwpolicy get
    Global Password Policy: cn=config
    ------------------------------------
    passwordstoragescheme: PBKDF2_SHA256
    passwordChange: on
    passwordMustChange: off
    passwordHistory: off
    passwordInHistory: 6
    ...
    Copy to Clipboard Toggle word wrap
  2. 调整密码策略设置。如需可用设置的完整列表,请输入:

    # dsconf <instance_name> pwpolicy set --help
    Copy to Clipboard Toggle word wrap

    例如,要启用密码语法检查并将密码的最小长度设置为 12 个字符,请输入:

    # dsconf <instance_name> pwpolicy set --pwdchecksyntax on --pwdmintokenlen 12
    Copy to Clipboard Toggle word wrap
  3. 为密码策略启用帐户锁定功能:

    # dsconf <instance_name> pwpolicy set --pwdlockout on
    Copy to Clipboard Toggle word wrap

后续步骤

  • 配置帐户锁定策略,通过重复猜测用户密码来防止尝试破坏该目录。详情请参阅 配置帐户锁定策略

3.5.3. 使用 Web 控制台配置全局密码策略

默认情况下禁用全局密码策略设置。您可以使用 Web 控制台配置全局密码策略。

前提条件

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

流程

  1. 打开 Database Password Policies Global Policy 菜单。
  2. 设置全局密码策略设置。您可以在以下类别中设置参数:

    • 常规设置,如密码存储方案
    • 密码过期设置,如密码过期的时间
    • 帐户锁定设置,比如在应锁定帐户的登录尝试的次数后
    • 密码语法设置,如最小密码长度

      要显示参数的 cn=config 条目中的工具提示和对应的属性名称,请将鼠标光标悬停在设置上。

  3. Save

后续步骤

  • 配置帐户锁定策略,通过重复猜测用户密码来防止尝试破坏该目录。详情请参阅 配置帐户锁定策略

3.5.4. 本地密码策略条目

当您使用 dsconf localpwp addsubtreedsconf localpwp adduser 命令时,Directory 服务器会自动创建用于存储本地密码策略属性的条目。

对于子树,添加了以下条目:

Expand
表 3.1. 子树的本地密码策略条目
条目名称描述内容

nsPwPolicyContainer

子树级别的容器条目

子树及其所有子项的各种与密码策略相关的条目

nsPwPolicyEntry

实际的密码策略规格条目

所有特定于子树的密码策略属性

nsPwTemplateEntry

CoS 模板条目

pwdpolicysubentry 值指向 nsPwPolicyEntry 条目

<COS 定义条目 DN>

子树级别的 CoS 定义条目

COS 定义条目

例 3.1. 子树 ou=people,dc=example,dc=com 的 nsPwPolicyContainer 条目

dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
objectClass: top
objectClass: nsContainer
cn: nsPwPolicyContainer
Copy to Clipboard Toggle word wrap

例 3.2. 子树 ou=people,dc=example,dc=com 的 nsPwPolicyEntry 条目

dn: cn="cn=nsPwPolicyEntry,ou=people,dc=example,dc=com",
 cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
objectclass: top
objectclass: extensibleObject
objectclass: ldapsubentry
objectclass: passwordpolicy
Copy to Clipboard Toggle word wrap

例 3.3. 子树 ou=people,dc=example,dc=com 的 nsPwTemplateEntry 条目

dn: cn="cn=nsPwTemplateEntry,ou=people,dc=example,dc=com",
 cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
objectclass: top
objectclass: extensibleObject
objectclass: costemplate
objectclass: ldapsubentry
cosPriority: 1
pwdpolicysubentry: cn="cn=nsPwPolicyEntry,ou=people,dc=example,dc=com",
     cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
Copy to Clipboard Toggle word wrap

例 3.4. 子树 ou=people,dc=example,dc=com 的 CoS 规格条目

dn: cn=newpwdpolicy_cos,ou=people,dc=example,dc=com
objectclass: top
objectclass: LDAPsubentry
objectclass: cosSuperDefinition
objectclass: cosPointerDefinition
cosTemplateDn: cn=cn=nsPwTemplateEntry\,ou=people\,dc=example,dc=com,
 cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
cosAttribute: pwdpolicysubentry default operational
Copy to Clipboard Toggle word wrap

对于用户,添加了以下条目:

Expand
表 3.2. 用户的本地密码策略条目
条目名称描述内容

nsPwPolicyContainer

父级别的容器条目

用户及其所有子级的各种密码策略相关条目

nsPwPolicyEntry

实际的密码策略规格条目

所有特定于用户的密码策略属性

例 3.5. 用户 uid=user_name,ou=people,dc=example,dc=com 的 nsPwPolicyContainer 条目

dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
objectClass: top
objectClass: nsContainer
cn: nsPwPolicyContainer
Copy to Clipboard Toggle word wrap

例 3.6. The nsPwPolicyEntry entry for a user uid=user_name,ou=people,dc=example,dc=com

dn: cn="cn=nsPwPolicyEntry,uid=user_name,ou=people,dc=example,dc=com",
 cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
objectclass: top
objectclass: extensibleObject
objectclass: ldapsubentry
objectclass: passwordpolicy
Copy to Clipboard Toggle word wrap

3.5.5. 使用命令行配置本地密码策略

与定义整个目录的设置的全局密码策略不同,本地密码策略是特定用户或子树的策略。目前,您只能使用命令行设置本地密码策略。

前提条件

  • 要为创建策略的用户或子树条目已存在于目录中。

流程

  1. 验证子树或用户条目的本地密码策略是否已存在。例如:

    # dsconf <instance_name> localpwp get "ou=People,dc=example,dc=com"
    Enter password for cn=Directory Manager on ldap://server.example.com:
    Error: No password policy was found for this entry
    Copy to Clipboard Toggle word wrap

    如果没有本地策略,请创建一个:

    • 创建 子树 密码策略:

      # dsconf <instance_name> localpwp addsubtree "ou=People,dc=example,dc=com"
      Copy to Clipboard Toggle word wrap
    • 创建用户 密码策略:

      # dsconf <instance_name> localpwp adduser "uid=user_name,ou=People,dc=example,dc=com"
      Copy to Clipboard Toggle word wrap
  2. 设置本地策略属性。如需可用设置的完整列表,请输入:

    # dsconf <instance_name> localpwp set --help
    Copy to Clipboard Toggle word wrap

    例如,要启用密码过期并将最长密码期限设置为 14 天(1209600 秒):

    • 子树 密码策略中:

      # dsconf <instance_name> localpwp set --pwdexpire on --pwdmaxage 1209600 "ou=People,dc=example,dc=com"
      Copy to Clipboard Toggle word wrap
    • 用户密码 策略中:

      # dsconf <instance_name> localpwp set --pwdexpire on --pwdmaxage 1209600 "uid=user_name,ou=People,dc=example,dc=com"
      Copy to Clipboard Toggle word wrap

3.5.6. 使用命令行禁用本地密码策略

当您创建新的本地策略时,cn=config 条目中的 nsslapd-pwpolicy-local 参数会在 自动设置为。如果没有启用本地密码策略,您可以使用命令行手动禁用它。

流程

  • 禁用所有本地策略或删除特定的本地策略:

    • 禁用所有本地密码策略:

      # dsconf <instance_name> pwpolicy set --pwdlocal off
      Copy to Clipboard Toggle word wrap
    • 删除单个现有的 子树 密码策略:

      # dsconf <instance_name> localpwp remove "ou=People,dc=example,dc=com"
      Copy to Clipboard Toggle word wrap
    • 删除单个 现有用户 密码策略:

      # dsconf <instance_name> localpwp remove "uid=user_name,ou=People,dc=example,dc=com"
      Copy to Clipboard Toggle word wrap

3.5.7. 跟踪密码更改时间

密码更改操作是条目的典型修改操作,Directory 服务器会将更新时间记录到 lastModified 操作属性。但是,为了便于更新 Active Directory 同步中的密码或与其他 LDAP 客户端连接,您可以单独记录最后一次密码更改的时间。

在全局或本地密码策略中配置 passwordTrackUpdateTime 参数,以将上次密码更改的时间记录到用户条目的 pwdUpdateTime 操作属性。

前提条件

  • 您有 root 权限。

流程

  1. 上将 passwordTrackUpdateTime 参数设置为 :

    • 对于全局策略,请运行:

      # dsconf <instance_name> pwpolicy set --pwdtrack on
      Copy to Clipboard Toggle word wrap
    • 对于子树或用户级策略,请运行:

      # dsconf <instance_name> localpwp set "ou=people,dc=example,dc=com" --pwdtrack on
      Copy to Clipboard Toggle word wrap

验证

  • 显示策略的当前设置:

    • 对于全局策略,请运行:

      # dsconf <instance_name> pwpolicy get
      
      Global Password Policy: cn=config
      ------------------------------------
      nsslapd-pwpolicy-local: on
      passwordstoragescheme: PBKDF2-SHA512
      ...
      passwordtrackupdatetime: on
      ...
      Copy to Clipboard Toggle word wrap
    • 对于子树或用户级策略,请运行:

      # dsconf <instance_name> localpwp get "ou=people,dc=example,dc=com"
      
      Local Subtree Policy Policy for "ou=people,dc=example,dc=com": cn=cn\3DnsPwPolicyEntry_subtree\2Cou\3Dpeople\2Cdc\3Dexample\2Cdc\3Dcom,cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
      ------------------------------------
      ...
      passwordtrackupdatetime: on
      Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat