我必须设置一个尽可能安全的服务器。您会使用哪种安全增强功能?为什么?SELinux、AppArmor 还是 grsecurity?您能给我一些关于这三个的提示、提示、优缺点吗?
AFAIK:
- SELinux:最强大但最复杂
- AppArmor:比 SELinux 更简单的配置/管理
- grsecurity:由于自动训练而配置简单,除了访问控制之外还有更多功能
答案1
我在这方面做了很多研究。我甚至利用了AppArmor 的 MySQL 规则集。AppArmor 是最弱的进程分离形式。我所利用的特性是所有进程都对某些相同的目录(如)具有写入权限。AppArmor 的优点/tmp/
在于它可以打破一些漏洞,而不会妨碍用户/管理员。但是 AppArmor 有一些基本缺陷,短期内不会得到修复。
SELinux 非常安全,而且非常很烦人。与 AppAmoror 不同,大多数合法应用程序在 SELinux 重新配置之前不会运行。这通常会导致管理员错误配置 SELinux 或将其全部禁用。
grsecurity 是一个非常大的工具包。我最喜欢的是 grsecuirty 的增强型 chroot。它比 SELinux 更安全,尽管设置 chroot jail 需要一些技巧和时间,而 SELinux 和 AppAprmor “就可以正常工作”。
还有第四个系统,虚拟机。在虚拟机环境中发现漏洞,攻击者可以利用这些漏洞“突破”。但是,虚拟机的隔离程度甚至比 chroot 更高,因为在虚拟机中,进程之间共享的资源更少。虚拟机可用的资源是虚拟的,可以有与其他虚拟机之间几乎没有重叠。这也与<buzzword>
“云计算“ </buzzword>
。在云环境中,您可以将数据库和 Web 应用程序进行非常清晰的分离,这对于安全性而言非常重要。也可能一个漏洞就能控制整个云以及在其上运行的所有 VM。
答案2
就我个人而言,我会使用 SELinux,因为我最终会选择 RHEL 的某个版本,该版本大部分都已开箱即用。Red Hat 也有一组响应迅速的维护人员,并且有很多关于配置 SELinux 的非常好的文档。下面是有用的链接。