selinux强制访问控制的一种策略,在传统的linux系统中,一切皆文件,有用户,组和权限来控制访问,在selinux中,一切皆对象,由存放在扩展属性域的安全元素控制访问,全部文件、端口、进程都具有安全上下文,安全上下文主要分为五个安全元素user、role、type、sensitivity、category。linux
user:登陆系统的用户类型,如root,user_u,system_u,所属本地进程都属于自由(unconfined)进程
role:定义文件,进程和用户的用途:文件:object_r,进程和用户:system_r
type:数据类型,在规则中,何种进程类型访问何种文件都是基于type来实现的,多服务公用的类型有public_content_t
sensitivity:限制访问的须要由组织定义的分层
category:对于规定组织划分不分层的分类centos
selinux主要模式有:strict(centos5)、targeted、minimun(centos7)、mls几类,selinux系统默认选择是targeten,strict已经再也不使用,minimun和mls稳定性不足安全
实际上下文:存放在元数据中,查看文件上下文:ls -Z。查看进程上下文:ps -Z
指望上下文:指望上下文也能够理解为默认上下文,它存放在二进制的selinux策略库中。查看指望上下文的命令为semanage fcontext -l查看系统全部指望上下文ssh
更改配置文件类型通常只在enforcing和disabled两个模式下相互切换,由于第二种只是报警,没有任何意义,该配置只有在重启后有效
查看当前selinux的状态命令为
getenforce查看当前状态
setenforce临时开启或关闭selinux
setenforce 0|1,其中0表明permissive,1表明enforcing
sestatus详细查看当前selinux状态
给文件从新打安全标签
chcon该命令直接更改实际上下文,不会更改指望上下文,若是系统从新打安全标签,将更改,这里不建议这么更改。
chcon [-R] [-u user] [-r role] [-t type] 目录|文件,其中-R递归打标签。
恢复目录或文件的指望上下文
restorecon 目录或文件,-R递归
一、对默认安全上下文查询与更改。 注意:在更改指望上下文后,须要restorecon 更改目录,让实际安全上下文和指望上下文同步
semanage fcontext -l
semanage fcontext -a -t 类型 目录或文件
restorecon -Rv 目录,恢复指望上下文,并显示过程,若是指望上下文和实际上下文一致将不显示任何信息
semanage fcontext -d -t 类型 目录或文件
二、selinux更改端口标签
查看端口标签
semanage port -l
添加端口,若须要让该服务多增长一个不是默认端口号的端口,则须要添加新的端口号,这里以ssh为例
semanage port -a -t 类型 -p tcp|udp 端口号
只须要在将ssh配置文件/etc/ssh/sshd.conf文件中的port端口改为2222重启服务便可
删除端口,只须要将a改为d便可
semanage port -d -t 类型 -p tcp|udp 端口号
修改现有端口为新标签
semanage port -m -t 类型 -p tcp|udp 端口号
三、selinux布尔值
查看当前系统全部布尔值
getsebool -a|名称
semanage boolean -l
semanage boolean -l -C查看当前已经修改过的bool值
设置布尔值
setsebool [-P] 须要修改的bool值=[0|1]
setsebool [-P] 须要修改的bool值 [on|off]
设置布尔值时,若是须要让操做存入磁盘,永久有效,则须要在中间加上-P参数tcp