Linux之SELinux的开启、关闭。
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来查看它是否在积极地执⾏策略:
linux系统登录[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的⼀些功能。
主要部分是:
强制访问控制(MAC)
SELinux⽤户
基于⾓⾊的访问控制
安全上下⽂
对象
计算安全上下⽂
计算访问决策
SELinux策略的类型
允许和强制模式
Linux安全模块和SELinux
SELinux⽤户空间库
SELinux⽹络⽀持
SELinux虚拟机⽀持
SELinux - windows⽀持
沙箱服务
SELinux的配置⽂件
全局配置⽂件
......