selinux

Reference

概念

1. 为什么提出SELinux
之前学习的权限,都是基于用户的(所有者、所有组、其它用户),只有当该用户针对某个文件或者目录具备相应的rws权限之后,才可以做相应的操作
此时系统管理员无法通过基于用户的标准访问策略(DAC)生成全面、精细的安全策略
此时就需要通过SELinux来实现

2. SELinux简介
SELinux实施强制访问控制(MAC),SELinux对每个文件、进程、目录、端口都有专门的安全标签,此标签被称为安全上下文;
SELinux就是基于进程安全上下文和文件/目录的安全上下文来实现策略控制
即:只有当文件/目录的安全上下文类型和进程的安全上下文类型符合时,该进程才可以对文件/目录做相应的操作
Subject是要管理的程序,Object是要操作的目标文件或其他资源。
Policy为基本的存取安全性策略,控制subject是否有权限操作object。Policy分为下面会讲到的三种类型,target mini mls.

3. SELinux作用
SELinux主要目标是防止已遭泄露的系统服务(进程)访问用户数据(文件/目录)
增强现有的安全解决方案
使用SELinux策略来确定某个进程能够访问文件、目录、端口

4. 注意事项
SELinux并不是防病毒软件、并不能够用来替代密码、防火墙和安全系统
SELinux的访问策略可以基于所有的可用信息(SELinux用户、角色、类型、安全级别等)

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

SELINUX 工作模式
ebforcing  强制模式(默认模式)
启用SELinux,并强制执行所有的安全策略规则

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

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

注意事项
当从强制或者宽容模式切换到关闭模式,或从关闭模式切换到其它两种模式,需要重启系统
强制和宽容模式之间的切换不需要重启系统

修改工作模式
可以直接在配置文件修改,也可以使用命令修改
命令修改为临时切换,配置文件修改为永久切换

setenforce 0  切换到宽容模式

                1  切换到强制模式

getenforce    查看selinux工作模式


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

target
主要对系统中的服务进程进行访问控制
可以限制其它进程和用户

minumum
与Target类似,只不过此策略允许SELinux在不消耗过多资源的情况下运行
一般在低内存设备上使用(相比于target可以选择部分进程进行访问控制)

mls
自定义级别,对进程做访问控制
可以对所有进程做控制

修改策略类型
直接在配置文件修改
sestatus                          查看selinux状态(包含策略类型)

7. 配置安全上下文
ls -Z  文件          查看文件的安全上下文
ls -dZ 目录            查看目录的安全上下文
ps auxZ | grep 进程     查看进程的安全上下文


安全上下文字段通过:分隔,分为4个字段
	用户字段:角色字段:类型:灵敏度

SELinux用户
seinfo -u  列出SELinux中所有的身份
用于标识该数据被哪个身份所拥有(相当于权限中的用户身份)
 unconfined_u :不受限的用户,不受SELinux限制的进程所产生的文件大部分就是此用户
 system_u:     系统用户,大部分就是系统自己产生的文件

角色字段
seinfo -r   列出SELinux所有的角色
用于表示此数据是进程还是文件/目录
 object_r: 代表的时文件/目录资源
 system_r:代表的就是进程

类型
seinfo -t   列出SELinux所有的类型
安全上下文最重要的字段,决定着进程是否可以访问文件
在文件/目录的安全上下文中被称为类型,在进程的安全上下文中被称为域
只有主体(进程)的域与目标(文件/目录)的类型匹配时,才可以正常访问

chcon命令
chcon -t 文件/目录   修改文件/目录的类型字段
	-u  修改安全上下文的身份字段
	-r   修改安全上下文的角色字段
	-R   对当前目录和目录下的所有文件同时设置

restorecon命令
restorecon -Rv 文件/目录  恢复文件默认的安全上下文
       -R   对当前目录和目录下的所有文件同时设置
       -v   显示恢复过程

8. 配置策略规则
sestatus
seinfo -b                         查看当前策略下的具体规则名称

查看具体规则内容
sesearch --allow -b 规则名       查看此规则名下的允许规则具体内容
sesearch –allow -s 主体的域     查看和指定主体的类型相关的规则(允许的)
sesearch –allow -t 目标的类型    查看和目标的的类型相关的规则(允许的)
              --allow        显示允许的规则
              --neverallow 显示从不允许的规则

修改策略规则状态
getsebool 规则名     查看此规则是否开启
getsebool -a          查看所有规则是否开启
setsebool -P 规则名=0  将此规则关闭(1表示开启)
              -P 表示永久生效

9. log
/var/log/audit/audit.log 
sealert -a avc_file