selinux基础知识
selinux的说明
selinux意思是安全强化的linux
selinux当初开发的目的是为了避免资源的误用
DAC:自主访问控制系统
MAC:强制访问控制系统
selinux的工作原理
selinux是通过MAC的方式来控制管理进程,它控制的主体是进程,而目标则是该进程能否读取的文件资源
主体:进程
目标:被主体访问的资源,可以是文件,目录,端口等
策略:由于进程与文件数量庞大,因此selinux会依据某些服务来制定基本的访问安全策略。这些策略内还会有详细的规则来指定不同的服务开放某些资源的访问与否。
目前主要的策略有:
targeted:针对网络服务限制较多,针对本机限制较少,是默认的策略
strict:完整的selinux限制,限制方面较为严格
安全上下文:主体能不能访问目标除了策略指定外,主体和目标的安全上下文必须一致才能够顺利访问。最终文件的成功访问还是与文件系统的rwx权限设置有关
安全上下文冒号分四个字段含义
安全上下文冒号分为四个字段:
identify:role:type
身份识别(identify):相当于账号方面的身份识别,主要有以下三种常见的类型
root:表示root的账号身份
system_u:表示程序方面的标识,通常就是进程
unconfined_u:代表的是一般用户帐号相关的身份
角色(role):通过角色字段,可以知道这个数据是属于程序,文件资源还是代表用户。一般角色有:
object_r:代表的是文件或目录等文件资源
system_r:代表的是进程
类型(type):在默认的targeted策略中,identify与role字段基本上是不重要的,重要的在于这个类型字段。而类型字段在文件与进程的定义不太相同,分别是:
type:在文件资源上面称为类型
domain:在主体程序中则称为域。xxxx_xxx_xxx_t
domain需要与type搭配,则该程序才能顺利读取文件资源
最后一个字段是和MLS和MCS相关的东西,代表灵敏度,一般用s0、s1、s2来命名,数字代表灵敏度的分级。数值越大、灵敏度越高。
selinux的启动关闭与查看
selinux的三种模式
enforcing:强制模式,代表selinux正在运行中,开始限制domain/type
permissive:宽容模式,代表selinux正在运行中,不过仅会有警告信息并不会实际限制domian/type的访问
disabled:关闭,selinux并没有实际运行
修改安全上下文
临时生效
-R 连同该目录下的子目录也同时修改
-t 后面接安全上下文的类型字段
-u 后面接身份识别
-r 后面接角色
chcon -R --reference=范例文件 文件 将文件的上下文按照范例文件修改
恢复默认标签
restorecon [-Rv] 文件或目录
-R 连同子目录一起修改
-v 将过程显示到屏幕上
若标签使用不正确,使用semanage fcontext 修改默认type配置
semanage fcontext -{l |a |m|d|t} file_spec
-l 为查询
-a 增加一些目录的默认安全上下文的设置
-m 修改
-d 删除
-t 类型