SELinux: Secure Enhanced Linux,工作于Linux内核中
SELinux的配置文件:
/etc/sysconfig/selinux --> /etc/selinux/config
SELinux有两种工作级别:
strict:每个进程都受到selinux的控制
targeted:仅有限个进程受到selinux控制,只监控容易被入侵的进程
查看selinux的工作级别:cat /etc/sysconfig/selinux
SELinux为每个文件提供了安全标签,也为进程提供了安全标签
user:role:type
user: SELinux的user
role: 角色
type: 类型
查看文件被selinux打上的安全标签:
# ls -Z /etc
查看进程被selinux打上的安全标签:
# ps auxZ
SELinux规则库:
任何一个进程能访问哪些文件,并不是严格按照进程自己的domain和被访问文件的type是否匹配才能访问的,而是看我们在系统上定义的一系列规则,也就是SELinux策略
规则:哪种域能访问哪种或哪些种类型的文件
进程访问文件的过程: 1.进程启动后,先检查进程和文件属主属组等权限是否符合,如果符合,再检查第二步 2.检查SELinux的规则库,规则库中是否有明确授权进程所属的域能够访问这个文件所属的类型,如果有,那么这个进程就可以访问这个文件了。
如果没有检查到授权,那么就会被SELinux的规则所拒绝。也就意味着违反了SELinux的安全策略,除了不允许访问之外,还要记录在日志文件中。
SELinux规则库中的规则通常是二进制编码以后存放的,这样检查就会比较快。
配置SELinux:
1.SELinux是否启用 2.给文件重新打标 3.设定某些布尔型特性
SELinux是否启用: SELinux的状态: enforcing: 强制,每个受限的进程都必然受限 permissive: 启用,每个受限的进程违规操作不会被禁止,但会被记录于审计日志,日志文件在/var/log/audit/audit.log disabled: 关闭,如果当前状态是disabled,那么无论是改为enforcing还是permissive,都需要重启系统才能生效 相关命令: getenforce:获取selinux当前状态 setenforce 0|1 0: 设置为permissive 1: 设置为enforcing 此设定:重启系统后无效 配置文件:/etc/sysconfig/selinux, /etc/selinux/confg # SELINUX={disabled|enforcing|permissive}