我想为Debian服务器上的less量不受信任的PHP网站设置安全的环境。 现在所有的东西都运行在同一个Apache2上,mod_php5和vsftpd用于pipe理文件访问,所以还有改进的空间。
这个想法是使用nginx而不是apache,SFTP通过OpenSSH而不是vsftpd和chroot(在sshd_config中),每个网站的个人用户拥有自己的PHP进程池。 所有这些用户和nginx都是同一个组的一部分。
现在理论上我可以在所有PHP脚本上设置700个权限,而在Nginx必须提供的静态文件上设置750个权限。 从理论上讲,如果一个网站遭到破坏,所有其他用户的数据都是安全的,对吗?
是否有更好的解决scheme,每个网站需要更less的设置时间和内存?
干杯
使用php-fpmconfiguration中的chroot指令,应该保证足够的安全性; 那么允许用户只留在chrooted ftp(或scp)内,对于正确的Apacheconfiguration就足够了(不要让符号链接愚弄他!:P)。
然后,把所有的chroot都足够了:你甚至不需要在这些文件上设置权限,因为它们不能从另一个chroot环境读取。 🙂
其他的解决scheme,使您避免消耗内存是可能的…只是使用caching与清漆或类似的东西(我知道这不会很容易configuration不信任的用户顺便说一句)。
考虑到您对nginx的期望待办configuration,我刚刚遇到了一个很棒的bash脚本,专门用于Debian和Ubuntu,它可以自动执行大多数需要执行的任务,以便实现类似的设置场景你描述。
bash脚本自动在nginx上创build新的虚拟主机(服务器块),并允许您运行多个PHP池。 PHP-FPM处理从主服务器产生的所有池,并使每个池作为不同的用户和/或组运行。 通过在chroot环境中运行,并通过覆盖每个池的默认php.ini值,可以进一步隔离每个池。
在开发人员的网站上查看:
脚本还做了什么:
我希望它能帮助您优化您的设置时间。