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



