使用什么来加固 Linux 盒子? Apparmor、SELinux、grsecurity、SMACK、chroot?

使用什么来加固 Linux 盒子? Apparmor、SELinux、grsecurity、SMACK、chroot?

我打算重新使用 Linux 作为桌面计算机。我想让它更安全。并尝试一些强化技术,特别是因为我计划拥有自己的服务器。

  • 什么是一个好的、合理的强化策略?我应该使用哪些工具 - Apparmor、SELinux、SMACK、chroot?
  • 我应该只使用一种工具,例如 Apparmor,还是以上工具的组合?
  • 这些工具有哪些优点/缺点?还有其他人吗?
  • 哪些具有合理的配置与安全性(改进)比率?
  • 我更愿意在桌面环境中使用哪一个?哪一个在服务器环境中。

这么多的问题。

答案1

AppArmour 通常被认为比 SELinux 更简单。 SELinux 相当复杂,甚至可以在军事应用中使用,而 AppArmour 往往更简单。 SELinux 在 i 节点级别上运行(即,限制的应用方式与 ACL 或 UNIX 权限相同 - 另一方面),而 AppArmour 在路径级别上应用(即,您根据路径指定访问权限,因此当路径更改时,它可能不适用) )。 AppArmour 还可以保护子进程(仅限 mod_php),但我对它的真正用途持怀疑态度。 AppArmour 似乎找到了进入主线内核的方式(它位于 -mm IIRC 中)。

我对 SMACK 不太了解,但从描述来看它看起来像是简化的 SELinux。如果您想查看的话,还有 RSBAC。

chroot 的使用范围有限,我认为它在桌面环境中不会有太多用处(它可以用于将守护进程与整个系统的访问分开 - 例如 DNS 守护进程)。

当然,值得应用“通用”强化,例如 PaX、-fstack-protector 等。当您的发行版支持 AppArmour/SELinux 时,您可以使用 Chroot。我认为 SELinux 更适合高安全领域(它对系统有更好的控制),而 AppArmour 更适合简单的强化。

一般来说,我不会费心去强化通用桌面,除了关闭未使用的服务、定期更新等,除非您在高度安全的区域工作。如果您无论如何都想确保安全,我会使用您的发行版支持的内容。其中许多要有效需要应用程序支持(例如支持属性的编译工具、书面规则),因此我建议使用您的发行版支持的内容。

答案2

使用 GRSecurity + PAX。其他一切都只是营销废话和/或主要基于 PAX 团队的工作。 PAX 的主要开发者 pipacs 刚刚在 Black Hat 2011/PWNIE 上获得了终身成就奖:

他的技术工作对安全产生了巨大的影响:他的想法是近年来所有主要操作系统的安全改进的基础,他的想法间接塑造了大多数现代内存损坏攻击技术。如今,任何攻击者如果不涉及我们的获胜者开创的防御性发明,就不能被认真对待。

因此,如果您确实想要一个安全的盒子,请使用 grsecurity+pax。 GRsec 为您提供对计算机的 RBAC 控制、大量基于文件系统 (chroot) 的保护、PaX 关闭黑客使用的大多数可能的攻击向量。您还可以使用 paxtest 测试您的盒子,看看您的盒子有什么样的保护和漏洞。

可能会对性能产生影响。阅读帮助:)。

相关内容