Linux密码复杂度设置及登录失败策略设置方式
作者:李Da壮
本文主要讲述了如何在Ubuntu和CentOS系统中设置密码规则、安装crackilib模块、修改PAM配置文件以增强安全性和限制登录失败次数等措施,以提高系统的安全性
Ubunu设置
设置密码规则
安装crackilib模块
sudo apt-get install libpam-cracklib
修改 /etc/pam.d/common-password
文件
添加以下配置信息
retry=3
允许重试次数minlen=8
密码最小长度difok=3
默认值是1,允许新旧密码中相同的字符数ucredit
新密码中至少有1个大写字符lcredit=-1
新密码中至少有1个小写字符dcredit=-1
新密码中至少有1个数字ocredit=-1
新密码中至少有1个特殊字符enforce_for_root
此规则对root生效
# here are the per-package modules (the "Primary" block) password requisite pam_cracklib.so retry=3 minlen=8 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 enforce_for_root password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 remember=5
设置密码过期时间
修改 /etc/login.defs
文件以下配置
# 设置密码过期时间 99999表示用不过期 PASS_MAX_DAYS 99999 # 两次修改密码最小时间间隔 PASS_MIN_DAYS 0 # 密码过期前7天提醒 PASS_WARN_AGE 7
只针对新用户生效,老用户不生效
可使用chage -M 180 root
命令设置老用户过期时间
设置用户登录失败策略
auth required pam_tally2.so deny=3 lock_time=20 unlock_time=60 even_deny_root root_unlock_time=60
修改 /etc/pam.d/common-auth
文件,添加下面配置
deny=3
允许登录失败次数lock_time=10
每次登录失败锁定时间,单位 秒unlock_time=3600
触发登录失败次数后锁定时间 单位 秒even_deny_root
针对所有用户生效,包括root
CentOS7版本以上设置
设置密码规则
编辑/etc/pam.d/system-auth
添加以下配置
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 difok=5 enforce_for_root
minlen=8
密码最小长度ucredit=-1
新密码中至少有1个大写字符lcredit=-1
新密码中至少有1个小写字符dcredit=-1
新密码中至少有1个数字ocredit=-1
新密码中至少有1个特殊字符enforce_for_root
此规则对root生效
设置密码过期时间(与Ubuntu相同)
修改 /etc/login.defs
文件以下配置
# 设置密码过期时间 99999表示用不过期 PASS_MAX_DAYS 99999 # 两次修改密码最小时间间隔 PASS_MIN_DAYS 0 # 密码过期前7天提醒 PASS_WARN_AGE 7
只针对新用户生效,老用户不生效
可使用chage -M 180 root
命令设置老用户过期时间
设置用户登录失败策略
修改 /etc/pam.d/system-auth
文件,添加下面配置
auth required pam_tally2.so deny=3 lock_time=20 unlock_time=60 even_deny_root root_unlock_time=60
deny=3
允许登录失败次数lock_time=10
每次登录失败锁定时间,单位 秒unlock_time=3600
触发登录失败次数后锁定时间 单位 秒even_deny_root
针对所有用户生效,包括root
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。