我为什么要部署为另一个站点(部署)用户?

时间:2010-06-05 13:53:40

标签: ruby-on-rails deployment

将您的网站部署为特殊的“部署”用户有什么好处? 我应该将我的主域名和子域名作为单个用户运行吗?

1 个答案:

答案 0 :(得分:4)

网站本身就容易受到攻击和诈骗者的攻击。它们是外部世界与其部署的数据或系统上的物理操作之间的网关。在部署任务关键型系统时,保护他们的安全并减少黑客可能造成的潜在损害应始终处于您的头脑中。

话虽如此,这里有一些推荐的部署技巧:

  • 始终在自己的权限空间中对您的Web应用程序进行沙盒处理。在大多数操作系统中,这意味着为他们提供他们自己的非特权用户帐户,该帐户几乎只知道驻留在其目录空间中的Web应用程序。在整个操作系统中向该用户授予权限时,请采用“拒绝所有优先,允许一些”的方法 影响:在系统上对您的应用程序执行特殊操作可能更困难,并且可能需要您花费一些时间和金钱到自动配置系统(如Puppet或Chef),这样您就不需要记住这些设置是什么每一次。但主要的好处是,如果您的应用程序遭到入侵,攻击者最有可能只能访问该用户的帐户,因此无权进行大量破坏。沙盒在多域或多应用程序环境中尤其重要。如果您在Linux上运行,您可能需要查看SELinux。

  • 部署策略可能有所不同。我发现的最好方法是在远程主机上创建一个sudo特权帐户以通过(mr_deployer)进行部署。这样,您的部署服务器可以使用sudo功能根据您的需要配置系统,但Web应用程序在启动时将作为您为其创建的低级用户(mr_app)运行。您可以在启动之前立即将应用程序文件的权限更改为my_app所拥有的权限。 影响:没有网络应用程序需要sudo功能。这是一个很大的安全漏洞。你不是美国宇航局。你没有时间或专业知识使它变得万无一失。甚至NASA有时也是错的。

  • 始终禁用主机上的root SSH登录功能。除非有一个很好的理由(即使那时......),你也不应该以root用户身份登录并部署应用程序 影响:如果你可以SSH,其他人可以。部署为不同用户的好处是黑客更难以猜测用户名:“root”或“管理员”用户都在每个系统上。

  • 请记住:如果黑客入侵用户的应用程序,用户可能会受到攻击。减少一个用户可以做的伤害:这是许多系统管理员的座右铭。

祝你好运! - 哈蒙