Answers:
是的,Selinux使系统更安全。但是您需要了解它的概念,并且至少具有有关selinux和审核工具的基本知识。
Selinux正在登录到/var/log/audit/audit.log(但请确保auditd正在运行),并且有许多工具可以解决selinux问题。可能最简单的方法是使用audit2allow
是的,假设Linux已真正使用,SELinux可使Red Hat(以及其他实际使用它的其他Linux发行版)更安全。
SELinux实现了强制访问控制。普通的Unix权限,ACL等实现了随意的访问控制。两者相辅相成。
为了工作,SELinux需要一个策略,定义可以允许在系统上执行哪些操作。尽管可以从头开始创建整个系统策略,但是大多数Linux发行版都基于所谓的reference policy发行了策略。这意味着,除其他外,跨发行版配置SELinux将非常相似。(尽管默认情况下可能未安装,但大多数Linux发行版都在其软件包存储库中提供SELinux参考策略。)
SELinux的工作方式是限制用户和进程仅执行策略中允许他们执行的操作。默认情况下,该策略为拒绝,因此,如果该策略未明确允许操作,则该操作不会发生。这就是为什么您经常遇到SELinux不允许您尝试做的事情的原因。
从好的方面来说,这也可以防止漏洞利用,甚至是零日漏洞利用也无法幸免。例如,如果您的Web服务器(Apache)被利用,则损害仅限于Apache可以访问的那些东西。/etc/shadow
例如,即使使用远程root攻击,它也将无法读取文件。Unix权限(DAC)允许root读取文件,而SELinux(MAC)不允许受感染的进程越界。
最大的麻烦是必须为该服务加载SELinux策略模块。如果在您的机器上安装了不包含SELinux策略模块的服务,则该服务将不受限制地运行,并能够执行其所需的任何操作。SELinux不适用于它。
您还应该知道的另一件事就是布尔值。SELinux策略提供了这些可调参数,以针对特定安装对其进行自定义,并根据本地配置需求允许或拒绝访问。例如,您可以授予Apache访问Samba共享的权限,使Samba能够共享用户主目录,以及一些其他可能有用的东西,这些东西对于某些设置是必需的,而对于其他设置则不是必需的。
我目前看到的关于SELinux的最佳指南是Red Hat的Security-Enhanced Linux User Guide。这将帮助您快速启动并运行,并填写正在发生的事情的背景详细信息。它还包括全面的故障排除指南,可帮助您使过程在SELinux下运行。
它有用吗?
SELinux可以防止进程(和用户,如果您已限制用户)做意外的事情。它严重限制了远程利用程序可能造成的破坏。如果您从未遭受过远程妥协,那么您(1)很幸运,并且(2)可能是新手。如果您进行了远程妥协,那么您当然不希望它再次发生。
除非您恰巧在家中运行面向Internet的服务(有些人这样做),否则它在家庭环境中没有什么用。在这种情况下,上述所有内容均适用。
SELinux可能是您的数据与真正希望获得零日攻击的攻击者之间的最后一站。如果可以使用,为什么不呢?