在 CentOS 6.3 环境中是否真的需要使用 grsecurity 进行服务器加固?

信息安全 防火墙 网络服务器 硬化 安全
2021-08-10 12:44:33

我认为自己在 IT 方面相当出色,但是我在服务器和系统管理方面相对较新。我是我公司的一名网络开发人员,我负责设置和迁移到新的 VPS 以摆脱我公司多年来一直使用的共享主机。

在这个过程中,我已经花了将近一个星期的时间来加固服务器(安全成为一个问题,这就是我们首先移动的原因),并且一直在努力加固服务器。我已经安装并配置了 ConfigServer 防火墙、加固的 SSH、只有私钥,所有的好东西。但我发现一个名为grsecurity的程序看起来很有希望,但我想我只是好奇它是否矫枉过正?

grsecurity 是否提供了我真正需要的东西?或者它是我可以没有的东西?我读了一些关于它如何防止缓冲区溢出和其他东西的东西,但是我只是好奇这是否值得,因为我不想在这台服务器的安全性中添加这么多移动部件,以至于我最终落在了我的脸。

感谢您给我的任何反馈,或您可能拥有的教程/信息的链接!

值得一提的是,服务器环境如下:

  • Linode VPS 2048
  • CentOS 6.3
  • PHP 5.4.5
  • 配置服务器防火墙

再次,我很感激你能给我的任何反馈!我含蓄地信任这个社区,我知道你们知道你们在说什么!

2个回答

grsecurity(又名 grsec)并不是一个真正的程序——它是 Linux 的强化套件。

它包括以下内容:

这些功能旨在防止 shellcode 在系统上成功。chroot 和其他系统功能的限制有助于防止不受信任的进程(例如 httpd)执行它们不应该执行的任务。

以下是一些实际改进的示例:

  • 防止ptrace和其他不应该相互交谈的进程之间的 IPC 机制。
  • 取证能力通过 /proc/[pid]/ipaddr
  • httpd 可以放置在具有高度限制性权限的 chroot 监狱中(在 chroot 之外没有杀死、没有 pid/sid 设置、sysctl 写入等)
  • 对流程、用户、组和其他实体进行全面细粒度的审计。
  • 能够从用户模式完全隐藏内核模式进程。

配置 grsec 最困难和最强大的部分是 RBAC 系统。它依赖于您正确和完整地配置某些进程的权限和能力。默认情况下,这是一个相当严格的集合。这通常会在没有明显原因的情况下崩溃并杀死某些进程。但是,如果您正确调整它,这是一项令人难以置信的安全措施。

它非常适合高安全性场景,我强烈建议先安装禁用 RBAC 的 grsec 以试一试。为您的服务(至少 httpd,最好是 SQL / 邮件守护程序)设置一个适当的 chroot,这样整个系统就不会由于单个守护程序中的漏洞而被 pwned。

一个答案要涵盖的内容太多了,所以我建议您通读grsec wikibook

至于你是否需要它——这取决于。配置起来很复杂(包括从源代码重新编译内核,加上大量的自动训练和手动配置编辑),并且需要大量时间来完全设置,但结果是你获得了巨大的阻力服务守护进程和内核本身的远程代码执行漏洞。弄清楚你想花多少时间来保护自己免受此类攻击,然后从那里开始。

相关但重要的主题:

根据这个关于拥有自定义内核的 CentOS 托管页面,“CentOS 旨在作为一个完整的环境运行。如果您更换一个关键组件,它可能会很好地影响系统其余部分的行为。”:

http://wiki.centos.org/HowTos/Custom_Kernel

另请参阅对“为什么 Centos 仍未使用最新内核”问题的 Stackexchange 相关答案:

https://superuser.com/a/712079