如何在CentOS上chroot Apache?

系统pipe理员build议我在chroot监狱里运行Apache,以防止攻击者控制服务器。

所以我的问题是:

  • 什么是在RHEL / CentOS 5中对Apache / 2.2.3进行chroot的最好的方法是什么?我只使用Apache提供的默认模块,比如mod_php和mod_security。

我听说过mod_security SecChrootDir,但我不知道它是否适合我的configuration,它说,它只build议在文档中的静态文件服务。

谢谢!

这是SELinux可能更容易的地方。 它甚至logging了它如何在CentOS和Apache下工作:

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

简而言之,如果您使用的是SELinux和Apache,则可能发生的情况是,入侵者只能访问和更改同一httpd域中的文件。 入侵者无法启动httpd域外的进程或访问非httpd相关文件。

编辑:重要的是要注意,真正的问题是防止或缓解特权升级。 Chroot可以提供帮助,但并不完全certificate – 在查找有关chroot安全性的信息时,我发现这一点 ,这导致我:

http://www.linuxsecurity.com/content/view/117632/49/

从这个环节中要记住的重要的事情是,你在chroot中部署的软件越多,有人可以跳出监狱的机会就越大。 请记住,你试图获得Apache以及支持在chroot监狱内工作的库。

看看mod_chroot

使dynamic网页在chroot下工作可能是一个痛苦,我们无法得到mod_chroot与Django一起工作,所以我们做了一个漫长而手动的方法:

mkdir /chroot ''populate /chroot with everything you need, this is a long process''' chroot /chroot /usr/sbin/apache2 -k start 

你在/ chroot / usr / sbin /目录下有一个apache二进制文件的副本。 chroot命令将产生在第一个参数中find的jail中执行的命令。

填充是一个更大的过程,网上有很多文档,Apache需要运行,你需要看看。

在nixCraft上有一个很好的教程 。 请记住,如果您计划大规模部署,复制可能会非常棘手。