centos服务器密码策略配置需分三部分:密码复杂度(通过/etc/pam.d/system-auth中pam_pwquality.so设置minlen、ucredit等参数)、有效期(/etc/login.defs设pass_max_days等,已有用户用chage)、失败锁定(pam_tally2.so设deny和unlock_time)。

CentOS 服务器密码策略配置核心是三块:密码复杂度、有效期控制、失败锁定机制。实际操作中,不能只改一个文件就认为生效,必须分层配置、注意作用范围(新用户 vs 现有用户),并验证效果。
密码复杂度强制执行
关键在 /etc/pam.d/system-auth 文件,使用 pam_pwquality.so 模块(CentOS 7 默认替代了旧的 pam_cracklib.so)。
在 password requisite pam_pwquality.so 行后追加或修改参数:
-
minlen=8:密码至少 8 位 -
ucredit=-1:至少 1 个大写字母 -
lcredit=-1:至少 1 个小写字母 -
dcredit=-1:至少 1 个数字 -
ocredit=-1:至少 1 个特殊字符(如!@#$%) -
difok=5:新旧密码最多重复 5 个字符 -
retry=3:密码不合规时允许重试 3 次 -
enforce_for_root:对 root 用户也强制生效(启用前需评估运维风险)
⚠️ 操作前务必备份:cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
密码有效期统一管理
修改 /etc/login.defs 控制新建用户的默认策略:
-
PASS_MAX_DAYS 90:密码最长使用 90 天 -
PASS_MIN_DAYS 0:允许随时修改(设为正数可防频繁回退) -
PASS_WARN_AGE 14:到期前 14 天开始登录时提醒
注意:该配置仅对新增用户生效。已有用户需单独用 chage 设置:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
-
chage -M 90 username -
chage -W 14 username -
chage -l username可查看当前策略
登录失败自动锁定账户
仍在 /etc/pam.d/system-auth 中添加 auth 规则:auth [default=die] pam_tally2.so deny=5 unlock_time=180 even_deny_root
-
deny=5:连续输错 5 次即锁定 -
unlock_time=180:3 分钟后自动解锁 -
even_deny_root:root 账户同样受限制(谨慎启用)
锁定期可手动清空:pam_tally2 --user=username --reset
会话超时与 SSH 空闲断连
- 终端会话:在
/etc/profile中加export TMOUT=900(15 分钟无操作自动退出) - SSH 连接:编辑
/etc/ssh/sshd_config,设:ClientAliveInterval 900ClientAliveCountMax 0
然后重启服务:systemctl restart sshd
所有配置修改后,建议用普通用户执行 passwd 测试复杂度,用错误密码多次登录验证锁定逻辑,再检查 chage -l 和 pam_tally2 --user=xxx 确认状态。不复杂但容易忽略细节。










