介绍
安全增强型 Linux(SELinux)是 Red Hat Enterprise Linux 中一项关键的安全机制,它强制执行强制访问控制(MAC)策略。其中的一个核心环节是标签化,这一机制也延伸到了网络端口。通过为端口分配特定的 SELinux 标签,你可以控制哪些服务被允许绑定到这些端口。
在本挑战中,你将练习管理 SELinux 端口标签。你将学习如何查看现有的端口定义,添加新标签以允许服务在非标准端口上运行,然后删除该定义以恢复原始策略。
管理 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 的系统上安全部署网络服务的关键技能。



