Selinux是什么
Selinux 的全称是Security Enhance Linux,就是安全加强的Linux。在Selinux之前root账号能够任意的访问所有文档和服务 ;
Selinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有一个安全标签(即selinux上下文)进行区分,只有对应的标签才能允许访问,否则即使权限是777,也是不能访问的。
在selinux中,访问控制属性叫做安全上下文,所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户(u)、角色(r)、和类型(t)标识符。但我们最关注的是第三部分
selinux状态查看
selinux的配置文件位置:/etc/selinux/config
enforcing-是强制模式系统——它受selinux保护。就是违反了策略你就无法继续操作下去。
permissive-是提示模式系统不会受到selinux保护,只是收到警告信息——permissive就是selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你违反的内容记录下来(警告信息)
disabled-禁用selinux——关闭selinux
##临时更改selinux当前级别——0警告1强制
setenforce 0 | 1
##getenforce查看selinux状态
安全上下文每个部分的含义
例如:-rw-r–r--. root root system_u:object_r:passwd_file_t:s0 /etc/passwd
用三个;将安全上下文分为4个部分
user(身份识别):role(角色):type(类型):sensitivity(限制访问的需要)
第一部分:user:指示登录系统的用户类型,如root、user_u、system_u;多数本地进程属于自由(unconfined)进程
root:表示root的账号身份
system_u:表示系统程序方面的标识,通常就是进程(系统上面大部分的数据都会是system_u,用户自己创建的或以某个用户安装的程序文件一般都是unconfined_u)
user_u:代表一般用户账号相关的身份
第二部分:role:定义文件、进程和用户的用途。
object_r:代表是文件或目录等文件资源,这应该是最常见的。
system_r:代表是进程,不过,一般用户也会被指定为system_r
第三部分:type:指定数据类型,规则中定义何种进程类型访问何种文件
类型(Type,最重要):一般targeted策略中,Identify与Role字段基本上是不重要的。重要的在于这个类型type字段!基本上,一个主进程能不能读取到这个文件资源与类型字段有关。常用的类型字段有:
type:在文件资源(Object)上面称为类型(Type);
domain:在主体程序Subject中则称为域(domain)了,domain需要与type搭配,则程序才能够顺利读取文件资源。
第四部分:sensitivity:限制访问的需要,由组织定义的分层安全级别,一个对象有且只有一个sensitivity,分0-15级,s0最低,target策略默认使用s0
查看安全上下文
##查看文