0

背景:我记得在我以前工作的地方,Web 服务器管理员总是让我更改 httpd 可访问的文件上传目录,以便它们归 apache:apache 或nobody:nobody 所有。

他说这是出于安全原因。

问题:您能告诉我这对安全的具体影响是什么吗?还有一种方法可以让 apache 以 none:nobody 的身份运行,这是否也存在安全隐患?

TIA

4

2 回答 2

2

有一个正当的理由,假设 httpd (Apache) 由 root 拥有并且也属于组 root,并且在代码本身中发现了一个漏洞,例如,恶意用户请求了一个更长的 URL超出预期并且httpd seg-faulted。现在,该漏洞利用已经发现了 root 访问权限,这意味着它可以控制系统,因此恶意用户最终会夺取控制权并对盒子造成严重破坏。

这就是为什么 httpd 守护进程的所有权在 nobody:nobody 或 apache:apache 下运行的原因。它是一种有效的预防措施,可确保没有漏洞利用/漏洞会暴露 root 访问权限。想象一下,如果发生这种情况会带来安全隐患。

幸运的是,现在,根据 Linux 发行版、BSD 变体 (OpenBSD/FreeBSD/NetBSD) 或商业 Unix 变体,httpd 守护程序在具有最低权限的用户组下运行。此外,可以肯定地说,许多 Apache 代码已经过充分测试且稳定。所有域中大约 49% 的服务器都在运行 Apache。Microsoft 的 IIS 在 29% 的域中运行。这是根据netcraft调查网站这里

在另一种情况下,它表明让程序在最低权限下运行将被认为是“安全的”,并减少了任何可能的漏洞利用机会。

于 2009-12-04T23:34:05.070 回答
1

这是此问题的错误站点。通常,您希望源代码由与 Apache 相同的用户拥有。如果 Apache 或您的服务器端脚本出现安全漏洞,攻击者可以恶意修改您网站的文件而无需提权。

正如您所说,一个例外是文件上传目录。在这种情况下,您希望 Apache 对该目录进行更改。

于 2009-12-04T23:21:28.417 回答