概念介绍
selinux是linux中的安全管理软件,集成到内核中,它可以对进程进行文件资源的访问控制MAC(委托访问控制),比传统的DAC(自动访问控制,rwx)具有更细粒度的访问控制。
概念如下:
主体(subject):进程
目标(object):文件系统
策略(policy):策略有很多规则,规则里面定义了许多进程的安全上下文的域到文件系统的安全上下文的type访问权限
安全上下文(security context):进程和文件都具有安全上下文,文件通过ls -Z查看,进程通过ps -efZ查看,安全上下文格式为identify:role:type,第一个为身份标识,第二个为角色,第三个在进程叫域domain,在文件中叫type。
配置注意事项
selinux的模式有三种
enforcing:强制模式
permissive:许可模式,但会打印日志告警信息
disabled:关闭
策略有如下几种
targeted(常用)、minimum、mls
以上可通过在/etc/sysconfig/selinux中配置,selinux参数配置模式、selinuxtype参数配置策略。可以通过setenfoce临时设置selinux模式。由于selinux是内核功能,由enfocing和permissive改成distabled需要重启生效,由distabled改回到启动状态也是需要重启生效。
selinux中的日志通过在安装setroubleshoot服务启用,在/var/log/messages中查找关于setroubleshoot字段查看,一般不需要手工启用服务,默认集成到内核中了,通过日志查找到详细信息后用sealert -l 错误代码查看。也可以通过安装auditd服务查看,需要启用服务,日志写在了/var/log/audit/audit.log中,查看错误日志的方法是audit2why < /var/log/audit/audit.log
常用命令如下
sestatus #查看selinux的状态信息
seinfo ##查看统计状态,sebinfo -b可查看规则booleans
getenfoce #查看当前selinux的模式
setenforce [0|1] #临时设置selinux的工作模式,0是permissive模式,1是enforcing模式
chcon [-R][-t type][-u user][-r role] 文件 #改变文件的安全上下文
sesearch [-s 主体类型][-t 目标类型][-b 规则布尔值] #查看规则的详细信息,如域到类型的映射
getsebool [-a] [布尔值规则] #查看布尔值规则的启用状态
setsebool [-P] 布尔值=[0|1] ##P代表永久修改,修改布尔值的启用状态,0代表启用,1代表禁用
semanage fcontext -l #查看文件或目录的默认安全上下文
semanage fcontext [-a|-d|-m] [-frst] 文件或目录描述 #修改文件或目录的默认安全上下文,例如 -a -t default_t "/data(/.*)?"
restorecon -Rv /data #将文件或目录恢复到默认的安全上下文