SELinux 管理

学习 SELinux 管理。本模块涵盖 SELinux 模式、文件上下文、恢复上下文、管理布尔值、故障排除拒绝。您将通过实践实验室和真实世界的挑战掌握这些基本的 Linux 技能。

DevOps 工程师LinuxDevOps

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

SELinux 在传统 Linux 所有权和权限之外增加了基于策略的控制。本实践课程会教你检查策略状态、识别常见不匹配,并调查服务拒绝,而不是简单地把 SELinux 本身视为故障。

你将比较 enforcing 与 permissive 模式,追踪文件标签,修复错误上下文,启用受策略支持的布尔值,并读取 AVC 审计证据。最后的挑战要求你诊断 Nginx 无法绑定 8088 端口的原因,根据拒绝记录生成并安装针对性的策略模块,再验证服务响应。

你将学到什么

  • 检查 SELinux 状态,并区分运行时模式与启动配置
  • 读取文件安全上下文并识别策略使用的类型字段
  • 说明移动文件为何可能为新位置保留不合适的标签
  • 比较当前上下文与预期上下文,并使用 restorecon 修复单个或递归标签不匹配
  • 查找、永久启用并验证服务专用的 SELinux 布尔值
  • 定位 Nginx 的 AVC 拒绝记录并解读受阻的 name_bind 操作
  • 使用 audit2allow 解释拒绝并生成自定义策略模块
  • 安装生成的模块并验证 Nginx 在非标准端口上的服务

本课程适合谁

本中级课程适合已经理解常规 Unix 权限,并希望获得 SELinux 运维与故障排查实践入门的 Linux 管理员、DevOps 从业者和安全学习者。

前置要求: 熟悉 Linux Shell、文件与权限、sudo、systemctl、文本编辑、端口及基本 Web 服务概念。无需具备策略编写经验。

学习环境: 预置 SELinux 命令、策略数据、审计证据、Nginx 和管理员权限的 Linux 终端。内核或容器限制可能阻止真实的强制模式切换,因此部分拒绝会被模拟,但仍会练习相同的检查与修复命令。

常见问题

课程会教我在应用失败时关闭 SELinux 吗?

不会。permissive 模式只作为临时诊断概念使用。课程强调先检查标签、受支持的布尔值和审计记录,再进行针对性的策略调整。

我会实践哪些类型的 SELinux 修复?

你会恢复策略定义的文件上下文,永久启用 httpd_can_network_connect,并根据 Nginx 端口绑定拒绝生成和安装小型策略模块。课程不涵盖广泛的 SELinux 策略语言编写。

课程是否把 audit2allow 当作所有拒绝问题的答案?

不会。你会先检查它的建议,并考虑标签、布尔值或标准策略调整是否更合适。最终挑战明确要求生成模块;使用 semanage port 管理端口类型等替代方法不在本课程的实践范围内。

教师

labby
Labby
Labby is the LabEx teacher.