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


8

工作上的新事物,狭小空间以及安全性物品刚落在我的桌子上。我被聘为前端开发人员。很高兴学习新事物,但之前从未做过sysadmin的工作。

我开始进行挖掘,看来apache,网站和所有内容都在root上运行。没有其他群组或用户。ACK!

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

奖励积分,如果有人可以请给我指向关于apache / php安全性的一个很好的基础101教程。

Answers:


13

root在任何常规配置中都能正常运行Apache是​​不寻常的。您如何确定Apache以root身份运行?请注意,Apache必须以root用户身份启动才能绑定到特权端口,但是通常稍后会放弃其特权。

您可以在Apache配置(通常在/etc/httpd或中/etc/apache2,具体取决于您的分布)中查找Userand Group指令(在此处记录)。这两个指令控制Apache运行的用户ID。

找到“没有其他组或用户”的系统也是很不寻常的。什么getent passwdgetent group表现?有没有真的没有其他用户或组比其他root?大多数发行版附带一个apachewww-data用户或someso以及匹配的配置,该配置将以该用户身份运行Apache。

有许多关于Apache配置和安全性的入门指南。一个简单的Google搜索会产生许多看起来可能的结果。《 RedHat / CentOS 部署指南》是一个不错的起点(如果您使用的是RedHat / CentOS系统)。


谢谢,是的,它不是从root运行的,但是似乎其他所有操作都是使用root完成的。所有文件夹,文件等。我需要弄清楚如何更改它。
r00tAcc3ss 2012年

好吧...不一定。您不希望文件与正在运行的Apache进程由同一用户拥有。理想情况下,Web服务器中的威胁不会导致攻击者能够修改您的Apache配置或Web内容。
larsks 2012年

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.