在上周刚配合了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