如何在RHEL Linux中实现密码策略

时间:2020-01-09 10:40:52  来源:igfitidea点击:

在本文中,我们将在CentOS/RHEL 7 Linux节点上实现具有特定要求列表的密码策略。
这些要求包含在单独的标题中。
在RHEL/CentOS 7中,我们可以使用pwquality.conf实施密码策略,但是我们也可以继续在/etc/pam.d中使用system-authpassword-auth,但是使用pwquality.conf,实现密码策略的步骤相对简单一些。

实施密码政策

使用RHEL 7,我们可以通过/etc/security/pwquality.conf实现密码策略,其中pwquality.conf是libpwquality库的配置。
它提供了一种配置系统密码的默认密码质量要求的方法。
该文件由libpwquality库和使用该库检查和生成密码的实用程序读取。
该文件具有非常简单的"名称=值"格式,可能的注释以字符开头。
行首,行尾以及=符号周围的空格将被忽略。

要求1.保留使用密码的历史记录(无法重复使用的先前密码的数量)

在" /etc/pam.d/system-auth"和" /etc/pam.d/password-auth"中插入以下内容(在" pam_pwquality.so"行之后):

password    requisite     pam_pwhistory.so remember=5 use_authtok

要求2.密码大小(新密码的最小可接受大小)。

/etc/security/pwquality.conf中插入以下选项:

minlen = 9

新密码的最小可接受大小(如果未禁用信用,则加一个默认值)。
除了新密码中的字符数外,还会为每种不同的字符(其他,大写,小写和数字)提供信用(长度为+1)。
此参数的缺省值为9,这对于所有相同类型字符的旧式UNIX密码均适用,但可能太低而无法利用md5系统的添加安全性。

说明:

在" Cracklib"本身中有一对长度限制," 4太短"限制是硬编码的,定义的限制(6)将在不参考minlen的情况下进行检查。
如果要求密码长度不能超过5个字符,则不应使用此模块。

要求3.为密码中的位数设置限制。

最小数量的数字字符(dcredit = N)

(N> = 0)这是新密码中包含数字的最大信用额。
如果密码少于或者少于N个数字,则每个数字将为满足当前"最小"值而计数+1. " dcredit"的默认值为1,这是" minlen"的建议值,该值小于10. (N <0)这是新密码必须满足的最小位数。

/etc/security/pwquality.conf中插入以下选项:

dcredit = -1

这里-1是密码必须有数字的最低信用额度

要求4.设置密码中大写字符数的限制

最少的大写字母(ucredit = N)

(N> = 0)这是在新密码中使用大写字母的最大功劳。
如果密码中的大写字母少于或者少于N个,则每个字母将为满足当前的" minlen"值而加+1. " ucredit"的默认值为1,这是" minlen"的建议值,该值小于10. (N <0)这是新密码必须满足的最小大写字母数。

/etc/security/pwquality.conf中插入以下选项:

ucredit = -1

-1是密码中包含大写字符的最低信用额度。

要求5.为密码中的小写字符数设置限制

最少的小写字母(lcredit = N)

(N> = 0)这是在新密码中使用小写字母的最大功劳。
如果小写字母少于或者少于N个,则每个字母将为满足当前的" minlen"值计算+1. " lcredit"的默认值为1,这是" minlen"的建议值,该值小于10. (N <0)这是新密码必须满足的最小小写字母数。

/etc/security/pwquality.conf中插入以下选项:

lcredit = 1

这里1是密码中使用小写字符的最大信用

要求6.设置密码中其他字符数的限制

最少的非字母数字字符(ocredit = N)

(N> = 0)这是在新密码中包含其他字符的最大功劳。
如果密码中的其他字符少于或者少于N个,则每个字符将计数+1以符合当前的" minlen"值。
" ocredit"的默认值为1,这是" minlen"的建议值,该值小于10. (N <0)这是新密码必须满足的其他最小字符数。

/etc/security/pwquality.conf中插入以下选项:

ocredit = 1

这里1是密码中包含其他字符的最高信用

  • "信用值> 0":在新密码中包含各个字符的最大信用。

  • "信用值<0":在新密码中包含各个字符所需的最低强制信用。

  • "信用值= 0":对于新密码中的各个字符类别,没有强制性要求。

要求7.在新密码中设置允许的连续连续最大字符数

新密码中所需字符类别的最小数量

/etc/security/pwquality.conf中插入以下选项:

minclass = 1

要求8.强制执行root以提高密码的复杂性

/etc/security/pwquality.conf中插入以下选项:

enforce_for_root

提示:

如果这样不起作用,则将enforce_for_root放置在/etc/pam.d/system-auth和/etc/pam.d/password-auth中。