1. RHEL身份权限与安全基线工程导论

在RHEL(Red Hat Enterprise Linux)生产环境中,身份、权限与安全基线并不是三件彼此独立的事情,而是同一条安全控制链上的三个环节:身份回答“你是谁”,权限回答“你能做什么”,安全基线回答“系统在任何时刻应处于什么状态”。本课程的目标,是把这三者从零散的命令操作,提升为一套可设计、可实施、可验证、可审计的工程方法。

课程目标与能力定位

完成本课程后,学习者应能独立完成以下工作:在RHEL主机上规划本地与集中式身份体系;用最小权限原则设计用户、组、sudo与文件访问控制;依据CIS、STIG或等保要求裁剪出适用于本组织的安全基线;使用Ansible、OpenSCAP等工具把基线固化为可重复执行的代码;并通过日志、审计与合规扫描证明控制措施真实生效。换言之,课程终点不是“会敲几条命令”,而是能交付一份可被他人复现和审计的安全配置工程。

三个核心概念

身份(Identity):指主体在系统中的唯一标识及其凭据。RHEL中既包括本地账户(/etc/passwd、/etc/shadow),也包括通过SSSD接入的LDAP、Kerberos或Active Directory身份源。身份工程的关键是“唯一性、可追溯、可吊销”。

权限(Authorization):指身份被允许执行的操作集合。RHEL提供多层次的权限控制:文件系统的UGO与ACL、sudo的细粒度命令授权、SELinux的强制访问控制、以及systemd服务与容器的能力限制。权限工程的关键是“最小化、显式化、可复核”。

安全基线(Security Baseline):指一组经过组织确认、必须持续满足的配置项集合,例如密码策略、SSH加固、内核参数、审计规则、文件权限等。基线工程的关键是“有依据、可量化、可自动校验”。

工程框架:从需求到持续合规

本课程采用一个五层工程框架来组织全部内容,它也是后续各章的路线图:

  1. 需求与标准层:确定适用标准(CIS Benchmark、DISA STIG、等保2.0三级)与业务约束,输出控制项清单。
  2. 身份与访问层:设计账户生命周期、认证方式、组模型与sudo策略。
  3. 系统加固层:落实内核、服务、网络、文件系统与SELinux基线。
  4. 自动化与配置管理层:用Ansible Role、OpenSCAP Profile把基线变成代码。
  5. 审计与持续合规层:用auditd、rsyslog、AIDE与oscap扫描形成证据闭环。

这五层不是一次性流水线,而是持续循环:扫描发现偏差 → 修正配置或更新基线 → 重新扫描验证。下图展示了该框架的层次结构以及各层之间的输入输出关系。

RHEL身份权限与安全基线工程框架 ① 需求与标准层 CIS Benchmark · DISA STIG · 等保2.0三级 · 业务约束 → 控制项清单 输入:合规要求 ② 身份与访问层 本地账户 · SSSD/LDAP/AD · 组模型 · sudo策略 · PAM · SELinux用户映射 输出:身份与授权模型 ③ 系统加固层 密码策略 · SSH加固 · 内核参数 · 服务最小化 · 文件权限 · SELinux布尔值 输出:加固配置项 ④ 自动化与配置管理层 Ansible Role · OpenSCAP Profile · 配置模板 · 版本控制 · 幂等执行 输出:可执行基线代码 ⑤ 审计与持续合规层 auditd · rsyslog · AIDE · oscap扫描 · 偏差报告 · 整改闭环 输出:合规证据 持续反馈与基线更新

实验环境搭建

为了让所有实验可复现,本课程统一使用以下环境。建议在虚拟机或云主机中搭建,避免在生产系统上直接练习。

角色主机名IP示例用途
控制节点control.lab.local192.168.56.10运行Ansible、oscap、存放基线代码
被管节点Anode1.lab.local192.168.56.11身份与sudo实验
被管节点Bnode2.lab.local192.168.56.12加固与合规扫描实验
身份源idm.lab.local192.168.56.20LDAP/SSSD集中认证(可选)

基础准备包括:安装RHEL 9(或Rocky/AlmaLinux 9兼容环境),注册订阅或配置本地仓库,关闭SELinux前先确认实验需求(本课程默认保持SELinux为enforcing),并统一时间同步。控制节点需安装ansible-core与openscap-scanner:

# 控制节点基础工具安装
sudo dnf install -y ansible-core openscap-scanner scap-security-guide

# 被管节点安装合规内容
sudo dnf install -y scap-security-guide

# 验证SSG内容可用
ls /usr/share/xml/scap/ssg/content/ | grep rhel9

首次连通性验证建议使用Ansible ad-hoc命令,确认控制节点能通过SSH密钥免密管理被管节点:

# 生成并分发密钥(示例)
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
ssh-copy-id root@192.168.56.11
ssh-copy-id root@192.168.56.12

# 验证
ansible all -i inventory.ini -m ping
建议为实验环境创建快照。安全基线实验会修改PAM、SSH、内核参数等关键配置,一旦配置错误可能导致无法登录,快照是最快的回退手段。

贯穿全课程的一个示例场景

为避免知识点碎片化,课程将围绕一个统一场景推进:某企业需要将三台RHEL 9服务器纳入等保三级合规范围,要求实现集中身份认证、sudo最小授权、SSH与密码策略加固,并能每月输出一次合规扫描报告。后续章节中的账户设计、sudoers规则、sshd_config参数、Ansible Role结构、oscap扫描命令,都会在这个场景下展开。你在学习时可以把自己的实际环境代入,替换IP、域名与组织名称即可。

安全基线的落地必须经过变更管理。直接在生产环境套用CIS Level 2或STIG全部控制项,可能造成服务中断、认证失败或性能下降。正确做法是先在小范围灰度验证,确认业务兼容性后再推广。

学习路径建议

建议按“概念理解 → 手工操作 → 自动化固化 → 合规验证”的顺序推进。先手工完成一次账户创建、sudo授权和SSH加固,理解每个参数的作用;再把操作写成Ansible任务;最后用oscap扫描验证结果。手工阶段不要跳过,否则自动化阶段出现偏差时很难定位原因。每章结束后,应能在自己的实验环境中复现该章的关键配置,并说清楚“这条配置防住了什么风险、验证依据是什么”。