操作系统安全基础:Linux/Windows 安全加固基线
操作系统是设备安全的第一道防线。说白了,你所有的应用、数据、服务都跑在它上面。系统本身如果千疮百孔,上层防护做得再好也没用。
我个人习惯,拿到一台新服务器,第一件事不是装应用,而是先做系统安全加固。这就像盖房子先打地基,地基不稳,后面全是白费功夫。
安全基线:你的最低安全标准
安全基线,就是一套最低限度的安全配置标准。它告诉你哪些服务必须关,哪些端口必须封,哪些密码策略必须开。
我见过不少团队,安全基线写了几十页,但落地执行一塌糊涂。为什么?因为基线太理想化,跟实际业务脱节。你想想看,如果基线要求关闭 SSH,但运维团队天天要用,这基线就形同虚设。
好的基线应该满足三个条件:可落地、可审计、可自动化。
| 维度 | Linux 基线要点 | Windows 基线要点 |
|---|---|---|
| 账号策略 | 禁用 root 直接登录,使用 sudo | 禁用 Administrator,创建普通管理员 |
| 密码策略 | 密码长度 ≥12,复杂度要求 | 启用密码历史,强制定期更换 |
| 服务管理 | 关闭不必要的系统服务 | 禁用高危服务(如 Telnet、FTP) |
| 补丁管理 | 配置自动安全更新 | 启用 WSUS 或自动更新 |
| 日志审计 | 开启 rsyslog,配置远程日志 | 启用安全日志,配置事件转发 |
用户与权限管理:最小权限原则
权限管理,核心就一句话:给每个人刚刚够用的权限,不多给一分。这就是最小权限原则。
Linux 下的 sudo 管理
sudo 是 Linux 权限管理的核心工具。我建议你永远不要直接用 root 干活,而是通过 sudo 提权。
配置 sudo 权限,编辑 /etc/sudoers 文件(记得用 visudo 命令,它会帮你检查语法错误):
# 允许运维组执行所有命令
%ops ALL=(ALL) ALL
# 允许 webadmin 用户仅执行 nginx 相关命令
webadmin ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx
# 禁止某些危险命令
user1 ALL=(ALL) ALL, !/usr/bin/passwd root, !/usr/bin/su -
user1 ALL=(ALL) NOPASSWD: ALL,这等于把 root 权限白送出去了。sudo 免密码要慎用,除非你很清楚自己在做什么。
ACL:更精细的权限控制
传统的 Linux 权限只有 owner、group、others 三级,很多时候不够用。比如,你想让 A 用户读一个文件,B 用户写同一个文件,但又不希望他们属于同一个组。这时候 ACL 就派上用场了。
# 给用户 zhangsan 添加读权限
setfacl -m u:zhangsan:r /data/project/config.yaml
# 给组 dev 添加读写权限
setfacl -m g:dev:rw /data/project/config.yaml
# 查看 ACL 设置
getfacl /data/project/config.yaml
ACL 的好处是灵活,坏处是容易搞乱。我建议你只在确实需要精细控制的场景下使用,日常管理还是优先用标准的用户组机制。
Windows 下的权限管理
Windows 的权限模型比 Linux 复杂,但核心思想一样:用户 → 组 → 权限。
几个关键点:
- 本地用户和组:通过
lusrmgr.msc管理 - NTFS 权限:右键属性 → 安全,可以设置非常精细的权限
- UAC(用户账户控制):不要关闭它,它是 Windows 的最后一道防线
- 组策略:通过
gpedit.msc批量管理安全策略
核心原则:无论是 Linux 还是 Windows,权限管理都要做到三点——
- 定期审计权限,清理僵尸账号
- 权限变更要有审批流程
- 特权账号要启用多因素认证
系统日志审计与监控
日志是安全运维的眼睛。没有日志,你就像在黑暗中走路,被攻击了都不知道怎么发生的。
Linux 日志体系
Linux 的日志主要集中在 /var/log/ 目录下:
| 日志文件 | 记录内容 | 重要程度 |
|---|---|---|
| /var/log/messages | 系统通用日志 | 高 |
| /var/log/secure | 认证与安全日志 | 极高 |
| /var/log/audit/audit.log | auditd 审计日志 | 极高 |
| /var/log/wtmp | 用户登录记录 | 高 |
我个人习惯,第一时间开启 auditd 服务。它能记录谁在什么时候执行了什么命令,修改了什么文件。这对事后溯源至关重要。
# 安装 auditd
yum install audit -y
# 启动并设置开机自启
systemctl start auditd
systemctl enable auditd
# 添加审计规则:监控 /etc/passwd 的修改
auditctl -w /etc/passwd -p wa -k passwd_changes
# 查看审计日志
ausearch -k passwd_changes
Windows 日志体系
Windows 的日志通过 事件查看器(eventvwr.msc)管理,主要分三类:
- 系统日志:记录系统组件事件
- 安全日志:记录登录、权限使用等安全事件
- 应用程序日志:记录应用程序事件
Windows 安全日志里,有几个事件 ID 你必须记住:
| 事件 ID | 含义 | 说明 |
|---|---|---|
| 4624 | 登录成功 | 记录谁在什么时间登录了 |
| 4625 | 登录失败 | 密码错误或账号不存在 |
| 4648 | 使用显式凭据登录 | 可能是在横向移动 |
| 4672 | 分配特殊权限 | 管理员权限被使用 |
本章知识体系
下面这张图,帮你理清操作系统安全的核心脉络:
操作系统安全没有捷径。把基线定好、权限管好、日志看好,这三件事做到位,80% 的安全问题都能防住。剩下的 20%,靠的是持续监控和应急响应能力。