SELinux
- 简介
SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。
SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。
- 作用
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
防止别人利用网络服务的bug使用root权限访问别人的服务器。
- DAC和MAC
-
自主访问控制(Discretionary Access Control,DAC)
由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的。
用户可以按自己的意愿,有选择地与其他用户共享他的文件。 -
强制访问控制(Mandatory Access Control,MAC)
在访问资源时,判断程序是否有权限,而不是判断用户。
每当主体尝试访问对象时,都会由操作系统内核强制施行授权规则——检查安全属性并决定是否可进行访问。任何主体对任何对象的任何操作都将根据一组授权规则(也称策略)进行测试,决定操作是否允许。
即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。
即使是以 root 身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。
-
- SELinux 的工作模式
- enforcing-强制模式。
违反 SELinux 规则的行为将被阻止并记录到日志中。 - permissive-宽容模式
违反 SELinux 规则的行为只会记录到日志中。一般为调试用。 - disabled
关闭 SELinux。
- enforcing-强制模式。
-
常用命令
-
查询当前selinux模式
getenforce
-
查询SELinux当前policy详细信息
sestatus
参数信息列表及解释
SELinux status: enabled <==是否启动 SELinux
SELinuxfs mount: /sys/fs/selinux <==SELinux 的相关文件资料挂载点
SELinux root directory: /etc/selinux <==SELinux所在目录
Current mode: permissive<==目前的模式
Mode from config file: enforcing <==设定档指定的模式
Loaded policy name: targeted <==目前的政策为何- 关闭SELinux
快速关闭(临时的,重启后失效)
setenforce 0
永久关闭(重启才能生效)
vi /etc/selinux/config
设置SELINUX=disabled
-