ubuntu

Ubuntu SELinux如何支持新应用

小樊
32
2025-12-26 07:00:49
栏目: 智能运维

Ubuntu 上让 SELinux 支持新应用的实操流程

前置说明

启用与基础配置

为新应用接入 SELinux 的标准流程

  1. 识别与标签
    • 确认应用可执行文件路径,查看当前上下文:ls -lZ /path/to/app
    • 为可执行文件设置专用执行类型(示例类型名:myapp_exec_t):
      • 临时:sudo chcon -t myapp_exec_t /path/to/app
      • 持久:sudo semanage fcontext -a -t myapp_exec_t “/path/to/app” && sudo restorecon -v /path/to/app
  2. 定义策略模块
    • 新建策略文件 myapp.te(示例):
      • 声明模块与类型:
        • policy_module(myapp, 1.0)
        • type myapp_t; type myapp_exec_t;
      • 可执行文件入口与域迁移:
        • init_daemon_domain(myapp_t, myapp_exec_t)
      • 按需补充最小权限(示例:允许读家目录内容)
        • allow myapp_t user_home_t:dir search;
        • allow myapp_t user_home_t:file { read getattr open };
  3. 编译与加载
    • 使用开发 Makefile 编译并安装:
      • make -f /usr/share/selinux/devel/Makefile
      • sudo semodule -i myapp.pp
  4. 验证与回归
    • 重启应用,观察 AVC 拒绝;必要时在 permissive 下继续收集并迭代策略,直至无拒绝后再切 enforcing
  5. 常见扩展
    • 端口类型:如应用监听 8080/tcp,可加入 http_port_tsudo semanage port -a -t http_port_t -p tcp 8080
    • 布尔开关:如允许某服务发起 DB 连接:sudo setsebool -P httpd_can_network_connect_db 1
    • 文件/目录标签:对数据目录设置专用类型并 restorecon,确保运行时标签正确。

排错与临时权衡

实用建议

0
看了该问题的人还看了