服务器密码策略需分层落实:基础老化参数、复杂度要求、失败响应机制;linux通过/etc/login.defs和pam配置,windows通过组策略实现,均需验证与审计。

服务器密码策略配置不是写一段代码,而是分层落实几类关键规则:基础老化参数、复杂度要求、失败响应机制。核心是修改系统级配置文件或调用策略管理工具,不同操作系统路径和语法差异较大,但逻辑一致。
Linux 系统(以 UOS/Debian/Ubuntu 为例)
主要靠两处配合生效:
-
/etc/login.defs:控制全局密码生命周期
修改关键项:
PASS_MAX_DAYS 90(密码90天过期)
PASS_MIN_LEN 12(最小长度12位)
PASS_WARN_AGE 14(提前14天提醒)
PASS_MIN_DAYS 0(允许立即改密,生产环境可设为1~7) -
/etc/pam.d/common-password 或 /etc/pam.d/system-auth:启用复杂度校验
添加这一行(确保 libpam-pwquality 已安装):
password requisite pam_pwquality.so retry=3 minlen=12 maxrepeat=3 ucredit=-2 lcredit=-2 dcredit=-2 ocredit=-2 difok=5 gecoscheck=1 reject_username enforce_for_root
含义:至少2个大写、2个小写、2个数字、2个特殊字符;新旧密码至少5位不同;禁止含用户名;root也强制执行。
Windows Server(组策略方式)
通过“组策略管理编辑器”配置,路径统一为:
计算机配置 → 策略 → Windows 设置 → 安全设置 → 帐户策略 → 密码策略
针对Linux系统,phpStudy团队推出全网首家linux docker容器面板,只要一个命令,快速安装面板,在面板里可以自行选择软件版本,可以方便的进行安全配置,就算没有Linux基础也可以快速搭建和管理PHP服务器环境!
- 密码必须符合复杂性要求:启用(强制含大小写字母+数字+符号中至少3类)
- 密码长度最小值:建议设为 12
- 密码最长使用期限:设为 90 天
- 密码最短使用期限:设为 1 天(防用户频繁重置绕过检查)
- 强制密码历史:建议设为 24(记住最近24次密码,防止循环复用)
配置后无需重启,但需运行 gpupdate /force 刷新策略。
账号锁定与辅助控制
仅设强密码不够,还需防暴力破解:
-
Linux:在
/etc/pam.d/common-auth中加入
auth [default=die] pam_faillock.so authfail deny=5 unlock_time=900
表示5次失败后锁定15分钟(900秒) -
Windows:在“帐户锁定策略”中设
帐户锁定阈值:≤ 5 次
帐户锁定时间:≥ 15 分钟
重置帐户锁定计数器:15 分钟
验证与持续维护
配置完必须验证是否真正生效:
- Linux:用
passwd尝试设弱密码(如123456、aaaaaa),应被拒绝;查chage -l username确认过期时间 - Windows:新建测试账户,用
net user testuser *修改密码,输入不符合策略的口令应报错 - 所有系统:定期审计日志(
/var/log/auth.log或 Windows Event ID 4771/4625),确认策略实际拦截行为










