CentOS设置密码长度、复杂度策略和定期更换策略
来源:原创
时间:2021-06-06
作者:脚本小站
分类:Linux
在centos或redhat系统中配置密码长度、复杂度策略和定期更换策略方法如下:
这个目录下文件的名称就代表服务的名称:
]# ls /etc/pam.d atd login postlogin-ac smtp system-auth chfn other ppp smtp.postfix system-auth-ac chsh passwd remote sshd systemd-user config-util password-auth runuser su vlock crond password-auth-ac runuser-l sudo fingerprint-auth polkit-1 smartcard-auth sudo-i fingerprint-auth-ac postlogin smartcard-auth-ac su-l
Linux对应的密码策略模块有:pam_passwdqc 和 pam_pwquality。
pam_passwdqc:/etc/login.defs 密码过期时间等策略配置。
pam_pwquality:/etc/security/pwquality.conf 密码复杂度配置。
过期时间等配置:
~]# cat /etc/login.defs ... PASS_MAX_DAYS 90 PASS_MIN_DAYS 0 PASS_MIN_LEN 8 PASS_WARN_AGE 30 ...
详解:
PASS_MAX_DAYS #密码最大有效期 PASS_MIN_DAYS #两次修改密码的最小间隔时间 PASS_MIN_LEN #密码最小长度,对于root无效 PASS_WARN_AGE #密码过期前多少天开始提示
密码复杂度配置:
~]# cat /etc/pam.d/system-auth #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=300 auth required pam_env.so 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 #password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root 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
密码复杂度配置:
password requisite pam_pwquality.so try_first_pass local_users_only retry=5 authtok_type= minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
详解:
minlen=8 密码最小长度为8个字符。 lcredit=-1 密码应包含的小写字母的至少一个 ucredit=-1 密码应包含的大写字母至少一个 dcredit=-1 将密码包含的数字至少为一个 ocredit=-1 设置其他符号的最小数量,例如@,#、! $%等,至少要有一个 enforce_for_root 确保即使是root用户设置密码,也应强制执行复杂性策略。
登陆过期配置:
添加的内容一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!
下面这段如果配置在ssh文件里面就是限制的ssh,如果配置在login文件里限制的就是tty处登陆。
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=300
详解:
even_deny_root 也限制root用户; deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户 unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒; root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒; 此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。
连接超时时间:
echo 'export TMOUT=3600' >> /etc/profile source /etc/profile