如何保护共享托管环境中的 Apache?(chrooting,避免符号链接......)

如何保护共享托管环境中的 Apache?(chrooting,避免符号链接......)

我在处理 Apache 配置时遇到了问题:问题是我想将每个用户限制到他自己的文档根目录(因此,我需要的是 chroot()),但是:

  • Mod_chroot 仅在全局下起作用,而不适用于每个虚拟主机:我将用户放在如下路径中/home/vhosts/xxxxx/domains/domain.tld/public_html(xxxxx 是用户),但无法解决 chrooting 问题/home/vhosts,因为用户仍然可以互相看到。
  • 使用 apache-mod-itk 会使网站速度变得太慢,我不确定它是否能解决任何问题
  • 如果不使用前两种方法,我认为唯一剩下的事情就是避免符号链接,不允许用户链接到不属于他们的东西。

因此,我想我会遵循第三点,但是...如何有效避免符号链接,同时仍保持 mod_rewrite 正常工作?!
php 已经使用 php-fpm 进行了 chroot,因此我唯一关心的是 Apache 本身。

答案1

为什么需要限制 apache 本身?将脚本运行时(php、Perl、ruby 等)锁定在 chroot 中不是更好/足够吗?如果是这样,请查看 mod_fastcgi 以及如何为所需的特定语言启动持久解释器。

答案2

任何看到这篇文章的人都应该注意到,Apache 所描述的SymLinksIfOwnerMatch并不是适当的安全措施:

此选项不应被视为安全限制,因为符号链接测试容易受到竞争条件的影响,从而导致其可以被规避。”
(来自http://httpd.apache.org/docs/2.2/mod/core.html#options)。

除了完全禁止符号链接并阻止用户覆盖 .htaccess 文件中的设置之外,若要查看防止符号链接攻击的解决方案,请查看https://documentation.cpanel.net/display/EA/Symlink+Race+Condition+Protection(它不仅仅是 cPanel 特有的)。

相关内容