Linux用户密码安全策略配置教程:从弱密码到强防护

许多刚接触Linux服务器的朋友,往往只设置了简单的弱密码,或者从不关注密码过期时间。
一旦服务器暴露在公网,弱密码很容易被暴力破解。
本文我们围绕 Linux用户密码安全策略配置,手把手教你从零开始加固密码防护,让系统自带“强密码护甲”。

配置前需要准备什么

操作前请确认以下条件:

  • 一台Linux服务器(本文以CentOS 7/8、Ubuntu 20.04/22.04为例)。
  • 拥有 root 权限或能使用 sudo
  • 已经通过SSH连接到服务器。
  • 如果没有现成的普通用户,建议先创建测试用户(useradd testuser)。
小提示:所有涉及系统全局的策略修改,都可能影响现有用户登录,建议先在测试环境验证。

核心步骤:修改密码过期与长度策略

1. 调整密码过期规则(/etc/login.defs)

密码过期策略让用户必须定期换密码,降低长期泄露风险。
编辑主配置文件:

vim /etc/login.defs

找到以下参数(如果没有则手动添加):

PASS_MAX_DAYS   90
PASS_MIN_DAYS   0
PASS_WARN_AGE   7
  • PASS_MAX_DAYS:密码最长使用天数(建议90天)。
  • PASS_MIN_DAYS:最短更换间隔(0表示随时可换)。
  • PASS_WARN_AGE:到期前多少天开始警告用户。

保存退出。
该策略仅对新创建的用户生效,已存在的用户需要单独修改(后面会讲)。

2. 强制密码长度与复杂度(pwquality模块)

现代Linux通过PAM(可插拔认证模块)控制密码质量。
编辑PAM密码策略文件:

# CentOS/RHEL 7/8
vim /etc/pam.d/system-auth

# Ubuntu/Debian
vim /etc/pam.d/common-password

password requisite pam_pwquality.so 所在行(如果没有就添加),加上以下参数:

password requisite pam_pwquality.so retry=3 minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0
  • retry=3:允许用户重试3次。
  • minlen=8:最小长度8位。
  • dcredit=-1:必须包含至少1个数字(负数表示至少)。
  • ucredit=-1:至少1个大写字母。
  • ocredit=-1:至少1个特殊符号。
  • lcredit=0:小写字母数不强制。

参数可以根据需要调整。
如果系统没有安装 pam_pwquality.so,先安装:

# CentOS
yum install -y pam

# Ubuntu
apt-get install -y libpam-pwquality

3. 对现有用户立即生效(chage命令)

修改 /etc/login.defs 只影响新用户。
对已存在的用户,执行:

chage -M 90 testuser   # 设置密码最长使用90天
chage -W 7 testuser    # 提前7天警告
chage -l testuser      # 查看当前策略

如果想强制用户下次登录时换密码,运行:

passwd -e testuser

避坑指南:容易翻车的几个地方

  • 密码策略太死板:比如要求大写、小写、数字、符号各1位且长度16以上,普通用户很难记住,容易把密码写纸上或频繁重置。建议 minlen=8,配合2-3种字符类型即可。
  • 摸不清PAM顺序pam_pwquality.so 必须在 pam_unix.so 之前才能生效。查看 /etc/pam.d/system-auth,确保 pam_pwqualitypam_unix 前面。
  • 忘记对已有用户单独设置:很多新手只改了login.defs,发现老用户依旧能使用简单密码。记得用 chagepasswd 命令逐个调整。
  • 修改了错误的PAM文件:Ubuntu上 common-password 是主文件,CentOS上 system-authpassword-auth 都要改(如果需要本地登录和SSH都生效)。

如何验证配置是否生效

验证密码长度与复杂度

切换到一个普通用户,尝试设置弱密码:

# 以testuser为例
su - testuser
passwd
# 输入新密码:123456

系统应该拒绝,并提示“密码太短”或“需要包含更多字符类”。
如果被拒绝,说明策略生效。

验证密码过期规则

查看用户的过期信息:

chage -l testuser

输出中应有 Maximum number of days between password change : 90

也可以修改系统时间模拟到期(不推荐生产环境),或用 passwd -S testuser 查看状态。

检查shadow文件

查看 /etc/shadow 中对应行的第三字段(自1970年1月1日到上次更改的天数)与密码最大天数,可以核对:

cat /etc/shadow | grep testuser

写在最后

密码安全是服务器防护的第一道防线。
通过修改 /etc/login.defs、配置PAM的 pam_pwquality 模块、再利用 chage 命令对现有用户生效,就能形成一套完整的 Linux用户密码安全策略配置 方案。
如果你正在处理这类需求,建议先按本文步骤在测试机完整执行一次,再推广到正式服务器。
遇到异常时,优先回看避坑和高频问题部分,多数错误出在PAM文件顺序或未对现有用户单独处理。
安全加固没有终点,定期检查策略是否仍符合业务需要,同样重要。

分享到:
上一篇
Linux分区调整扩容无损数据:Linux分区调整扩容无缝扩
下一篇
Linux用户登录日志审计查看:零基础也能掌握的监控技巧
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意