在Linux中,SELinux工作原理是什么?如何启用/禁用?

本文涉及的产品
访问控制,不限时长
简介: 在Linux中,SELinux工作原理是什么?如何启用/禁用?

SELinux(Security-Enhanced Linux)是由美国国家安全局(NSA)主导开发的一种强制访问控制(MAC)安全框架,它内建于Linux内核中,为系统提供细粒度的安全策略控制。SELinux增强了传统Linux安全模型,通过实施严格的访问控制策略,阻止未经授权的进程访问敏感资源,即使这些进程拥有超级用户权限(如root权限)。

SELinux工作原理主要包括以下几个方面:

  1. 标签(Labeling):SELinux为系统中的所有对象(如进程、文件、套接字等)分配一个安全上下文(Security Context),这个上下文是一个独特的标签,包括用户(User)、角色(Role)、类型(Type)和类别(Category/MCS/MLS)。这些标签用于决定进程能否访问特定资源。
  2. 安全策略(Policy):SELinux的核心是一系列预定义的安全策略规则,这些规则决定了不同类型和角色的进程之间允许哪些操作。策略文件描述了主体(Subject,即进程)和客体(Object,如文件)之间的合法交互。
  3. 强制访问控制(MAC):SELinux采用MAC机制,这是相对于传统的自主访问控制(DAC)而言的。在DAC中,资源的所有者可以自由地赋予其他用户访问权限;而在MAC中,系统强制执行策略规定,只有符合策略规则的访问请求才会被允许。
  4. 决策引擎:当进程尝试访问资源时,SELinux的决策引擎会依据当前的安全上下文和安全策略评估这次访问是否合法。如果不合法,访问将被拒绝。

启用/禁用SELinux

  • 临时禁用(仅影响当前会话,重启后恢复原有设置):
    在运行时临时关闭SELinux,可以改变内核的 SELinux 状态标记为宽容模式(Permissive Mode),在这种模式下,SELinux策略不会阻止任何操作,但会记录违规事件到日志中:
sudo setenforce 0
  • 若要临时启用(Enforcing Mode):
sudo setenforce 1
  • 永久禁用(影响系统重启后的设置):
    要永久禁用SELinux,需要修改配置文件 /etc/selinux/config。打开文件并更改如下行:
    从:
SELINUX=enforcing
  • 更改为:
SELINUX=disabled
  • 保存更改后,需要重启系统以使配置生效。
  • 永久启用并设置为宽容模式
    若要永久启用SELinux但设置为宽容模式,修改 /etc/selinux/config 中的相应行:
    从:
SELINUX=enforcing
BASH 复制 全屏
SELINUX=disabled
BASH 复制 全屏
  • 更改为:
SELINUX=permissive
BASH 复制 全屏

综上所述:除非特殊情况,一般不建议禁用SELinux,因为它有助于增强系统的整体安全性。在遇到SELinux相关问题时,通常应该尝试修复策略而不是禁用SELinux。如果确实需要调整策略,可以使用工具如semanage、audit2allow等来帮助生成和管理SELinux策略模块。

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
1月前
|
存储 缓存 Linux
深度探索Linux操作系统 —— Linux图形原理探讨3
深度探索Linux操作系统 —— Linux图形原理探讨
30 9
|
1月前
|
存储 Linux 图形学
深度探索Linux操作系统 —— Linux图形原理探讨1
深度探索Linux操作系统 —— Linux图形原理探讨
36 7
|
1月前
|
Linux API 图形学
深度探索Linux操作系统 —— Linux图形原理探讨2
深度探索Linux操作系统 —— Linux图形原理探讨
31 3
|
1月前
|
负载均衡 网络协议 Linux
在Linux中,keepalive工作原理是什么及如何做到健康检查?
在Linux中,keepalive工作原理是什么及如何做到健康检查?
|
1月前
|
运维 负载均衡 Linux
在Linux中,Keepalived的工作原理是什么?
在Linux中,Keepalived的工作原理是什么?
|
1月前
|
存储 Linux 文件存储
在Linux中,raid0、raid1、raid5 三种工作模式的工作原理及特点?
在Linux中,raid0、raid1、raid5 三种工作模式的工作原理及特点?
|
1月前
|
Linux API C语言
Linux源码阅读笔记02-进程原理及系统调用
Linux源码阅读笔记02-进程原理及系统调用
|
1月前
|
安全 算法 网络协议
【在Linux世界中追寻伟大的One Piece】HTTPS协议原理
【在Linux世界中追寻伟大的One Piece】HTTPS协议原理
41 2
|
26天前
|
Linux
Linux内核的异常修复原理
Linux内核的异常修复原理
|
1月前
|
网络协议 安全 Linux
在Linux中,tcp三次握⼿的过程及原理?
在Linux中,tcp三次握⼿的过程及原理?