CentOS7密码安全设置

2024-08-07 12:56:11 浏览数 (2)

设置密码复杂度

代码语言:javascript复制
vim /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:密码长度至少 8 位
# lcredit=-1:至少包含一个小写字母
# ucredit=-1:至少包含一个大写字母
# dcredit=-1:至少包含一个数字
# ocredit=-1:至少一个特殊字符
# difok=5:新密码最多与旧密码重复5个字符
# enforce_for_root:对 root 强制执行密码复杂度策略

设置登录会话超时

代码语言:javascript复制
vim /etc/profile
	TMOUT=1800		# 1800 秒超时
	
source /etc/profile

设置密码有效期

代码语言:javascript复制
vim /etc/login.defs		# 只针对新用户生效,老用户不生效

# 新密码最大有效期
PASS_MAX_DAYS 180

# 是否可以修改密码,多少天后可以修改
PASS_MIN_DAYS 0

# 密码最小长度,pam_pwquality 设置优先
PASS_MIN_LEN 8

# 密码失败前多少天在用户登录时通知用户修改密码
PASS_WARN_AGE 15

设置登录失败锁定

代码语言:javascript复制
# 此配置只对控制台有效,ssh 无效
vim /etc/pam.d/system-auth
	# 输错 5 次密码,账号锁定 10 分钟
	auth required pam_tally2.so onerr=fail deny=5 unlock_time=600 root_unlock_time=600
	
	
# 此配置只 ssh 远程有效
vim /etc/pam.d/sshd
	#%PAM-1.0
	auth required pam_tally2.so onerr=fail deny=5 unlock_time=600 root_unlock_time=600
	
	# even_deny_root:也限制 root 用户
	# unlock_time:设置普通用户锁定后,多少时间后解锁,单位是秒
	# root_unlock_time:设定 root 用户锁定后,多少时间后解锁,单位是秒
	

# 限制用户从 tty 登录
vim /etc/pam.d/login
	#%PAM-1.0
	auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10
	
	
	
	
# 查看用户登录失败次数
pam_tally2 --user root

# 解锁指定用户
pam_tally2 -r -u root

例如:

设置连续输错 5 次口令,账号锁定 5 分钟,先检查 PAM 模块版本,搜索 pam_tally2 是否存在

CentOS 配置

代码语言:javascript复制
vim /etc/pam.d/password-auth
# 只需要添加到合适位置即可
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=300
account required pam_tally2.so

Ubuntu 配置

代码语言:javascript复制
vim /etc/pam.d/common-auth
auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=300

# 只需要添加到合适位置即可
vim /etc/pam.d/common-account
account required pam_tally2.so

0 人点赞