操作系统安全基础:用户账户与密码策略
操作系统安全,说白了就是管好「门」和「钥匙」。门就是用户账户,钥匙就是密码。我做了这么多年运维,见过太多因为账户管理松懈导致的安全事故。今天咱们就把这块基础打牢。
一、用户账户管理——谁可以进系统?
每个操作系统都有两类核心账户:管理员和普通用户。Windows 叫 Administrator,Linux 叫 root。这两类账户的权限天差地别。
| 账户类型 | Windows | Linux | 权限范围 |
|---|---|---|---|
| 超级管理员 | Administrator | root | 完全控制系统,可执行任何操作 |
| 普通用户 | User / Standard | 普通账号 | 仅能操作自己的文件和程序 |
| 系统账户 | SYSTEM / LOCAL SERVICE | daemon / nobody | 运行系统服务,不可交互登录 |
| 来宾账户 | Guest | nobody / guest | 临时访问,权限极低 |
二、Linux 用户管理实操
Linux 下用户管理,核心就几个命令。我带你过一遍最常用的。
2.1 创建与删除用户
# 创建用户,自动创建家目录
useradd -m zhangsan
# 设置密码
passwd zhangsan
# 删除用户,同时删除家目录和邮件池
userdel -r zhangsan
# 查看用户信息
id zhangsan
# 输出示例:uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)
2.2 用户组管理
用户组方便批量授权。比如开发团队需要访问某个目录,把他们都加到同一个组就行。
# 创建组
groupadd devteam
# 把用户加到组
usermod -aG devteam zhangsan
# 查看用户所属组
groups zhangsan
# 输出:zhangsan : zhangsan devteam
2.3 关键配置文件
Linux 用户信息存在三个文件里。我建议你记住它们的位置,排查问题时经常用到。
| 文件 | 作用 | 示例内容 |
|---|---|---|
| /etc/passwd | 用户账户信息 | zhangsan:x:1001:1001::/home/zhangsan:/bin/bash |
| /etc/shadow | 加密密码与有效期 | zhangsan:$6$salt$hash:18900:0:99999:7::: |
| /etc/group | 用户组信息 | devteam:x:1002:zhangsan,lisi |
三、Windows 用户管理实操
Windows 下我习惯用图形界面加命令行结合。图形界面适合单次操作,命令行适合批量管理。
3.1 图形界面操作
路径:计算机管理 → 本地用户和组。右键点击用户,可以新建、设置密码、禁用账户。操作很直观,我就不细说了。
3.2 命令行操作
Windows 的 net user 命令很强大。我经常用它批量创建账户。
# 创建用户
net user zhangsan P@ssw0rd /add
# 设置用户密码永不过期
net user zhangsan /expires:never
# 把用户加入管理员组
net localgroup Administrators zhangsan /add
# 查看所有用户
net user
四、密码策略配置——密码不是摆设
密码策略决定了密码的强度。你想想看,如果密码是 123456,那账户管理做得再好也没用。
4.1 Linux 密码策略
Linux 的密码策略在 /etc/login.defs 和 /etc/pam.d/ 里配置。我一般改这几个参数:
# /etc/login.defs 关键参数
PASS_MAX_DAYS 90 # 密码最长使用90天
PASS_MIN_DAYS 7 # 密码最短使用7天(防止频繁修改)
PASS_MIN_LEN 12 # 密码最小长度12位
PASS_WARN_AGE 7 # 过期前7天提醒
更严格的策略用 PAM 模块。比如要求密码包含大小写、数字、特殊字符:
# /etc/pam.d/common-password 添加
password requisite pam_pwquality.so retry=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
- ucredit=-1:至少1个大写字母
- lcredit=-1:至少1个小写字母
- dcredit=-1:至少1个数字
- ocredit=-1:至少1个特殊字符
- retry=3:允许3次尝试机会
4.2 Windows 密码策略
Windows 的密码策略在「本地安全策略」里配置。路径:管理工具 → 本地安全策略 → 账户策略 → 密码策略。
| 策略项 | 推荐值 | 说明 |
|---|---|---|
| 密码必须符合复杂性要求 | 启用 | 要求大小写、数字、特殊字符 |
| 密码长度最小值 | 12 | 太短容易被暴力破解 |
| 密码最长使用期限 | 90天 | 定期更换降低泄露风险 |
| 强制密码历史 | 5个 | 不能重复使用最近5个密码 |
五、账户锁定策略——防暴力破解
暴力破解就是不断试密码。账户锁定策略能直接阻断这种攻击。我见过一个服务器被暴力破解了三天,就是因为没开锁定策略。
5.1 Linux 账户锁定
Linux 用 pam_tally2 或 pam_faillock 模块。我推荐 pam_faillock,更现代。
# /etc/pam.d/system-auth 添加
auth required pam_faillock.so preauth audit silent deny=5 unlock_time=900
auth required pam_faillock.so authfail audit deny=5 unlock_time=900
account required pam_faillock.so
参数含义:
- deny=5:连续输错5次锁定
- unlock_time=900:锁定15分钟(900秒)
- audit:记录审计日志
手动解锁用户:
# 查看失败记录
pam_faillock --user zhangsan --show
# 解锁用户
pam_faillock --user zhangsan --reset
5.2 Windows 账户锁定
Windows 的锁定策略也在「本地安全策略」里。路径:账户策略 → 账户锁定策略。
| 策略项 | 推荐值 | 说明 |
|---|---|---|
| 账户锁定阈值 | 5次无效登录 | 超过次数即锁定 |
| 账户锁定时间 | 15分钟 | 锁定后自动解锁 |
| 重置账户锁定计数器 | 15分钟 | 失败次数在15分钟后重置 |
六、知识体系总览
下面这张图把本章的核心逻辑串起来了。你一看就明白:用户账户、密码策略、锁定策略三者怎么配合。
- 用户账户: 区分管理员和普通用户,最小权限原则
- 密码策略: 长度12位以上,包含大小写数字特殊字符,90天过期
- 锁定策略: 5次失败锁定15分钟,防暴力破解
- 日常检查: 定期审计账户列表,清理僵尸账户
嗯,操作系统安全基础就这些。你把这些配置落地到服务器上,基本的安全底线就守住了。下一块内容咱们会深入文件权限和访问控制,到时候再聊。