SELinux策略如何在Ubuntu应用
导读:在 Ubuntu 上启用 SELinux 并应用到应用 一 前置说明与准备 Ubuntu 默认使用 AppArmor,并非 SELinux。在生产环境启用 SELinux 前务必充分评估与测试,必要时先在测试环境验证。为便于排错,建议安装...
在 Ubuntu 上启用 SELinux 并应用到应用
一 前置说明与准备
- Ubuntu 默认使用 AppArmor,并非 SELinux。在生产环境启用 SELinux 前务必充分评估与测试,必要时先在测试环境验证。为便于排错,建议安装审计服务:sudo apt-get install auditd audispd-plugins。启用后可用 sestatus、getenforce 查看状态;配置文件为 /etc/selinux/config。
二 安装与启用 SELinux
- 安装组件(不同版本仓库包名略有差异,以下为常见组合):
- 基础与策略:sudo apt-get install selinux-basics selinux-policy-default selinux-utils
- 可选管理工具:sudo apt-get install policycoreutils selinux-utils
- 启用步骤:
- 临时切换为宽松模式以便排错:sudo setenforce 0
- 持久化配置:编辑 /etc/selinux/config,设置 SELINUX=permissive(先宽松、验证无误再改为 enforcing),保存后重启:sudo reboot
- 验证:sestatus、getenforce
- 提示:某些系统可能默认没有 SELinux 策略包或工具,需确认仓库可用或选择支持的版本。
三 为应用应用与定制策略
- 方式一 使用布尔值与端口标签快速适配
- 调整布尔值(示例:允许 httpd 访问用户主目录):sudo setsebool -P httpd_enable_homedirs 1
- 管理端口标签(示例:将 8080/tcp 标记为 http_port_t):sudo semanage port -a -t http_port_t -p tcp 8080
- 方式二 从拒绝日志自动生成模块
- 查看最近拒绝:ausearch -m avc -ts recent
- 生成并加载模块:grep avc /var/log/audit/audit.log | audit2allow -M mypol & & sudo semodule -i mypol.pp
- 方式三 编写自定义策略模块(.te)
- 示例(允许某域对目录具备读写):
- 文件:myapp.te
policy_module(myapp, 1.0) require { type myapp_t; type httpd_sys_rw_content_t; class dir { read write } ; } allow myapp_t httpd_sys_rw_content_t:dir { read write } ;
- 文件:myapp.te
- 编译与加载:
- 使用开发 Makefile:make -f /usr/share/selinux/devel/Makefile
- 或分步:checkmodule -M -m -o myapp.mod myapp.te & & semodule_package -o myapp.pp -m myapp.mod
- 加载:sudo semodule -i myapp.pp
- 示例(允许某域对目录具备读写):
- 方式四 设置文件安全上下文并恢复
- 查看上下文:ls -Z /path
- 恢复默认标签:sudo restorecon -Rv /path
- 说明:若需要更细粒度控制,可配合编写 .fc(文件上下文)与接口文件,再用上述流程编译加载。
四 验证与排错
- 状态与模式:sestatus、getenforce
- 拒绝事件定位:ausearch -m avc -ts recent
- 人性化解释:audit2why < /var/log/audit/audit.log(或配合 grep/ausearch 定向分析)
- 策略生效验证:复现业务操作,确认不再出现 AVC denied,并检查关键目录/端口的标签与布尔值是否符合预期。
五 生产部署建议
- 采用“先 Permissive、后 Enforcing”的灰度策略,逐步收敛策略范围;变更前备份关键数据与现有策略模块。
- 对关键应用建立“最小权限”策略,优先用布尔值与端口标签解决通用问题,再用自定义模块精确放行。
- 持续审计与回归测试:保留 auditd 日志,定期用 ausearch/audit2why 复盘,确保策略与业务演进同步。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SELinux策略如何在Ubuntu应用
本文地址: https://pptw.com/jishu/749097.html
