插件窝 干货文章 Linux用户密码存放位置的最佳实践指南

Linux用户密码存放位置的最佳实践指南

密码 使用 shadow 系统 969    来源:    2025-04-08

Linux用户密码存放位置的最佳实践指南

传统密码存储位置

在传统Linux系统中,用户密码通常存储在以下文件中:

  1. /etc/passwd - 存储用户基本信息,但现代系统通常在此文件中只放"x"表示密码存储在别处
  2. /etc/shadow - 实际存储加密密码的文件(只有root可读)
  3. /etc/group - 存储用户组信息

现代最佳实践

1. 使用shadow密码系统

  • 必须使用shadow密码系统(几乎所有现代Linux发行版默认启用)
  • 确保/etc/shadow权限为640,所有者root:shadow
  • 使用pwconv命令确保密码从passwd转移到shadow文件

2. 密码哈希算法选择

  • 推荐使用SHA-512(现代Linux系统的默认设置)
  • 可通过修改/etc/login.defs中的ENCRYPT_METHOD参数配置
  • 避免使用旧的不安全算法如DES或MD5

3. 密码策略实施

  • 使用pam_pwquality模块(原pam_cracklib)设置密码复杂度要求
  • 配置/etc/security/pwquality.conf设置:
    • 最小长度
    • 字符类别要求
    • 最大重复字符
    • 密码历史

4. 定期密码轮换

  • 使用chage命令设置密码过期策略
  • /etc/login.defs中配置: bash PASS_MAX_DAYS 90 PASS_MIN_DAYS 7 PASS_WARN_AGE 14

5. 特权账户保护

  • 为root账户设置强密码
  • 考虑限制root直接登录(通过SSH的PermitRootLogin no
  • 使用sudo代替直接root登录

6. 集中身份管理(企业环境)

  • 考虑使用LDAP(如OpenLDAP)或FreeIPA进行集中身份管理
  • 对于大型环境,可集成Active Directory
  • 使用SSSD(System Security Services Daemon)作为本地缓存

安全审计建议

  1. 定期检查/etc/shadow文件权限和完整性
  2. 使用auditd监控对关键文件的访问
  3. 检查空密码账户:awk -F: '($2 == "") {print}' /etc/shadow
  4. 使用工具如johnhashcat定期测试密码强度

应急响应

如果怀疑密码文件被篡改: 1. 立即更改所有可能受影响账户的密码 2. 检查系统完整性(使用AIDE或类似工具) 3. 检查最近修改时间:ls -l /etc/passwd /etc/shadow 4. 与系统基线比较(如果有)

遵循这些最佳实践可以显著提高Linux系统的密码安全性。