Nginx + Passenger 多主机托管的安全最佳实践

Nginx + Passenger 多主机托管的安全最佳实践

我计划使用 nginx 和 Passenger 为基于机架的 ruby​​ 框架提供免费的多主机服务,以便为这些应用程序提供服务。我正在研究几个选项,我想就多主机环境中此类设置的最佳安全实践征求一些建议:

  • 我正在研究的第一个选项是基于 Web 的前端,它允许用户上传他们的应用程序。为了使其完全自动化,我可以构建一个解析器来检查 ruby​​/framework 代码是否不包含任何恶意命令,例如 %x( 和其他命令。我不确定是否真的可以涵盖所有可能性,但这应该可以通过以下事实来缓解:上传时,会创建一个 unix 用户(连同 nginx 子域),上传的应用程序将在用户目录中运行,并且该用户在其自己的目录之外没有特殊的服务器范围权限;

  • 第二种选择是允许 sftp 访问(或 sftp/ssh 访问),但实际上不授予目录之外的任何权限。在这种情况下,必须实施成员筛选(订阅表格),但可能会提供更大的灵活性。

根据您的经验,最合适的选择是什么?其次,对于使用 sftp 或甚至 sftp 和 ssh 访问的选项 2,哪种安全设置合适?请记住,nginx 需要对整个 /users/.... 树具有读取权限,因此它不能太严格。提前感谢您的建议!

答案1

你不会喜欢这个的。。共享主机已经没落了。现在真的没人用它了。

最好提供 VPS 服务,这样您就可以控制他们使用的图像。哦,等等。 亚马逊打败了你,其他公司也一样HerokuEngineYard

VPS 更本季流行共享主机已经不行了?

安全是重中之重。保护虚拟服务器比保护目录要容易得多。

还可以更轻松地限制用户分配的 CPU、RAM 和磁盘使用情况以及其 IO 带宽。

如果你真的想要将其作为共享服务器/多用户来做,那么第二个选项可能是最好的,虽然坦率地说,它们都有点糟糕。

不要给他们 SSH 访问权限。给他们Git访问,如 PHPFog 等。这限制他们只能上传文件。

您无法有效地解析/过滤他们上传的代码,因为您只能找到知道如何寻找的漏洞。新的漏洞会从您身边溜走,到那时就太晚了。

相关内容