用什么来加固Linux box?Apparmor、SELinux、grsecurity、SMACK、chroot?

jot*_*ttr 20 security chroot selinux grsecurity hardening

我打算回到 Linux 作为台式机。我想让它更安全。并尝试一些强化技术,特别是因为我计划拥有自己的服务器。

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

这么多的问题。

Mac*_*tka 9

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

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

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

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

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