首页主机资讯Ubuntu SELinux如何定制策略

Ubuntu SELinux如何定制策略

时间2025-12-05 01:29:05发布访客分类主机资讯浏览220
导读:Ubuntu 上定制 SELinux 策略的实用流程 一 准备与启用 SELinux 安装所需软件包(含策略工具与基础策略): sudo apt update sudo apt install selinux-basics selin...

Ubuntu 上定制 SELinux 策略的实用流程


一 准备与启用 SELinux

  • 安装所需软件包(含策略工具与基础策略):
    • sudo apt update
    • sudo apt install selinux-basics selinux-policy-default selinux-utils auditd audispd-plugins
  • 检查与切换模式:
    • 查看状态:getenforce、sestatus
    • 临时切换:sudo setenforce 1(Enforcing)/ 0(Permissive)
  • 持久化配置(/etc/selinux/config):
    • SELINUX=enforcingpermissive
    • SELINUXTYPE=targeted
  • 重要提示:
    • disabled 切换到 enforcing/permissive 需要重启;首次进入 enforcing 前建议先 permissive 并做一次文件系统重标记(fixfiles -F onboot 或重启后自动进行),以避免因标签错误导致服务异常。

二 策略定制路径与工具

  • 方式一 从拒绝日志自动生成模块(最快)

    • 收集 AVC 并生成可编译模块:
      • grep avc /var/log/audit/audit.log | audit2allow -M mypol
    • 编译并加载:
      • make -f /usr/share/selinux/devel/Makefile
      • sudo semodule -i mypol.pp
    • 分析拒绝原因:ausearch -m avc -ts recent;audit2why 解释策略冲突。
  • 方式二 手写模块(.te)与文件上下文(.fc)

    • 模块骨架示例(myapp.te):
      • policy_module(myapp, 1.0)
      • require { type httpd_t; class file { read open } ; }
      • allow httpd_t httpd_sys_content_t:file { read open } ;
    • 文件上下文示例(myapp.fc):
      • /var/www/myapp(/.*)? system_u:object_r:httpd_sys_rw_content_t:s0
    • 编译与加载:
      • checkmodule -M -m -o myapp.mod myapp.te
      • semodule_package -o myapp.pp -m myapp.mod
      • sudo semodule -i myapp.pp
    • 使新上下文生效:
      • sudo restorecon -Rv /var/www/myapp
    • 说明:
      • 常见类型与布尔值可先用 audit2allow 观察,再按需收紧为最小权限;必要时用 setsebool 调整布尔开关(如 httpd 相关)。

三 调试与验证

  • 实时监控拒绝事件:
    • ausearch -m avc -ts recent;tail -f /var/log/audit/audit.log | grep avc
  • 解释与定位:
    • audit2why 输出为何被拒与可行修复方向
  • 策略生效验证:
    • sestatus 查看当前模式与策略
    • 重放触发操作,确认 AVC 消失且功能正常
  • 回滚与清理:
    • 卸载模块:sudo semodule -r mypol
    • 临时放行:sudo setenforce 0(排查期间),修复后恢复 enforcing。

四 常见注意事项与最佳实践

  • permissive 验证、再 enforcing 上线;变更前备份关键配置与业务数据。
  • 优先用 audit2allow 生成“最小可用”规则,再人工收敛权限,避免 grant 过度。
  • 涉及路径权限时同步修正文件上下文(restorecon),否则规则生效也会因标签不符被拒。
  • 对 Web、数据库等常见服务,先检查是否存在对应布尔值(如 httpd_enable_homedirs),能不动策略就不动策略。
  • 生产环境不建议长期 permissive;Ubuntu 对 SELinux 的支持以社区为主,若需更完善的策略生态可考虑 RHEL/CentOS

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu SELinux如何定制策略
本文地址: https://pptw.com/jishu/764201.html
如何在ubuntu上使用golang的并发特性 Ubuntu SELinux如何使用最佳实践

游客 回复需填写必要信息