口令复杂度怎么统管
口令复杂度由 PAM 的 pam_pwquality 模块控制:长度、字符类别数、重复字符限制与重试次数都在 /etc/security/pwquality.conf 中配置。它统一约束所有走 PAM 的改密入口,包括 passwd、登录改密与图形界面,比只改 login.defs 更全面。
基本信息
| 配置文件 | /etc/security/pwquality.conf |
|---|---|
| 引用位置 | PAM 栈中的 system-auth、password-auth 或 common-password |
| 关键参数 | minlen、minclass、retry、maxrepeat |
| 按类别要求 | dcredit、ucredit、lcredit、ocredit |
| 生效范围 | 所有经 PAM 的改密操作 |
典型使用场景
- 等保整改要求口令具备大小写、数字与符号组合
- 统一内部改密入口的复杂度要求
- 禁止包含用户名或字典词的弱口令
- 限制连续重复字符,避免简单重复口令
- 为不同机器建立同一份口令策略基线
关键配置项
关键配置项
minlen = 10 # 最小长度
minclass = 4 # 至少包含几类字符(大写、小写、数字、符号)
retry = 3 # 不满足策略时允许重试次数
maxrepeat = 3 # 同一字符最多连续出现次数
# 按类别逐个要求时可用:
# dcredit = -1 ucredit = -1 lcredit = -1 ocredit = -1引用检查与测试
引用检查与测试
grep -r pwquality /etc/pam.d/ | head # 确认 PAM 栈是否引用该模块
grep -r pwquality /etc/pam.d/system-auth # RPM 系常见引用位置
grep -r pwquality /etc/pam.d/common-password # DEB 系常见引用位置
passwd testuser # 用测试账户验证策略是否拦截弱口令
journalctl -t pwquality -n 20 --no-pager 2>/dev/null | tail # 查看拒绝记录参数含义
| 参数 | 含义 | 常见取值 |
|---|---|---|
| minlen | 口令最小长度 | 8 到 12 |
| minclass | 最少字符类别数 | 3 或 4 |
| retry | 不满足时的重试次数 | 3 |
| maxrepeat | 同字符最大连续次数 | 3 |
| difok | 与旧口令的最少差异字符数 | 按合规要求设置 |
不同发行版由 system-auth、password-auth 或 common-password 引用该模块;改配置前先 grep 确认引用位置,只改配置文件而模块未被引用时策略不会生效。
上线验证动作
- 用测试账户设弱口令,确认被拒绝
- 再设一个合规口令,确认能通过
- 核对 PAM 引用位置与参数生效情况
- 确认管理账号改密同样受策略约束
- 把策略基线登记进配置核对清单