首页
登录 | 注册

Linux SELinux 介绍详解

Linux SELinux 介绍详解


SElinux 简介

  SElinux (Security Enhanced Linux)是由美国国家安全局(NSA)开发的。它已被植入到了Linux系统的内核当中,主要作用是通过安全策略将系统应用软件及用户程序对系统文件目录的访问限制。已MAC(Mandatory Access Control)的委任试存储方式作为安全处理。

Linux SELinux 介绍详解


SElinux 运作模式

  • 主体(Subject)
    • 主体相当于系统中的执行程序process,SElinux主要管理的就是程序。
  • 目标(Object)
    • 系统文件以及目录。
  • 策略(Policy)
    • 由于程序目录数量比较多,因此SELinux会一局某些服务来定制基本的存取安全策略。CentOS 7.x里面仅有提供三个主要的策略分别是:
      • targeted:针对网络服务限制较多,针对本地限制较少,是预设的策略;
      • minimum:由 target 修订而来,只针对选择的程序来保护!
      • mls:完整的 SELinux 限制,限制方面较为严格。

运作图:

Linux SELinux 介绍详解


SElinux 三种身份

查看当前目录下的SElinux信息(前提SElinux已经打开)

# 查看Selinux信息
[root@study ~]# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0     anaconda-ks.cfg
-rw-r--r--. root root system_u:object_r:admin_home_t:s0     initial-setup-ks.cfg
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 regular_express.txt
Identify:role:type
身份识别:角色:类型
  • 身份识别(Identify)
  • 代表:相當於帳號方面的身份識別!主要的身份識別常見有底下幾種常見的類型:
    • unconfined_u:不受限的用户,也就是說,該檔案來自於不受限的程序所產生的!一般來說,我們使用可登入帳號來取得 bash 之後, 預設  的 bash 環境是不受 SELinux 管制的~因為 bash 並不是什麼特別的網路服務!因此,在這個不受 SELinux 所限制的 bash 程序所產生的檔案, 其身份識別大多就是 unconfined_u 這個『不受限』用戶囉!
    • system_u:系統用戶,大部分就是系統自己產生的檔案囉!
  • 角色(Role)
  • 代表:透過角色欄位,我們可以知道這個資料是屬於程序、檔案資源還是代表使用者。一般的角色有:
    • object_r:代表的是檔案或目錄等檔案資源,這應該是最常見的囉;
    • system_r:代表的就是程序啦!不過,一般使用者也會被指定成為 system_r 喔!
  • 类型(Type)
  • 代表:在預設的 targeted 政策中, Identify 與 Role 欄位基本上是不重要的!重要的在於這個類型 (type) 欄位! 基本上,一個主體程序能不能讀取到這個檔案資源,與類型欄位有關!而類型欄位在檔案與程序的定義不太相同,分別是:
    • type在檔案資源 (Object) 上面稱為類型 (Type);
    • domain:在主體程序 (Subject) 則稱為領域 (domain) 了!

 SElinux 三种启动模式

  • enforcing:强制模式、代表SELinux运行中,且已经正确的开放限制 domain/type。
  • permissive:宽容模式、代表SELinux运行中,不过金会有警告信息并不会直接限制 domian/type。
  • disabled:关闭模式、SELinux 关闭状态。

Linux SELinux 介绍详解


 来源地址:http://linux.vbird.org/linux_basic/0440processcontrol.php#selinux


相关文章

  • 详解linux进程间通信-消息队列
    前言:前面讨论了信号.管道的进程间通信方式,接下来将讨论消息队列. 一.系统V IPC 三种系统V IPC:消息队列.信号量以及共享内存(共享存储器)之间有很多相似之处. 每个内核中的 I P C结构(消息队列.信号量或共享存储段)都用一个 ...
  • 详解linux进程间通信-管道 popen函数 dup2函数
    前言:进程之间交换信息的唯一方法是经由f o r k或e x e c传送打开文件,或通过文件系统.本章将说明进程之间相互通信的其他技术—I P C(InterProcess Communication).今天将介绍半双工的管道. 一.匿名管 ...
  • Linux的内存分页管理
    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载   内存是计算机的主存储器.内存为进程开辟出进程空间,让进程在其中保存数据.我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存 ...
  • Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core 书籍.原版地址. 是除了官方文档外另 ...
  • 快三个月没写博客了,一直在忙着准备面试和去面试的路上,所以没时间写,也没什么想写的.现在告一段落,就总结一波! 面经 本人真的是双非一本.为什么加“真的”?因为有的人也写着"双非一本,进入阿里",但是某电子科技大学,比9 ...
  • python接口自动化(二十三)--unittest断言——上(详解)
    简介 在测试用例中,执行完测试用例后,最后一步是判断测试结果是 pass 还是 fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert).用 unittest 组件测试用例的时候,断言的方法还是很多的,下面介绍几种常 ...

2019 cecdns.com webmaster#cecdns.com
12 q. 0.075 s.
京ICP备10005923号