管理 SELinux 端口标签

Red Hat Enterprise LinuxBeginner
立即练习

介绍

安全增强型 Linux(SELinux)是 Red Hat Enterprise Linux 中一项关键的安全机制,它强制执行强制访问控制(MAC)策略。其中的一个核心环节是标签化,这一机制也延伸到了网络端口。通过为端口分配特定的 SELinux 标签,你可以控制哪些服务被允许绑定到这些端口。

在本挑战中,你将练习管理 SELinux 端口标签。你将学习如何查看现有的端口定义,添加新标签以允许服务在非标准端口上运行,然后删除该定义以恢复原始策略。

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

管理 SELinux 端口标签

假设你是一名系统管理员,需要配置一个 Web 服务器运行在非标准端口 8081 上。默认情况下,SELinux 会阻止 Web 服务器进程(例如 httpd)绑定到此端口,因为它缺少正确的 SELinux 标签。你的任务是使用 semanage 工具临时为端口 8081 添加正确的标签,然后再将其移除。

任务

  • 查看与 HTTP 服务关联的现有 SELinux 端口标签。
  • 添加一条新规则,将 TCP 端口 8081 标记为 http_port_t 类型,从而允许 Web 服务器使用该端口。
  • 在确认新规则生效后,删除针对 TCP 端口 8081 的自定义规则以还原更改。

要求

  • 所有命令必须以 labex 用户身份执行。在需要管理权限的地方使用 sudo
  • 所有操作必须在 /home/labex 目录下进行。
  • 你必须使用 semanage 命令来管理 SELinux 端口标签。

示例

在添加新的端口标签之前,查询 http_port_t 将显示默认端口:

## sudo semanage port -l | grep http_port_t
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988

为你添加端口 8081 的规则后,输出应包含该新端口:

## sudo semanage port -l | grep http_port_t
http_port_t                    tcp      8081, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
✨ 查看解决方案并练习

总结

在本挑战中,你学习了管理 SELinux 网络端口标签的基础操作。你练习了使用 semanage port 命令查看现有策略,使用 semanage port -a 添加新端口定义,以及使用 semanage port -d 将其移除。正确标记端口是在 Red Hat Enterprise Linux 等启用了 SELinux 的系统上安全部署网络服务的关键技能。