密码策略是系统安全的核心防线,在Linux中,通过PAM(可插拔认证模块)和配置文件实现密码规则管理,以下是详细操作步骤:
修改密码复杂度要求
适用文件:/etc/security/pwquality.conf
或 /etc/pam.d/system-auth
步骤:
-
安装复杂度工具(如未预装):
# Debian/Ubuntu sudo apt install libpam-pwquality # RHEL/CentOS sudo yum install libpwquality
-
编辑配置文件:
sudo nano /etc/security/pwquality.conf
修改关键参数:
minlen = 10 # 密码最小长度 minclass = 3 # 至少包含3类字符(数字/大写/小写/符号) dcredit = -1 # 至少1个数字 ucredit = -1 # 至少1个大写字母 lcredit = -1 # 至少1个小写字母 ocredit = -1 # 至少1个特殊符号
-
生效配置:
保存后立即生效,新密码创建时自动应用规则。
设置密码有效期
配置文件:/etc/login.defs
步骤:
-
编辑全局策略:
sudo nano /etc/login.defs
修改以下参数:
PASS_MAX_DAYS 90 # 密码最长有效期 PASS_MIN_DAYS 7 # 密码修改间隔 PASS_WARN_AGE 14 # 过期前提醒天数
-
应用到现有用户:
sudo chage -M 90 -m 7 -W 14 用户名
密码历史与重复使用限制
配置文件:/etc/pam.d/common-password
(Debian) 或 /etc/pam.d/system-auth
(RHEL)
步骤:
在PAM配置中添加:
password required pam_unix.so remember=5 use_authtok sha512 shadow
remember=5
表示禁止使用最近5次用过的密码。
账户锁定策略(防暴力破解)
配置文件:/etc/pam.d/common-auth
或 /etc/pam.d/system-auth
步骤:
添加以下行(示例:5次失败锁定10分钟):
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=600 auth [default=die] pam_faillock.so authfail audit deny=5
策略验证与测试
- 检查用户密码策略:
sudo chage -l 用户名 # 查看有效期
- 测试复杂度规则:
echo "新密码" | sudo pwscore # 返回强度分数
- 模拟登录失败:
sudo pam_tally2 --user=用户名 # 查看失败次数
发行版差异说明
功能 | Debian/Ubuntu | RHEL/CentOS |
---|---|---|
密码复杂度配置 | /etc/pam.d/common-password |
/etc/security/pwquality.conf |
PAM模块名称 | pam_pwquality.so |
pam_pwquality.so |
账户锁定工具 | pam_tally2 |
faillock |
安全建议
- 定期更新策略:每6个月审查一次密码规则
- 特权账户强化:对root用户设置更短的有效期(如30天)
- 日志监控:定期检查
/var/log/auth.log
(Debian)或/var/log/secure
(RHEL) - 避免频繁锁定:生产环境中谨慎设置
deny=
值,防止误锁
重要提示:修改策略前备份配置文件!误操作可能导致所有用户无法登录:
sudo cp /etc/pam.d/common-password ~/backup_common-password
Linux密码策略通过多层配置实现:
- 复杂度控制:
pwquality.conf
定义字符要求 - 生命周期管理:
login.defs
+chage
命令 - 历史记录:PAM的
remember
参数 - 防暴力破解:
pam_faillock
模块
定期审计策略有效性是维护系统安全的关键,企业环境建议结合LDAP或FreeIPA集中管理密码策略。
引用说明基于Linux man-pages (pwquality.conf(5), pam_pwquality(8))、Red Hat官方文档及Ubuntu安全指南,测试环境为Ubuntu 22.04 LTS和CentOS 7.9,操作前请确认您的发行版版本,部分参数路径可能略有差异。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4378.html