九、SELiunx介绍

9.1、SELinux介绍

selinux(Security Enhanced Linux ):SELinux 是在进行程序、文件等细部权限配置依据的一个核心模块!由于启动网络服务的也是程序,因此刚好也能够控制网络服务能否存取系统资源的一道关卡!其通过MAC(委任式存取控制) 的方式来控管程序。组成部分


主体 (Subject):程序

目标 (Object):文件系统

策略 (Policy):

targeted:针对网络服务限制较多,针对本机限制较少,是默认的政策;

strict:完整的 SELinux 限制,限制方面较为严格。

9.2、SELinux架构

要了解SELinux架构,首先需要了解一些相关的术语:

身份(identify)

在SELinux中,身份概念不同于传统UNIX uid,他们可以共存于一个系统,但却是不同的概念。身份是安全上下文的一部分,它会印象那个域可以进入。一个SELinux的身份会根标准UNIX登录名有相似的文本表示,但是运行su命名不会改变SELinux中的身份。常见的身份类型有:


root:表示 root 的帐号身份

system_u:表示系统程序方面的识别,通常就是程序

user_u:代表的是一般使用者帐号相关的身份

策略

策略就是可以设置的规则,决定了一个角色的用户可以访问什么、哪个角色可以进入那个域,用户可以根据想要建立的系统特点来决定设置什么策略。

所有进程在域中进行,域直接决定了进程的访问。域基本上是一个进程允许做的操作列表,或者说它决定了一个进程可以对哪些类型进行操作。


root:表示 root 的帐号身份

system_u:表示系统程序方面的识别,通常就是程序

user_u:代表的是一般使用者帐号相关的身份。

类型

类型是分配给一个对象的并决定谁可以访问这个对象。它的定义和域基本相同,不同点在于域是对进程的应用,而类型是分配给目录、文件和套接字的。

角色

角色决定了哪些域可以使用。如果一个策略数据库中定义了一个角色不可以使用一个域,那么它将拒绝。如果允许一个属于user_t域的用户执行passwd命令,那么必须在相关的策略配置文件中进行设置

 role user_r types user_passwd_t

SELinux系统示意图如图所示。首先提供策略语言供系统管理者来制定安全策略,并由核心层进行存取控制检查。SELinux将系统核心及安全策略绑在一起,并经由系统呼叫方式检查是否有存取权限。

9.3、SELinux相关的文件

selinux伪文件系统。/selinux/即selinux伪文件系统,它包括了内核子系统最常使用的各种命令。此文件系统与/proc伪文件系统非常相似。系统管理员和用户通常不需要直接操作该部件。

/etc/selinux/目录,所有策略文件和主要配置文件所在的首要目录。

[[email protected] selinux]# cat /etc/selinux/config   selinux配置文件
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 
[[email protected] selinux]#

/etc/selinux/config 配置文件控制系统下一次启动过程中加载哪个策略,以及系统运行在哪个模式下,可以使用sestatus密令确定当前selinux的状态。该文件控制两个配置设置:selinux模式和活动策略。selinux模式由SELINUX此变量确定,可以有三种状态:enforcing、permissive、disabled。

在Enforcing模式下,策略完整执行,应当在所有要求增强Linux安全性的操作系统上使用。在Peimissive模式下,策略规则不被强制执行;相反,只是审核遭受拒绝的消息。Disable模式下,selinux内核机制策略关闭,只有在系统启动时策略载入前系统才会处于Disable模式。

9.4、SELinux布尔值和上下文配置

当使用者要执行程序或这进程要执行动作时,系统会依照policy所制定的内容来检查使用者或进程的应用权限,如果权限符合,系统决会允许这个操作执行。SELinux检查方式独立于传统的使用者权限,在selinux中,必须要同时符合传统使用者权限和selinux权限才能顺利执行。

在Centos系统中使用targeted policy保护系统上的各项服务,其主要分为两种类型的属性:布尔值及安全上下文。布尔值属性用来控制每个守护进程的权限,除了可对单一守护进程做selinux机制开关外,还可以对该进程的局部权限做控制。上下文属性用来控制文件系统中每个文件及目录的selinux权限。简单来说布尔属性控制进程行为本身,文件上下文属性控制进程读/写文件的权限。

[[email protected] targeted]# tree /etc/selinux/targeted/ #targeted policy设定文件的架构
/etc/selinux/targeted/
├── contexts
│   ├── customizable_types
│   ├── dbus_contexts
│   ├── default_contexts
│   ├── default_type
│   ├── failsafe_context
│   ├── files
│   │   ├── file_contexts
│   │   ├── file_contexts.homedirs
│   │   ├── file_contexts.pre
│   │   └── media
│   ├── initrc_context
│   ├── netfilter_contexts
│   ├── removable_context
│   ├── securetty_types
│   ├── sepgsql_contexts
│   ├── userhelper_context
│   ├── users
│   │   ├── guest_u
│   │   ├── root
│   │   ├── staff_u
│   │   ├── unconfined_u
│   │   ├── user_u
│   │   └── xguest_u
│   ├── virtual_domain_context
│   ├── virtual_image_context
│   └── x_contexts
├── logins
...

contexts/:存储这个targeted policy的安全上下文

modules/:多层次policy模块化目录

modules/active:多层次policy模块化目录,系统目前正在使用的policy

modules/previous:多层次policy模块化目录,系统之前使用的policy

policy/:存放二进制的policy文件

modules/*/booleans:存放targeted policy中每个限制的布尔值

modules/*/booleans.local:管理者自定义的targeted policy布尔值

contexts/files:domain type的policy设定文件

contexts/files/file_contexts.local:管理者自定义的policy文件

  • targeted policy布尔属性设定

getsebool:取得目前系统上selinux布尔属性状态

格式:getsebool [-a] [boolean]

setsebool:立即变更selinux布尔属性

格式:setsebool [ -PV] boolean value | bool1=val1 bool2=val2 ...

-P选项表示将此配置写入配置文件中,永久有效。不添加此选项只在当前系统下有效,开机后失效。

  • targeted policy上下文属性设定

上下文属性空来控制系统的每个用户、进程、文件等权限。selinux的上下文格式:

user_u:system_r:unconfined_t  #第一个字段用户,第二个字段角色,第三个字段类型。

ls -alZ:查看文件目录的上下文属性

id -Z:查看目前使用者身份的上下文属性

ps -eZ:查看进程的上下文属性

restorecon:改写部分目录内所有文件及目录的上下文

-R:递归

chcon:手动更改文件或目录的上下文

时间: 2024-08-29 20:39:10

九、SELiunx介绍的相关文章

android 点九工具介绍

1=============================9.png简介:“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边角会模糊失真.在android平台下使用点九PNG技术,可以将图片横向和纵向同时进行拉伸,以实现在多分辨率下的完美显示效果.2=============================9.png的原理:其实相当于把一张png图分成了9个部分(九宫格),分别

诗人“九歌”开源

“九歌”系统相关资源发布 “九歌”是清华大学人工智能研究院自然语言处理与社会人文计算研究中心主任孙茂松教授带领的THUAIPoet团队研发的中文诗歌自动生成系统. 孙茂松教授在人大附中举行的“人工智能周”开幕式上介绍“九歌” 作为目前最有影响的诗歌生成系统之一,“九歌”曾于2017年登上央视一套大型科技类挑战节目<机智过人>第一季的舞台,与当代优秀青年诗人同台竞技比拼诗词创作,并成功通过现场观众图灵测试. 视频地址:https://v.qq.com/x/cover/23nc3uplhdwfyo

一起talk C栗子吧(第一百三十一回:C语言实例--C程序内存布局三)

各位看官们,大家好.上一回中咱们说的是C程序内存布局的样例,这一回咱们继续说该样例.闲话休提,言归正转.让我们一起talk C栗子吧. 看官们,关于C程序内存布局的样例,我们在前面的两个章回都介绍过了,这一回我们将对前面章回中的内容进行总结和提示. 内存布局总结 C程序的内存布局主要有四个分区:代码区,数据区(data和bss).堆区和栈区.能够使用readelf -S filename查看各个分区的内存地址.这四个分区在内存中从低地址空间開始依次向高地址延伸.我们再次使用前面章回中的图直观地展

OpenGL入门学习

说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的

linux 文件系统的管理 (硬盘) 工作原理

一.系统在初始化时如何识别硬盘 1.系统初始时根据MBR的信息来识别硬盘,其中包括了一些执行文件就来载入系统,这些执行文件就是MBR里前面446bytes里的boot loader 程式,而后面的16X4的空间就是存储分区表信息的位置:如下图 2.在分区表中,主要储存了以下信息:(1)分区号,常见的分区号有以下几种:其它编号可以使用fdisk指令,再执行 l (小写L) 查看 0x5 (or 0xf) 扩展分区 0x82 Linux swap 0x83 Linux 0x8e Linux LVM

前端页面有哪三层构成 兼容性

[HTML && CSS]1.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? 首先我讲讲如何触发两种模式:        加入xml头部声明可以触发IE浏览器的Quirks mode,触发之后,浏览器解析方式就和IE5.5一样,拥有IE5.5一样的bug和其他问题,行为(Javascript)也是如此.          IE6的触发        在XHTML的DOCTYPE前加入XML声明  <?xml version="1.0"

OpenGL理解

说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的

back

OpenGL入门学习[五] 今天要讲的是三维变换的内容,课程比较枯燥.主要是因为很多函数在单独使用时都不好描述其效果,我只好在最后举一个比较综合的例子.希望大家能一口气看到底了.只看一次可能不够,如果感觉到迷糊,不妨多看两遍.有疑问可以在下面跟帖提出.我也使用了若干图形,希望可以帮助理解. 在前面绘制几何图形的时候,大家是否觉得我们绘图的范围太狭隘了呢?坐标只能从-1到1,还只能是X轴向右,Y轴向上,Z轴垂直屏幕.这些限制给我们的绘图带来了很多不便. 我们生活在一个三维的世界——如果要观察一个物

【OpenGL】OpenGL初学

转载自:http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性