20.4. 管理密码策略


密码策略通过强制执行一定级别的安全性,最大程度降低使用密码的风险。例如,密码策略可以定义以下内容:
  • 用户必须根据计划更改其密码。
  • 用户必须提供非缓解密码。
  • 密码语法必须满足某些复杂性要求。
警告
当使用密码管理员帐户或 Directory Manager (root DN)设置密码时,会绕过密码策略,且不会验证。不要将这些帐户用于常规用户密码管理。仅使用它们来执行需要绕过密码策略的密码管理任务。
目录服务器支持精细的密码策略,因此密码策略可以应用到整个目录(global 密码策略)、一个特定子树(subtree-levellocal 密码策略) 或一个特定用户 (user-levellocal密码策略)。
应用到用户帐户的完整密码策略由以下元素组成:
  • 密码策略检查的类型或级别。此信息指示服务器是否应该检查并强制执行全局密码策略,还是 local (subtree/user-level)密码策略。
    密码策略在经过验证的 pyramid 中工作,从常规到特定。全局密码策略由子树级密码策略取代,该策略由用户级密码策略取代。条目只强制使用一个密码策略 ; 密码策略不会被添加。这意味着,如果在全局或子树级别策略中配置了特定属性,但没有在用户级密码策略中配置,则尝试登录时不会为用户使用属性,因为活跃的策略是用户级别策略。
  • 密码添加和修改信息。密码信息包括密码语法和密码历史记录详细信息。
  • 绑定信息。绑定信息包括允许的宽限期、密码过期属性和跟踪绑定失败的数量。
注意
建立密码策略后,可以通过配置帐户锁定策略来防止用户密码受到潜在的威胁。帐户锁定可防止试图通过重复猜测用户密码来进入该目录的黑客。

20.4.1. 配置全局密码策略

默认情况下禁用全局密码策略设置。本节提供了配置全局密码策略的一些示例。
注意
配置密码策略后,配置帐户锁定策略。详情请查看 第 20.9 节 “配置基于密码的帐户锁定策略”

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

使用 dsconf 工具来显示并编辑全局密码策略设置:
  1. 显示当前设置:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy get
    Global Password Policy: cn=config
    ------------------------------------
    passwordstoragescheme: PBKDF2_SHA256
    passwordChange: on
    passwordMustChange: off
    passwordHistory: off
    passwordInHistory: 6
    ...
  2. 调整密码策略设置。例如,要启用密码语法检查并将密码的最小长度设置为 12 个字符,请输入:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdchecksyntax=on --pwdmintokenlen=12
    如需可用设置的完整列表,请输入:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --help
  3. 启用密码策略:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdlockout on

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

使用 Web 控制台配置全局密码策略:
  1. 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录目录服务器”
  2. 选择实例。
  3. 打开 Database 菜单。
  4. 密码策略 菜单中, 选择 Global Policy
  5. 设置全局密码策略设置。您可以在以下类别中设置参数:
    • 常规设置,如密码存储方案
    • 密码过期设置,如密码过期的时间。
    • 帐户锁定设置,比如在应锁定帐户的登录尝试的次数后。
    • 密码语法设置,如最小密码长度。
    要显示参数的 cn=config 条目中的工具提示和对应的属性名称,请将鼠标光标悬停在设置上。详情请查看 红帽目录服务器配置、命令和文件参考中的参数描述
  6. 点击 Save

20.4.2. 使用本地密码策略

与定义整个目录的设置的全局密码策略不同,本地密码策略是特定用户或子树的策略。
当细粒度密码策略没有设置密码语法时,如果 nsslapd-pwpolicy-inherit-global 参数为 on,您可以从全局策略继承语法。
如果定义了-- pwpinheritglobal 选项,则 passwordchecksyntax 选项在本地策略中被设置为 OFF,并在全局策略中设置为 ON,您可以将以下属性从全局策略继承到本地策略:
  • passwordchecksyntax
  • passwordminlength
  • passwordmindigits
  • passwordminalphas
  • passwordminuppers
  • passwordminlowers
  • passwordminspecials
  • passwordmin8bit
  • passwordmaxrepeats
  • passwordmincategories
  • passwordmintokenlength

20.4.2.1. 目录服务器存储本地密码策略条目

当您使用 dsconf localpwp adduserdsconf localpwp addsubtree 命令时,Directory 服务器会自动创建用于存储策略属性的条目:
  • 对于子树(如 ou=people,dc=example,dc=com),添加了以下条目:
    • 子树级别的容器条目(nsPwPolicyContainer),用于保存子树及其所有子级的各种密码策略相关条目。例如:
      dn: cn=nsPwPolicyContainer,ou=people,dc=example,dc=com
      objectClass: top
      objectClass: nsContainer
      cn: nsPwPolicyContainer
    • 用于保存特定于子树的所有密码策略属性的实际密码策略规格条目(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
    • CoS 模板条目(nsPwTemplateEntry),其具有指向上述(nsPwPolicyEntry)条目的 pwdpolicysubentry 值。例如:
      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
    • 子树级别的 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
  • 对于用户(例如 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
    • 用于保存特定于用户的密码策略属性的实际密码策略规格条目(nsPwPolicyEntry)。例如:
      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

20.4.2.2. 配置本地密码策略

配置本地密码策略:
注意
目前,您只能使用命令行设置本地密码策略。
  1. 验证子树或用户条目的本地密码策略是否已存在。例如:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp get "ou=People,dc=example,dc=com"
    Error: The policy wasn't set up for the target dn entry or it is invalid
    如果没有本地策略,请创建一个:
    • 创建子树密码策略:
      # dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp addsubtree "ou=People,dc=example,dc=com"
    • 创建用户密码策略:
      # dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp adduser "uid=user_name,ou=People,dc=example,dc=com"
    重要
    当您创建新的本地策略时,前面的命令会自动将 cn=config 条目中的 nsslapd-pwpolicy-local 参数设置为 上的
    如果没有启用本地密码策略,请手动将参数设置为 off
    dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdlocal off
  2. 设置本地策略属性。例如,要启用密码过期并将最长密码期限设置为 14 天(1209600 秒):
    • 在子树密码策略中:
      # dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --pwdexpire=on --pwdmaxage=1209600 "ou=People,dc=example,dc=com"
    • 在用户密码策略中:
      # dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --pwdexpire=on --pwdmaxage=1209600 "uid=user_name,ou=People,dc=example,dc=com"
    如需可用设置的完整列表,请输入:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com localpwp set --help
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部