新工作,地方小,安全的东西刚刚落在我的桌子上。我被聘为前端开发人员。很高兴学习新东西,但以前从未做过系统管理员的事情。
我开始挖掘,发现 apache、站点和所有东西都在 root 上运行。没有其他组或用户。确认!
我应该采取什么措施来改变这种情况?我知道这是一个很大的禁忌...
如果有人可以的话,请给我指点一个关于 apache/php 安全性的良好基础 101 教程,加分。
答案1
发现 Apacheroot
在任何库存配置中运行都是不寻常的。您如何确定 Apache 正在以 root 身份运行?请注意,Apache 必须启动作为 root 以便绑定到特权端口,但通常会在稍后放弃其特权。
您可以在 Apache 配置中(通常在/etc/httpd
或中/etc/apache2
,具体取决于您的发行版)查找User
和Group
指令(记录在案)这里)。这两个指令控制 Apache 在什么用户 ID 下运行。
找到一个“没有其他组或用户”的系统也是不寻常的。做什么getent passwd
和getent group
展示什么?在那儿真的root
除了?之外没有其他用户或组大多数发行版都附带一个apache
或www-data
用户或类似的配置,以及将作为该用户运行 Apache 的匹配配置。
有各种有关 Apache 配置和安全性的介绍性指南。简单的谷歌搜索就会产生许多可能的结果。红帽/CentOS部署指南是一个很好的起点(如果您使用的是 RedHat/CentOS 系统)。
答案2
您可以以端口号大于特权端口号 1024+ 的任何用户身份运行 Apache。然后使用端口转发将流量从端口 80 和 443 转发到您的特定端口。