在RHEL7/CentOS7操作系统中如何设置密码策略及复杂度

在上周刚配合了Linux操作系统安全等保的测评,密码策略及复杂性是必查的最基础内容。在Red Hat Enterprise Linux 7和相同版本的CentOS操作系统中,我们该如何设置密码策略及复杂性呢?

一、密码复杂度:定期更换策略,避免弱口令

应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;建议操作系统对登录的用户进行身份标识和鉴别,身份鉴别信息配置复杂度要求开启定期更换策略。

解决方案

修改 /etc/login.defs文件,加入如下内容即可:

[root@yunweixia.com ~]#  vi /etc/login.defs
# 密码最大有效期 
PASS_MAX_DAYS 180
# 两次修改密码的最小间隔时间
PASS_MIN_DAYS 1
# 密码最小长度
PASS_MIN_LEN 8
# 密码过期前7天开始提示
PASS_WARN_AGE 7

二、密码复杂度:设置密码强度

密码强度主要涉及到密码长短、密码是否包含数字、密码是否包含大写字母、密码是否包含小写字母、密码是否包含其他字符、新密码所需的最小字符种类、密码最大相同字符连续数量、新密码中同一类别允许的最大连续字符数、新密码和旧密码相同字符数数量等。

解决方案

在Red Hat Enterprise Linux 7和相同版本的CentOS操作系统下,我们需要编辑/etc/pam.d/system-auth文件,将如下内容在相应位置添加即可。

password    requisite     pam_pwquality.so  try_first_pass local_users_only retry=3 difok=3 minlen=8  lcredit=-1 dcredit=-1 maxrepeat=3  reject_username enforce_for_root
password    requisite     pam_pwhistory.so remember=5 use_authtok

编辑/etc/pam.d/system-auth文件,在相应位置添加内容。

[root@yunweixia.com ~]# vi /etc/pam.d/system-auth
#%PAM-1.0
auth        required      pam_env.so
auth        required      pam_tally2.so deny=6 onerr=fail unlock_time=120
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so

session     required      pam_limits.so
password    requisite     pam_pwquality.so  try_first_pass local_users_only retry=3 difok=3 minlen=8  lcredit=-1 dcredit=-1 maxrepeat=3  reject_username enforce_for_root
password        requisite          pam_pwhistory.so remember=5 use_authtok
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

password    required      pam_deny.so
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

扩展阅读

retry = 3 (在返回错误之前,最多提示用户N次。默认值为1)

difok = 5(新密码和旧密码相同字符数数量)

minlen=8(新密码的最小可接受大小)

lcredit=1(新密码中包含小写字符的最大数量,如果小于0,则为新文件中的最小小写字符数)

dcredit=-1(密码中包含所需数字的最小数量,如果小于0,则为新文件中的最小小写字符数)

maxrepeat=3(新密码中允许的最大连续相同字符数。如果该值为0,则禁用该检查)

ucredit=-1(密码中包含大写字符的最小数量,此项为新密码中包含大写字符的最大数,如果小于0,则为新文件中的最小大写字符数)

ocredit=1 (此项为新密码中包含其他字符的最大数,如果小于0,则为新文件中的最小其他字符数,等于0,则不做强制要求)

minclass=1(新字符所需的最小字符类数(数字、大写、小写、其他)

maxclassrepeat=0(中同一类允许的最大连续字符数,如果该值为0,则禁用该检查)

enforce_for_root (对根用户密码强制执行质量检查)

remember=5 (每次修改密码时设置的新密码不能是前n次使用过的密码)

原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/rhel7-centos7-password-policy-complexity-setup-guide.html

(0)
运维侠的头像运维侠共建用户
上一篇 2025年7月12日 18:11
下一篇 2025年7月14日 18:11

相关推荐

发表回复

登录后才能评论