SELinux简介
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。
SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,
它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。
假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。
传统UNIX系统使用的安全系统:自由访问控制(DAC:Discretionary Access Control)
SELinx采用的安全系统:强制访问控制(MAC:Mandatory Access Control)
DAC环境下进程是无束缚的
MAC环境下策略的规则决定控制的严格程度
MAC环境下进程可以被限制的
策略被用来定义被限制的进程能够使用那些资源(文件和端口)
默认情况下,没有被明确允许的行为将被拒绝
SElinux的工作类型:
使用cat /etc/selinux/config 可以查看当前SELinux类型和系统支持的所有SELinux类型,
不同系统版本支持类型有所不同
SELinux共有四种工作类型:
- strict:centos5,每个进程都受到selinux的控制,不识别的进程将拒绝
- targeted: 用来保护常见的网络服务,仅有限进程受到selinux控制,只监控容易被入侵的进程
- minimum:centos7,修改的targeted,只对选择的网络服务
mls:提供MLS(多级安全)机制的安全性
targeted现为CentOS系统默认SElinux类型;
minimum和mls稳定性不足&#