赞
踩
密码相关的安全策略,主要是通过 /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个其他符合
通常会在下面4个文件中配置策略:
/etc/pam.d/system-auth:全局限制,会对所有登录方式做限制
/etc/pam.d/login:只对本地终端用户登录做限制
/etc/pam.d/remote:只对远程telnet做限制
vim /etc/pam.d/sshd:只对ssh登录做限制
示例:根据不同的登录方式修改相应的文件即可,控制参数都是一样的。(添加在文件第二行)
- #找到包含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 模块实现的,比如尝试登录失败多少次就锁定用户多少分钟。同样,该模块对应的配置文件路径也是在/etc/pam.d/目录下。
1、设置用户远程登录的安全策略
参数字段说明:
- even_deny_root #同时也限制root用户;
- deny #设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
- unlock_time #设定普通用户锁定后,多少时间后解锁,单位是秒;
- root_unlock_time #设定root用户锁定后,多少时间后解锁,单位是秒;
示例:登录失败达到3次,就锁定用户,普通用户锁定1分钟,root用户锁定5分钟
auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=300
解锁用户:
- $ pam_tally2 --user <username> #查看用户登录失败次数记录
- $ pam_tally2 --user <username> --reset #清空失败次数记录,即解锁用户
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。