Linux SELinux讲解

目录

SELinux概念

SELinux配置文件

SELINUX 工作模式

SELINUX TYPE策略类型

配置安全上下文

查看安全上下文

修改安全上下文

修改默认的安全上下文

配置策略规则

查看策略规则

修改策略规则状态


SELinux概念

为什么提出SELinux

之前学习的权限,都是基于用户的(所有者、所有组、其它用户),只有当该用户针对某个文件或者目录具备相应的rws权限之后,才可以做相应的操作

此时系统管理员无法通过基于用户的标准访问策略(DAC)生成全面、精细的安全策略

此时就需要通过SELinux来实现

SELinux简介

SELinux实施强制访问控制(MAC),SELinux对每个文件、进程、目录、端口都有专门的安全标签,此标签被称为安全上下文;

SELinux就是基于进程安全上下文和文件/目录的安全上下文来实现策略控制

即:只有当文件/目录的安全上下文类型和进程的安全上下文类型符合时,该进程才可以对文件/目录做相应的操作

SELinux作用

SELinux主要目标是防止已遭泄露的系统服务(进程)访问用户数据(文件/目录)

增强现有的安全解决方案

使用SELinux策略来确定某个进程能够访问文件、目录、端口

注意事项

SELinux并不是防病毒软件、并不能够用来替代密码、防火墙和安全系统

SELinux的访问策略可以基于所有的可用信息(SELinux用户、角色、类型、安全级别等)

Linux SELinux讲解_第1张图片


SELinux配置文件

SELinux的主配置文件:/etc/selinux/config

Linux SELinux讲解_第2张图片

SELINUX 工作模式

ebforcing  强制模式(默认模式)

启用SELinux,并强制执行所有的安全策略规则

permissive 宽容模式

启用SELinux,但是安全策略规则并没有强制执行(即;当策略拒绝访问时,访问仍然可以被允许,但是会发送相关日志信息)

disabled   关闭模式

关闭SELinux,使用DAC访问控制方式(用于不需要增强安全性的环境)

注意事项

当从强制或者宽容模式切换到关闭模式,或从关闭模式切换到其它两种模式,需要重启系统

强制和宽容模式之间的切换不需要重启系统

修改工作模式

可以直接在配置文件修改,也可以使用命令修改

命令修改为临时切换,配置文件修改为永久切换

setenforce 0  切换到宽容模式

                1  切换到强制模式

getenforce    查看selinux工作模式

Linux SELinux讲解_第3张图片

SELINUX TYPE策略类型

策略类型决定了使用那种策略规则来执行进程(主体)可以访问的文件或目录资源(目标)

target

主要对系统中的服务进程进行访问控制

可以限制其它进程和用户

minumum

与Target类似,只不过此策略允许SELinux在不消耗过多资源的情况下运行

一般在低内存设备上使用(相比于target可以选择部分进程进行访问控制)

mls

自定义级别,对进程做访问控制

可以对所有进程做控制

修改策略类型

直接在配置文件修改

sestatus                          查看selinux状态(包含策略类型)


配置安全上下文

查看安全上下文

ls -Z  文件          查看文件的安全上下文

ls -dZ 目录            查看目录的安全上下文

ps auxZ | grep 进程     查看进程的安全上下文

Linux SELinux讲解_第4张图片

 

字段讲解

安全上下文字段通过:分隔,分为4个字段

用户字段:角色字段:类型:灵敏度

SELinux用户

seinfo -u  列出SELinux中所有的身份

用于标识该数据被哪个身份所拥有(相当于权限中的用户身份)

 unconfined_u :不受限的用户,不受SELinux限制的进程所产生的文件大部分就是此用户

 system_u:     系统用户,大部分就是系统自己产生的文件

Linux SELinux讲解_第5张图片

 

角色字段

seinfo -r   列出SELinux所有的角色

用于表示此数据是进程还是文件/目录

 object_r: 代表的时文件/目录资源

 system_r:代表的就是进程

Linux SELinux讲解_第6张图片

 

类型

seinfo -t   列出SELinux所有的类型

安全上下文最重要的字段,决定着进程是否可以访问文件

在文件/目录的安全上下文中被称为类型,在进程的安全上下文中被称为域

只有主体(进程)的域与目标(文件/目录)的类型匹配时,才可以正常访问

Linux SELinux讲解_第7张图片

修改安全上下文

chcon命令

chcon -t 文件/目录   修改文件/目录的类型字段

-u  修改安全上下文的身份字段

-r   修改安全上下文的角色字段

       -R   对当前目录和目录下的所有文件同时设置

restorecon命令

restorecon -Rv 文件/目录  恢复文件默认的安全上下文

       -R   对当前目录和目录下的所有文件同时设置

       -v   显示恢复过程

修改默认的安全上下文

只有系统默认目录才有默认的安全上下文,对于新创建的目录,我们需要手工指定默认安全上下文

semange fcontext -l  查询所有的安全上下文

       -t    设定默认安全上下文的类型

       -m  修改文件/目录的默认安全上下文

       -a   添加默认安全上下文

       -e  将此文件的/目录的类型复制给另一个文件/目录

semange fcontext -a -t 类型              文件/目录 为文件/目录添加默认的安全上下文类型

semange fcontext -a -e 文件1 文件2  将文件2默认的安全上下文改为此文件1的类型

semange port -a -t http_port_t -p tcp 82 为http_port_t类型添加tcp的82端口


配置策略规则

查看策略规则

查看规则名称

seinfo -b                         查看当前策略下的具体规则名称

Linux SELinux讲解_第8张图片

 

查看具体规则内容

sesearch --allow -b 规则名       查看此规则名下的允许规则具体内容

sesearch –allow -s 主体的域     查看和指定主体的类型相关的规则(允许的)

sesearch –allow -t 目标的类型    查看和目标的的类型相关的规则(允许的)

              --allow        显示允许的规则

              --neverallow 显示从不允许的规则

Linux SELinux讲解_第9张图片

Linux SELinux讲解_第10张图片

修改策略规则状态

getsebool 规则名     查看此规则是否开启

getsebool -a          查看所有规则是否开启

setsebool -P 规则名=0  将此规则关闭(1表示开启)

              -P 表示永久生效

Linux SELinux讲解_第11张图片

你可能感兴趣的:(Linux,linux,服务器,运维)