Apache ITK 与 Suexec

Posted

技术标签:

【中文标题】Apache ITK 与 Suexec【英文标题】:Apache ITK vs Suexec 【发布时间】:2013-05-18 18:01:26 【问题描述】:

使用 ITK 模块而不是 Suexec 运行 Apache 服务器有什么好处?思路是一样的,就是以所有者权限运行脚本,而不是nobodywwwapache

使用 ITK 代替 suexec 会更好吗?如果是这样,为什么?相比之下,安全性和性能如何?

【问题讨论】:

【参考方案1】:

MPM-ITK 允许您使用每个用户的凭据而不是在 Apache 用户/组下运行 Apache。 Suexec 在特定用户/组下将脚本作为 CGI 运行,但 Apache 提供的静态文件仍需要更多的开放权限才能访问。

MPM-ITK 允许所有 Apache 模块(mod_php 等)在特定用户:组下运行,静态文件具有与脚本相同的权限。主要缺点是 Apache 的控制进程必须以 root 身份运行(具有降低的权限),因此它可以在解析请求后切换到任何用户。 Suexec 没有这个安全风险,但它只是脚本执行的一种解决方案(不是网站内容隔离)。

这里是a blog post with a good summary regarding MPM-ITK vs Suexec and other solutions。作者接受 MPM-ITK 的安全影响,认为它超过了竞争解决方案的缺点。我不同意作者的观点,即 Apache 漏洞利用不太可能因为 MPM-ITK 补丁正在使用而成功,所以我建议您保持最新的安全补丁(无论如何我们应该,对吗?)如果你是愿意接受安全风险以获得每个用户的利益。

总而言之,MPM-ITK 与 Suexec 的对比实际上是根据具体情况做出的决定。 MPM-ITK 之外的唯一解决方案是反向代理后面的每用户 Apache 实例,如果服务器资源不是问题的话。在此处阅读更多信息:http://wiki.apache.org/httpd/ExtendingPrivilegeSeparation

【讨论】:

非常感谢您的努力!我已经阅读了那篇文章,它似乎是唯一与 ITK 相关的总结! :) 除了一件事,当我们说ITK runs ALL processes as root 然后将它们作为用户特定生成时,我什么都理解——在 Apache 未知漏洞的情况下,这是理论上的威胁吗?以特定用户的身份生成后,不可能回到根目录,对吧? 正确。控制进程以 root 身份运行,具有降低的权限,并根据请求分叉并切换到正确的用户:组。分叉的进程不能变回根。 According to the MPM-ITK author: “由于 mpm-itk 必须能够 setuid(),它以 root 身份运行(尽管在可能的情况下受限于 POSIX 功能和 seccomp v2),直到解析请求并确定 vhost。这意味着任何代码执行漏洞在请求被解析之前将是一个潜在的根安全漏洞。(最有可能的地方可能在 mod_ssl 中。)" 总结,以防我是对的:保持 suexec 以获得最大的安全性并使用 ITK 来提高速度,但具有可想象但未被证实的潜在根安全漏洞的可能性?是什么让你认为它是 mod_ssl?你试过妥协吗?你听说过任何人都可以组成它吗? 遗憾的是,比较文章mitka.us/articles/mpm-itk 的链接现已消失。你能推荐另一个吗? 有点晚了,但为了记录和其他人:archive.org 是你的朋友web.archive.org/web/20061030122639/http://mitka.us/articles/…

以上是关于Apache ITK 与 Suexec的主要内容,如果未能解决你的问题,请参考以下文章

Apache 唯一 Vhost 用户,PHP 会话不起作用

如何在 Python 中使用 ITK 类

关于ubuntu环境下的APACHE2

尝试注册 ImageIOFactory 时出现 ITK 构建错误

如何使用 ITK 将调色板图像读取为标量图像?

读取.dcm文件itk