selinux

(一)selinux简介:

SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linux。

SELinux 主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用。

(二)selinux工作原理:

SELinux是通过MAC的方式来控制管理进程,它控制的主体是进程,而目标则是该进程能否读取的文件资源:

主体(subject):就是进程

目标(object):被主体访问的资源,可以是文件、目录、端口等。

策略(policy):由于进程与文件数量庞大,因此SELinux会依据某些服务来制定基本的访问安全策略。 这些策略内还会有详细的规则(rule)来指定不同的服务开放某些资源的访问与否。目前主要的策略有:

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

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

安全上下文(security context):主体能不能访问目标除了策略指定外,主体与目标的安全上下文必须 一致才能够顺利访问(最终文件的成功访问还是与文件系统的rwx权限设置有关 )。

ls -z :查看文件安全上下文

selinux

安全上下文用冒号分为四个字段:

Identify:role:type:s0/s1/s2

1.身份标识(Identify):相当于账号方面的身份标识,主要有以下三种常见的类型:

root:表示root的账号身份;

system_u:表示程序方面的标识,通常就是进程;

unconfined_u:代表的是一般用户账号相关的身份。

2.角色(role):通过角色字段,可知道这个数据是属于程序、文件资源还是代表用户。一般角色 有:

object_r:代表的是文件或目录等文件资源;

system_r:代表的是进程。

3.类型(type):在默认的targeted策略中,Identify与role字段基本上是不重要的,重要的在于这 个类型字段。而类型字段在文件与进程的定义不太相同,分别是:

type:在文件资源上面称为类型;

domain:在主体程序中则称为域;

domain需要与type搭配,则该程序才能够顺利读取文件资源。

4.最后一个字段是和MLS和MCS相关的东西,代表灵敏度,一般用s0、s1、s2来命名,数字代表灵敏 度的分级。数值越大、灵敏度越高

????????selinux

(三)selinux的启动、关闭与查看

3.1,selinux的三种模式:

enforcing:强制模式,代表selinux正在运行中,开始限制domain/type。

permissive:宽容模式,代表SELinux正在运行中,不过仅会有警告信息并不会实际限制domain/type的访问。

disabled:关闭,SELinux并没有实际运行。

3.2,修改安全上下文:

selinux

(四)实例:

4.1,(实验一)使用web服务演示安全上下文值的设定:

1.创建nginx下的server服务:

vim /etc/nginx/conf.d/test_server

2.创建index.html文件:

echo this is test_server > /www/ip/index.html

3.关闭firewalld(此时selinux的状态是Enforcing):

systemctl disable firewalld --now

4.启动nginx服务:

systemctl start nginx?

5.访问网址

肯定访问不通,因为此时selinux的状态是Enforcing

6.设置安全上下文并重启nginx:

chcon -t httpd_sys_content_t /www/ -R

systemctl restart nginx?

7.再次访问

成功!!!!

4.2,(实验二)使用web服务端口的改变来演示端口的设定:

selinux

上一篇:html中h1-h6标签对搜索引擎seo的影响
下一篇:Linux系统提权思路