首页主机资讯Linux SELinux权限如何管理

Linux SELinux权限如何管理

时间2025-12-22 12:27:04发布访客分类主机资讯浏览360
导读:Linux SELinux 权限管理实操指南 一 基础与模式管理 查看状态与模式 查看整体状态:sestatus 查看当前运行模式:getenforce(返回 Enforcing/Permissive/Disabled) 临时切换模...

Linux SELinux 权限管理实操指南

一 基础与模式管理

  • 查看状态与模式
    • 查看整体状态:sestatus
    • 查看当前运行模式:getenforce(返回 Enforcing/Permissive/Disabled
  • 临时切换模式(立即生效,重启后失效)
    • 切换到宽容模式:setenforce 0
    • 切换到强制模式:setenforce 1
  • 永久配置模式
    • 编辑配置文件:/etc/selinux/config,设置 SELINUX=enforcing|permissive|disabled
    • 注意:在 RHEL9 及以上,若要彻底禁用,需在引导参数加入 selinux=0(如用 grubby 工具),单纯在 config 中设 disabled 不再生效;启用/恢复可用 grubby --update-kernel ALL --args selinux=0/–remove-args selinux。生产环境不建议禁用,优先使用 Permissive 进行排障。

二 安全上下文与标签管理

  • 查看上下文
    • 文件/目录:ls -Z /path;进程:ps -Z -C < 进程名>
    • 典型格式:user_u:role_r:type_t:s0(主体/客体以 type 为核心做访问控制)
  • 修改与持久化
    • 临时修改:chcon -t /path(重启或 restorecon 可能还原)
    • 持久化默认标签:
      • 添加规则:semanage fcontext -a -t “/your/path(/.*)?”
      • 应用规则:restorecon -Rv /your/path
  • 常见类型示例
    • Web 内容:httpd_sys_content_t;Web 端口:http_port_t
    • MariaDB 数据:mysqld_db_t;临时目录:tmp_t
  • 端口标签(示例)
    • 允许 8080/tcp 作为 HTTP 端口:semanage port -a -t http_port_t -p tcp 8080
  • 原则:尽量使用 semanage fcontext + restorecon 做持久化,避免长期依赖 chcon

三 布尔值与策略调优

  • 查看与开关布尔值
    • 列出布尔值:semanage boolean -lgetsebool -a
    • 临时开关:setsebool on|off
    • 持久化开关:setsebool -P on|off
  • 典型场景
    • 允许 Web 连接数据库:setsebool -P httpd_can_network_connect_db on
    • 允许 Web 发送邮件:setsebool -P httpd_can_sendmail on
  • 原则:优先用布尔值做细粒度开关,遵循最小权限,能不开就不开。

四 故障排查与自定义策略

  • 分析拒绝日志
    • 查看最近 AVC:ausearch -m avc -ts recent
    • 或查日志:*grep "avc:.denied" /var/log/audit/audit.log
    • 人性化解释:sealert -a /var/log/audit/audit.log
  • 从拒绝生成策略模块
    • 生成并安装模块:
      • audit2allow -M mypolicy
      • semodule -i mypolicy.pp
  • 使用提示
    • 先判断拒绝是否合理,优先通过“改路径/改类型/改布尔值”来合规化访问
    • 自定义模块仅作补充,避免过度授权
  • 排障流程建议:Permissive 验证 → 定位最小修复点 → 回归 Enforcing。

五 用户与角色管理

  • 查看与映射
    • 查看 Linux 用户到 SELinux 用户的映射:semanage login -l
    • 查看可用 SELinux 用户:seinfo -u;查看角色:seinfo -r
  • 默认映射
    • 默认将 Linux 用户映射到 default → unconfined_u(权限较宽)
  • 安全建议
    • 将需要受限的 Linux 用户映射到受管制的 SELinux 用户(如 staff_u、user_u、guest_u、xguest_u),以继承更严格的域限制
    • 注意:system_u/system_r 用于系统进程与对象,切勿将其分配给普通 Linux 用户
    • 受管制的用户域通常对 setuid 有严格限制(如 user_t/guest_t/xguest_t 不能执行 su/sudo 提权)。

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


若转载请注明出处: Linux SELinux权限如何管理
本文地址: https://pptw.com/jishu/777254.html
Debian backlog与持续集成/持续部署的关系 如何优化Linux SELinux性能

游客 回复需填写必要信息