诊断并解决 SELinux 策略冲突

Red Hat Enterprise LinuxBeginner
立即练习

介绍

作为一名系统管理员,你负责维护 Linux 系统的安全性。其中一个核心环节是管理 SELinux(安全增强型 Linux),这是一种强制访问控制机制,用于执行安全策略。当一个进程尝试执行违反策略的操作时,SELinux 会拒绝该操作并记录一条访问向量缓存(AVC)拒绝日志。在本挑战中,你将学习如何使用标准的 RHEL 工具诊断并解决常见的 SELinux 策略冲突,这是 RHCSA 考试中的一项关键技能。

这是一个「挑战」项目,它与「引导实验」不同,你需要尝试独立完成挑战任务,而不是按照实验步骤进行学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据显示,这是一个 初学者 级别的挑战,通过率为 94%。它在学习者中获得了 100% 的好评率。

诊断并解决 SELinux 策略冲突

场景

你系统上的 Web 服务器本应提供用户主目录中的内容(例如来自 ~/public_html 目录)。然而,用户报告称他们的网页无法访问,并显示「Forbidden」错误。你怀疑这是一个 SELinux 问题。你的任务是调查 SELinux 日志,识别策略冲突,并应用正确的修复方案,使 Web 服务器能够按预期运行。

任务

  • 调查系统的审计日志,查找最近的 SELinux AVC 拒绝记录。
  • 分析拒绝消息,了解哪些操作被阻止,以及哪个 SELinux 布尔值(boolean)可以解决该问题。
  • 修改相应的 SELinux 布尔值,允许 Web 服务器访问用户主目录。
  • 确保策略更改是持久化的,以便在系统重启后依然有效。

要求

  • 所有命令必须以 labex 用户身份运行。在需要管理权限的地方使用 sudo
  • 你需要修改的 SELinux 布尔值是 httpd_enable_homedirs
  • 更改必须持久化。

提示

  • 使用 ausearch 命令查询审计日志。-m avc 选项用于过滤 AVC 消息。
  • 密切关注 ausearch 的输出。它通常包含来自 setroubleshoot 的关于如何解决拒绝问题的建议。
  • setsebool 命令用于更改 SELinux 布尔值。使用 -P 标志使更改持久化。
  • 你可以使用 getsebool 命令检查布尔值的当前值。
✨ 查看解决方案并练习

总结

在本挑战中,你学习了如何诊断和处理常规的 SELinux 策略冲突。你练习了使用 ausearch 检查审计日志中的 AVC 拒绝记录,通过解读输出识别根本原因,并使用 setsebool -P 应用持久化的策略更改。掌握这一工作流程对于管理 RHEL 系统的安全性至关重要,也是 RHCSA 考试中考核的基础技能。