如何阻止 Apache 以 root 身份运行?

如何阻止 Apache 以 root 身份运行?

新工作,地方小,安全的东西刚刚落在我的桌子上。我被聘为前端开发人员。很高兴学习新东西,但以前从未做过系统管理员的事情。

我开始挖掘,发现 apache、站点和所有东西都在 root 上运行。没有其他组或用户。确认!

我应该采取什么措施来改变这种情况?我知道这是一个很大的禁忌...

如果有人可以的话,请给我指点一个关于 apache/php 安全性的良好基础 101 教程,加分。

答案1

发现 Apacheroot在任何库存配置中运行都是不寻常的。您如何确定 Apache 正在以 root 身份运行?请注意,Apache 必须启动作为 root 以便绑定到特权端口,但通常会在稍后放弃其特权。

您可以在 Apache 配置中(通常在/etc/httpd或中/etc/apache2,具体取决于您的发行版)查找UserGroup指令(记录在案)这里)。这两个指令控制 Apache 在什么用户 ID 下运行。

找到一个“没有其他组或用户”的系统也是不寻常的。做什么getent passwdgetent group展示什么?在那儿真的root除了?之外没有其他用户或组大多数发行版都附带一个apachewww-data用户或类似的配置,以及将作为该用户运行 Apache 的匹配配置。

有各种有关 Apache 配置和安全性的介绍性指南。简单的谷歌搜索就会产生许多可能的结果。红帽/CentOS部署指南是一个很好的起点(如果您使用的是 RedHat/CentOS 系统)。

答案2

您可以以端口号大于特权端口号 1024+ 的任何用户身份运行 Apache。然后使用端口转发将流量从端口 80 和 443 转发到您的特定端口。

相关内容