一、密码安全策略:
密码相关的安全策略,主要是通过 /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     #清空失败次数记录,即解锁用户

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐