SELinux简介
SELinux 是Security-Enhanced Linux的简写,意指安全增强的linux。它不是用来防火墙设置的。但它对Linux系统的安全很有用。Linux内核(Kernel)从2.6就有了SELinux。
SELinux是内置在许多GNU / Linux发行版中的主要强制访问控制(MAC)机制。SELinux最初是由犹他州大学Flux团队和美国国防部开发的Flux高级安全内核(FLASK)。美国国家安全局加强了这一发展,并将其作为开源软件发布。SELinux的历史可以在Flux和NSA网站上找到。
官方资料
什么是SElinux?
- SELinux是Linux的安全增强,它允许用户和管理员对访问控制进行更多的控制。
- 访问权限可以限制在哪些用户和应用程序可以访问哪些资源这样的变量上(由变量控制访问权限)。这些资源可以采用文件的形式。用户和用户运行的应用程序可以修改标准的Linux访问控制,例如文件模式(-rwxr-xr-x)。相反,SELinux访问控制由加载在系统上的策略决定,粗心的用户或行为不当的应用程序可能不会更改该策略。
- SELinux还为访问控制添加了更细的粒度。例如,SELinux不只是能够指定谁可以读、写或执行文件,而是允许您指定谁可以取消链接、只追加、移动文件等等。SELinux还允许您指定对除文件以外的许多资源的访问,例如网络资源和进程间通信(IPC)。
Security-Enhanced Linux的缩写,是一种非常安全的linux模式。基本上用户得不到什么权限在这个系统下面。不过你可以在这个系统下面写一些配置文件来管理这些用户可以做什么或者不能干什么。
SELinux 的作用及权限管理机制:
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
SELinux是做什么的?
SELinux控制应用程序和资源之间的访问。通过使用强制安全策略,SELinux强制实现系统的安全目标,而不管应用程序是否行为不当或用户是否粗心。SELinux能够实现广泛的安全目标,从简单的沙箱应用程序到锁定面向网络的守护进程和限制用户只使用他们需要的资源。
如何知道SELinux是否开启?
Red Hat Enterprise Linux或Fedora默认开启。你可以运行getenforce来查看它是否在积极地执行策略:
[root@localhost /]# getenforce
Enforcing
[root@localhost /]#
enforce 实施;强制;加强
如果输出显示强制执行(enforcing),那么您的系统将受到SELinux的保护。如果它说启用了许可的SELinux(permissive),但只是记录失败的访问,而不是拒绝它们。如果它说禁用(Disabled) ,那么SELinux在您的系统上没有启用。
SELinux 三种工作模式:
- enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。
- permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。
- disabled:关闭 SELinux。
SELinux 工作模式可以在 /etc/selinux/config 中设定。
如果想从 disabled 切换到 enforcing 或者 permissive 的话,需要重启系统。反过来也一样。
enforcing 和 permissive 模式可以通过 setenforce 1|0 命令快速切换。
需要注意的是,如果系统已经在关闭 SELinux 的状态下运行了一段时间,在打开 SELinux 之后的第一次重启速度可能会比较慢。因为系统必须为磁盘中的文件创建安全上下文。
SELinux 日志的记录需要借助 auditd.service 这个服务,请不要禁用它。
临时关闭SElinux
[root@localhost /]# getenforce //查看Selinux状态
Enforcing
[root@localhost /]# setenforce 0 //临时关闭Selinux
[root@localhost /]# getenforce
Permissive
永久关闭SElinux
方法一:
[root@localhost /]# vi /etc/selinux/config
将文件中的SELINUX="" 改为 disabled ,然后重启。
......
SELINUX=enforcing //修改此处为disabled
SELINUXTYPE=targeted
......
方法二:
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
注意sed命令选项特点
- -i The default operation mode is to break symbolic and hard links. 会破坏软链接和硬链接
- -c will avoid breaking links (symbolic or hard). 不会破坏软链接和硬链接
- --follow-symlinks follow symlinks when processing in place; hard links will still be broken. 这个保护软链接,但是会破坏硬链接。
所以使用sed -我的s / ^ SELINUX =执行/ SELINUX =禁用/ g /etc/selinux/config的修改/ etc / sysconfig / SELINUX文件后。它已经不在是/ etc / selinux / config的链接文件,从而变成了一个普通文件。
如何获取SElinux?
Distribution(发行版) | How to get it |
---|---|
Red Hat Enterprise Linux (4+) | Default |
Fedora (2+) | Default |
Ubuntu | Hardened Ubuntu |
Debian | add-on |
Gentoo | Hardened Gentoo |
为什么SElinux会存在?
您的发行版或供应商可能已经选择默认启用SELinux。他们这样做是因为他们希望在他们发布的Linux版本上增加安全保护。为了创建安全策略来保护您的系统免受入侵,同时允许用户按照他们正常的方式操作,已经付出了大量的努力。在这些系统上启用SELinux是一个好主意,因为它可以保护您免受已知漏洞的伤害,同时平衡您的系统使用需求。
The SELinux Notebook
SELinux笔记本演示了SELinux的一些功能。
主要部分是:
- SELinux的概述
- 核心组件
- 强制访问控制(MAC)
- SELinux用户
- 基于角色的访问控制
- 安全上下文
- 对象
- 计算安全上下文
- 计算访问决策
- SELinux策略的类型
- 允许和强制模式
- Linux安全模块和SELinux
- SELinux用户空间库
- SELinux网络支持
- SELinux虚拟机支持
- SELinux - windows支持
- 沙箱服务
- SELinux的配置文件
- 全局配置文件
- ......