Apache用于多用户开发Web服务器的安全性

我一整个早上都在search和阅读文档,并且明白我需要使用chown和“jailing”的组合来安全地让程序员访问我的centos web服务器上的目录。

这里的情况:我有一个Apache Web服务器,有任何数量的虚拟网站位于/ var / www / site1 / var / www / site2等..

我有不同的开发人员需要完全访问ssh和vsFTP只有他们正在工作的网站。 在这种情况下创build和维护安全性的最佳方法是什么? 我的想法是为每个编码器创build一个新用户,监视用户访问他们的网站目录,将他们的用户添加到一个组,并将webroot的所有者设置为该组。

有什么想法吗? 好,坏,丑? 谢谢!

要开始,尽快删除vsFTP。 通过纯文本在互联网上扔源代码和密码是一个非常糟糕的主意。 FTP 只能用于匿名文件传输,应该使用sftp或者ftp + ssl并且删除冗余。 拥有2个守护进程会使你两倍易受攻击,尽可能考虑减less攻击面。

传统的Chroot监狱虽然可以完成工作,但可能是过度的。 有两个威胁你必须担心。 首先是用户可以使用ssh下载/修改代码。 这可以通过在你的sshdconfiguration文件中使用ChrootDirectoryconfiguration来防御:

ChrootDirectory指定chroot(2)到authentication之后的path。 此path及其所有组件必须是不能由任何其他用户或组写入的根拥有的目录。 在chroot之后,sshd(8)将工作目录更改为用户的主目录。

下一个威胁是程序员可能会上传恶意代码,例如PHP后门以访问您的系统。 这是非常隐蔽的,因为后门可以像添加2个字符或删除2个字符一样简单。

对于恶意内部人员的威胁最安全的方法是使用svn + ssh,强制每个程序员在本地系统上进行开发,然后查看所有提交的代码。 SVN将跟踪谁已经添加了什么代码到您的系统。 在您testing了漏洞代码之后,有意或无意地使用ether,然后在您的活动服务器上部署“release”版本。 在现场服务器上进行开发是一个坏主意,因为它会导致在开发过程中意外停机。

而不是chroot,apache的suexec模块是防止滥用的好select。

否则,我会第二个“未知”的评论。