4.2. 使用 authconfig配置系统密码
4.2.1. 密码安全性
如果密码以纯文本格式存储,它们很容易被破解、未经授权的访问或篡改。为防止这种情况,可以使用加密哈希算法安全地存储密码哈希摘要。IdM 中支持的推荐哈希算法是 SHA-512,它使用 64 位词语,以及 salt 和扩展来实现额外的安全性。为确保向后兼容,还支持 SHA-256、DES、BigCrypt 和 MD5 哈希算法。
重要
如果您不需要向后兼容,请只使用 SHA-512,因为它更安全。
4.2.1.1. 在 UI 中配置密码哈希
Local Authentication Options 选项卡设置如何保存本地密码。Password Hashing Algorithm 下拉菜单将算法设置为安全地存储密码哈希。
- 打开 authconfig UI,如 第 2.2.3 节 “启动 authconfig UI” 所述。
- 打开 Advanced Options 选项卡。
- 选择在 Password Hashing Algorithm 下拉菜单中使用的算法。
4.2.1.2. 在命令行中配置密码哈希
要设置或更改用于安全存储用户密码摘要的哈希算法,请使用
--passalgo
选项和算法的短名称。以下示例使用 SHA-512 算法:
[root@server ~]# authconfig --passalgo=sha512 --update
4.2.2. 密码复杂性
密码复杂性 设置本地用户帐户必须允许密码的强程度。复杂性是长度和字符类变化的组合。查看它的一种方式是,有两个部分可以为复杂密码设置策略:确定哪些字符类型可以在密码中使用(如大写字母和小写字母及特殊字符),以及在密码中使用这些字符的方式(必须持续多长时间,以及这些字符可以重复的频率)。
4.2.2.1. 在 UI 中配置密码复杂性
- 打开 authconfig UI,如 第 2.2.3 节 “启动 authconfig UI” 所述。
- 打开 Password Options 选项卡。
- 为密码设置 最低要求 :
- 密码的最小长度
- 密码必须使用的最小字符类数。
- 启用 必须 用于密码的字符类。例如,大写字母可以与任何密码一起使用,但如果选择了 Uppercase 复选框,则每个密码都必须使用大写字母。
- 设置字符类可以连续重复的次数。(如果设置为零,则没有重复限制。)对于 相同的 Character 字段,这设置可重复单个字母或字符的频率。例如,如果设置为 2,则允许 ssecret,但 sssecret 被拒绝。同样,同类 会对字符类(大写、数字、特殊字符)的任意字符的多次设置限制。例如,如果设置为 3,secret!! 是允许的,但 secret!@ 或 secret1234 将被拒绝。
4.2.2.2. 在命令行中配置密码复杂性
在注释行中定义密码复杂性时,有两个半值用于设置要求。第一种方法是设置有关如何构建密码的要求(密码长度、字符长度、必须重复的字符数)以及必须使用的不同类型的字符:
- 最小长度(
--passminlen
)。 - 必须使用的不同类型的字符的最小数量(
--passminclass
)。 - 字符可以连续重复的次数(
--passmaxrepeat
)。将它设置为零表示没有重复限制。 - 可以在一行中使用相同类型的字符(如数字)的时间数(--
passmaxclassrepeat
)。将它设置为零表示没有重复限制。
第二半是定义允许用于密码的字符类型或类别。所有字符类型都是隐式允许的;使用
--enablereq
Type 选项表示绝对必需一个给定类,或者拒绝密码。(相反,还可明确拒绝类型。)
- 大写字母(--
enablerequpper
) - 小写字母(
--enablereqlower
) - 数字(
--enablereqdigit
) - 特殊字符(
--enablereqother
)
例如,这设置最少 9 个字符的长度,不允许字符或类重复两次,并且需要大写和特殊字符。
[root@server ~]# authconfig --passminlen=9 --passminclass=3 --passmaxrepeat=2 -passmaxclassrepeat=2 --enablerequpper --enablereqother --update