在 Linux 系统中配置强密码策略
系统管理员在维护 Linux 安全性时,必须重点关注用户账户的密码管理。本文将指导如何通过 PAM(可插拔认证模块)机制,在主流 Linux 发行版上实施严格的密码策略。
当前大多数现代 Linux 系统均基于 PAM 框架,因此可通过修改相关配置文件实现细粒度控制。本指南适用于 Debian、Ubuntu、Linux Mint、CentOS、Fedora 及 RHEL 等常见系统。
1. 安装密码强度检查组件
为增强密码校验能力,建议启用 libpam-cracklib 模块。
- Debian / Ubuntu / Linux Mint:
sudo apt-get install libpam-cracklib
2. 防止重复使用旧密码
配置 PAM 以禁止用户重复使用最近几次的密码。
- Debian/Ubuntu/Linux Mint:
sudo vi /etc/pam.d/common-password
修改行:
password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5
sudo vi /etc/pam.d/system-auth
修改行:
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
3. 设置最小密码长度
强制要求密码至少包含 10 个字符。
- Debian/Ubuntu/Linux Mint:
sudo vi /etc/pam.d/common-password
更新为:
password requisite pam_cracklib.so retry=3 minlen=10 difok=3
sudo vi /etc/pam.d/system-auth
更新为:
password requisite pam_cracklib.so retry=3 difok=3 minlen=10
4. 强制密码复杂度规则
确保密码包含多种字符类型,提升破解难度。
- 设置规则:至少 1 个大写字母、2 个小写字母、1 个数字、1 个特殊符号。
- Debian/Ubuntu/Linux Mint:
password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
5. 管理密码有效期与提醒
通过 /etc/login.defs 文件设定全局密码生命周期策略。
sudo vi /etc/login.defs
配置如下:
PASS_MAX_DAYS 150PASS_MIN_DAYS 0PASS_WARN_AGE 7
上述设置表示:密码最长有效期为 150 天,过期前 7 天开始提醒用户更换。
如需对特定用户定制策略,使用 chage 命令:
sudo chage -l xmodulo
查看当前用户的密码策略。
示例:为用户 xmodulo 设置密码有效期至 2014 年 6 月 30 日,最小间隔 5 天,最大间隔 90 天,过期后禁用 30 天,提前 14 天预警:
sudo chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 xmodulo