Linux系列十五-SELinux

一、运行说明
主体:类似等同于进程
目标:一般是文件系统
策略:

        1. targeted:针对网络服务限制较多,默认
        2. strict:完整的SELinux限制

安全上下文:主体能不能访问目标除了策略指定外,主体与目标的安全上下文必须一致才能访问。设置错误,就无法访问,会提示权限不符。安全上下文放置在文件的inode内。
访问流程如下图所示(图片来自鸟哥的linux私房菜):
这里写图片描述

安全上下文说明:
[root@www ~]# ls -Z
drwxr-xr-x  root root root:object_r:user_home_t   Desktop
-rw-r--r--  root root root:object_r:user_home_t   install.log
-rw-r--r--  root root root:object_r:user_home_t   install.log.syslog
安全性上下文主要用冒号分为三个栏位,这三个栏位的意义为:
Identify:role:type
身份识别:角色:类型

身份识别 (Identify):
相当与帐号方面的身份识别,主要的身份识别则有底下三种常见的类型:
root:表示 root 的帐号身份,如同上面的表格显示的是 root 家目录下的数据
system_u:表示系统程序方面的识别,通常就是程序
user_u:代表的是一般使用者帐号相关的身份。
    系统上面大部分的数据都会是 system_u 或 root ,如果是在 /home 底下的数据,大部分应会是 user_u 

角色 (Role):
透过角色栏位,我们可以知道这个数据是属於程序、文件资源还是代表使用者。一般的角色有:
object_r:代表的是文件或目录等文件资源
system_r:代表的就是程序啦!不过,一般使用者也会被指定成为 system_r!

类型 (Type) :
在默认的 targeted 策略中, IdentifyRole 栏位基本上是不重要的。 基本上,一个主体程序能不能读取到这个文件资源,与类型栏位有关!而类型栏位在文件与程序的定义不太相同,分别是:
type:在文件资源 (Object) 上面称为类型 (Type)
domain:在主体程序 (Subject) 则称为领域 (domain),需要与 type 搭配,则该程序才能够顺利的读取文件资源啦!

这里写图片描述
案例:
这里写图片描述
二、模式与管理
模式

SELinux的三种模式:
    enforcing:强制,代表在运行中,且已经正确开始限制domain/type
    permissive:宽容,运行中,仅有警告信息不限制。
    disable:关闭SELinux

管理

getenforce:查看当前SELinux模式
sestatus:查看SELinux策略
/etc/selinux/config:配置文件
setenforce [0/1] 仅用与以下两种模式的切换,涉及其他模式则需要重启
    0:切换为permissive模式
    1:切换为enforcing模式
*修改安全上下文:*
chcon [-R] [-t type] [-u user] [-r role] 文件
chcon [-R] --reference=范例文件 文件
    -R :目录子目录都修改
    -t :安全上下文的类型,如:-t httpd_sys_content_t
    -u :后接身份识别,如:-u system_u
    -r :后接角色,如:-r system_r
    --reference=范例文件 :拿范例文件当模板修改后接文件的类型 
*恢复默认上下文:*
restorecon [-Rv] file/dir
    -R :包含子目录一起修改
    -v :显示过程到屏幕

猜你喜欢

转载自blog.csdn.net/loveli178/article/details/81323663