我成功使用了本教程:http://techbot.me/2010/08/deployment-recipes-deploying-monitoring-and-securing-your-rails-application-to-a-clean-ubuntu-10-04-install-using-nginx-and-unicorn/用于我们的 ruby on rails 服务器。
但我想知道这个安装是否安全。令我困扰的是,同一个用户“deployer”(一个 sudoer)正在运行该应用程序。
这是否意味着通过某种形式的代码注入,攻击者可以完全访问系统(与常见的 Apache 安装相反,在 Apache 安装中,Apache 进程以 www-data 的形式运行)?
答案1
一般来说,让deployer
用户登录sudoers
并不一定意味着攻击者自动成为 root;攻击者仍然需要运行sudo
以从帐户升级deployer
。
要求输入密码才能deployer
运行会更安全。如果将可以运行的命令限制为实际需要的命令而不是“所有命令”,sudo
则会更加安全,例如,如果只有权限才能重新加载 nginx,则可以将其从“staff”组中删除,然后添加一行如下:deployer
sudo
deployer
sudo
/etc/sudoers
deployer ALL=(ALL) /etc/init.d/nginx reload
请参阅sudo
文档以了解更多详细信息。
顺便说一句,你正在看的文档看起来更像是一份基本的部署指南,而不是“保护你的网站”指南。例如,看看这个RubyConf谈论一些更具体的安全问题。