ubuntu

selinux在ubuntu中的工作原理

小樊
47
2025-08-29 18:01:33
栏目: 智能运维

SELinux在Ubuntu中的工作原理基于强制访问控制(MAC),通过为系统资源(进程、文件、端口等)打上安全上下文标签,并依据策略规则限制主体(进程)对客体(资源)的访问,即使进程拥有root权限也无法绕过策略。

核心机制

  1. 安全上下文(Security Context)
    每个进程、文件、端口等资源都会被标记唯一的上下文标签(如httpd_thttpd_sys_content_t),包含用户、角色、类型等信息,用于标识其安全级别和访问权限。

    • 查看标签:ls -Z(文件/目录)、ps -Z(进程)。
  2. 策略规则(Policy Rules)

    • 类型强制(Type Enforcement):策略中最核心的机制,通过定义“类型”的访问规则控制资源交互。例如,默认策略可能允许httpd_t进程访问httpd_sys_content_t类型的文件,但禁止访问其他类型的文件。
    • 策略类型
      • targeted(默认):仅对网络服务等关键进程应用严格策略,对本地进程限制较少。
      • strict:对所有进程实施全面严格的访问控制。
  3. 工作模式

    • Enforcing(强制模式):违反策略的行为会被立即拦截,并记录到日志(/var/log/audit/audit.log)。
    • Permissive(宽容模式):仅记录违规行为,不实际拦截,用于调试策略。
    • Disabled(禁用模式):完全关闭SELinux,系统仅依赖传统DAC(自主访问控制)。
  4. 决策流程
    当进程尝试访问资源时,内核依次检查:

    1. 标准Linux DAC权限(文件权限、用户组等);
    2. SELinux策略规则:通过策略模块判断主体与客体的上下文是否匹配允许的访问类型。若匹配失败,则拒绝访问并记录日志。

配置与管理工具

注意事项

参考来源

0
看了该问题的人还看了