【linux】Linux系统SELinux简介
安全加强型Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
是linux安全加强的另一种实现方式。在生产环境中用的不多。是由美国国家安全局开发,美国国防部为计算机安全的不同级别指定了4个准则,从高到低顺序是A、B、C、D,每一个级别还细分了若干子级。A、B这两个最高安全等级是应用于国防的,默认linux安全级别是c2。
SELinux它的工作于内核中。
linux本身的系统安全机制是,DAC(Discretionary Access Control)自主访问控制,而SELinux引入的一种机制是MAC(Mandatory Access Control强制访问控制)。
一个进程属于某个属主,可以访问用户所拥有的所有资源。进程安全上下文。
每个进程运行起来需要访问10个资源,那么仅仅就只能访问10个资源,即便它以某个用户身份运行,而这个用户可以访问额外其他的资源,仍然不能被此进程所访问,类似于安全沙箱(最小资源集合),进程只能访问这个沙箱内部的资源。
难点在于如何按需设置沙箱。根据运行的情况请求的资源也需要跟着变动,这就需要沙箱的切换。SELinux简单说就是为每个进程启动专有的沙箱。
比如客户端与服务端通信,当客户端被劫持,那么客户端所访问的资源劫持者也可以看见。
SELinux运行两种工作级别:
strict:每个进程都受到selinux严格控制。
targeted:仅有限个进程受到selinux的控制,只监控容易受到攻击的进程,所以这种实现起来比较容易。
[root@localhost ~]# cat /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
subject:进程
object:进程,文件等。
每个操作对象被操作的模式不一样,比如文件(可以被打开,写入,读取,删除,改变属主)
安全上下文(Security Context)
安全上下文是 SELinux 的核心。
安全上下文我自己把它分为「进程安全上下文」和「文件安全上下文」。
一个「进程安全上下文」一般对应多个「文件安全上下文」。
只有两者的安全上下文对应上了,进程才能访问文件。它们的对应关系由政策中的规则决定。
我们已经知道进程按照特定的SELinux域来执行的,域被SELinux用来检查进程针对某一上下文的文件的权限。我们需要知道如何设置文件的上下文,知道如何让这可管理。由此以来,如果当出现因为错误的上下文而权限拒绝。
未完待续。。。。