54SA.COM|专注于系统运维管理,为中国SA提供动力!
当前位置: 主页 > Linux > 系统管理 > 内核研究 >

SELinux简介:Linux内核安全

时间:2011-07-01 01:35来源:未知 编辑:佚名

虽然SELinux已在Linux内核中存在了近十年,但至今仍有很多管理员由于担心其配置的复杂性而弃之不用。虽然许多Linux管理员在他们的Linux服务器中禁用SELinux来避免在安装应用程序时对它进行配置,但在Linux安全性方面SELinux是一个非常有用的工具。下面让我们了解一下它的工作原理,用SELinux策略和访问控制的管理方式来保护你的Linux服务器吧。

在Linux操作系统中,SELinux实现了强制访问控制(MAC)的安全模式。在标准的Linux环境中开启了自由访问控制(DAC)后,这一机制就会在Linux内核中对所有操作的安全性进行检查。

理解DAC和MAC的Linux安全模型

由于SELinux以MAC为基础,所以了解DAC(默认的Linux安全模型)的不足以及MAC相对于DAC的优势就变得非常重要。

在MAC模式下,管理员控制了系统中软件的所有交互行为。采用了最小特权方式后,默认情况下应用程序和用户没有任何权限,因为作为系统安全策略的一部分,所有的权限都必须由管理员授予。在DAC模式下,文件所有权在用户,且该用户对它们有完全的控制权限。黑客们攻击用户帐户后,便可以对该用户拥有的文件做任何事情。例如,黑客攻击FTP服务器后将完全控制FTP服务器帐户拥有的所有文件。更糟的是,如果一个应用程序在根帐号下(常见的如Web和FTP服务)运行时,攻击者将完全控制整个操作系统。

MAC模式为每一个应用程序都提供了一个虚拟“沙漏”,只允许应用程序执行它设计需要且在安全策略中明确允许的任务。例如,Web服务器可能只能够读取网站发布的文件,并监听在指定网络的端口。即使攻击者将其攻破,他们也无法执行在安全策略中没有明确允许的任何活动,即使这个进程在根用户下运行。

标准Unix权限仍然会在系统中存在。当文件被访问时,标准Unix权限将先于SELinux安全策略生效。如果标准权限拒绝访问,访问直接被拒绝,SELinux在整个过程中没有参与。但是,如果标准权限允许访问,SELinux此时将参与进来并根据其源进程和目标对象的安全上下文来判断允许还是拒绝访问。

SELinux中主体和客体的定义

在MAC的安全上下文中有两个重要概念,主体和客体。MAC(或非自由访问控制)框架允许你规定所有进程(称为主体)与系统其它部分如文件、设备、套接字、端口以及其它进程(称为客体)进行交互的权限。它通过对所有进程和对象定义安全策略来实现。这些进程和对象都由内核控制,安全的决定基于所有可用的信息,而不仅仅是用户的身份。在此模型中,一个进程可被授予的权限只是它需要且能发挥作用的权限。这遵循了最小权限原则,不同于DAC完全权限的概念。

举例来说,在MAC模式下,用户通常是将自己的数据存放在主目录中来保护自己的数据,但是使用chmod命令修改文件的权限将会暴露自己的数据,这时受管制的进程如果没有权限无法接触这些文件或试图修改相应的策略。

[责任编辑:admin]

------分隔线----------------------------