一、密码安全策略:
密码相关的安全策略,主要是通过 /etc/login.defs 与 pam_cracklib.so 实现的。
/etc/login.defs:只控制了账号密码的有效期和最小长度。修改完/etc/login.defs文件后,会立即生效,但是它只对修改后创建的用户生效。
pam_cracklib.so:该模块实现了账户密码的复杂度控制。早期用的是pam_cracklib.so模块,后来改成用pam_pwquality.so了,该模块完全兼容旧的pam_cracklib.so模块。该模块对应的配置文件路径在/etc/pam.d/目录下。
1、设置密码的有效期和最小长度
/etc/login.defs参数说明:
PASS_MAX_DAYS 90 #密码过期时间,设置90表示90天后过期,默认为99999,表示永不过期(Maximum number of days a password may be used)
PASS_MIN_DAYS 2 #两次修改密码的最小间隔时间(Minimum number of days allowed between password changes.)
PASS_MIN_LEN 8 #密码最小长度,对于root无效(Minimum acceptable password length.)
PASS_WARN_AGE 7 #Number of days warning given before a password expires.
2、设置用户密码的复杂度
可执行【man pam_cracklib】命令,查看pam_cracklib的相关控制参数说明:
minlen=N #新密码最小长度
difok=3 #允许的新、旧密码存在相同字符的个数,默认为5。
dcredit=-3 #新密码中至少包含3个数字
lcredit=-3 #新密码中至少包含3个小写字母
ucredit=-1 #新密码中至少包含1个大写字母
ocredit=-1 #新密码中至少包含1个其他符合
示例:根据不同的登录方式修改相应的文件即可,控制参数都是一样的。(添加在文件第二行)
#找到包含pam_pwquality.so模块的行,将原有行注释并修改为如下的新配置(要放在文件的第二行,也就是在#%PAM-1.0下面的一行,否则可能会不起作用)
#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 difok=3 dcredit=-3 lcredit=-3 ucredit=-1 ocredit=-1
二、登录安全策略
登录安全相关的控制策略,主要是通过 pam_tally2.so 模块实现的,比如尝试登录失败多少次就锁定用户多少分钟。同样,该模块对应的配置文件路径也是在vi /etc/pam.d/login目录下。
1、设置用户远程登录的安全策略
参数字段说明:
even_deny_root #同时也限制root用户;
deny #设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time #设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time #设定root用户锁定后,多少时间后解锁,单位是秒;
一、在字符终端下,实现某一用户连续错误登陆N次后,就锁定该用户X分钟。
执行 vi /etc/pam.d/login
在#%PAM-1.0 下新起一行,加入
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10
如果不限制root用户,则可以写成
auth required pam_tally2.so deny=3 unlock_time=5
解锁用户:
$ pam_tally2 --user <username> #查看用户登录失败次数记录
$ pam_tally2 --user <username> --reset #清空失败次数记录,即解锁用户