我正在考虑将 Rails 应用程序从共享托管提供商移动到专用服务器或 Linode、SliceHost、Webbynode 等服务,如果我理解正确的话,服务器的安全性完全取决于您。
我习惯使用共享主机不是具有根访问权限,因此防火墙和大多数其他安全问题往往由托管公司处理。
所以我关心的是将服务器转移到由我(一名服务器管理员新手)负责安全保护的服务器。我希望有一位专家服务器管理员来处理这件事,但这是不可能的。
有人知道像 SliceHost 或 Webbynode 这样价格实惠的服务吗?这些服务的安全由提供商管理。我看过 Heroku,但由于 SSL 完整证书要求,目前我负担不起。
或者,是否有人知道是否可以在 Linode/SliceHost/Webbynode/other 上使用服务器映像,以保证安全性或简化安全性?
(我想我最担心的是,我是一名网络应用程序开发人员,我认为他最终会花更多的时间来保护服务器而不是编写代码。也许我是在杞人忧天。)
答案1
这些事情需要有人来处理。要么你自己处理,要么你花钱请人来处理。到目前为止,你一直在花钱请托管公司来处理这些事情(通过共享托管计划的费用)。不过,你需要考虑的不仅仅是安全性;一个好的系统管理员会为你做很多事情,从监控、安装和配置新软件到解决各种问题,以及主动应对中断。
我不知道“负担得起”对你意味着什么,所以我无法就将管理纳入其产品的托管公司提供任何具体建议。很少提供全面管理的托管公司,以及一些声称提供但实际上没有提供的公司。(我写了一份清单,列出了作为关于选择托管公司的更多答案这应该有助于从说者中筛选出实干者。我工作的公司就是这么做的(我觉得做得还不错),但如果 Heroku 不在你的预算之内,我怀疑我们也不在你的预算之内。
至于寻找“安全性更简单”的 VM 映像,这根本不存在(除了最简单的情况,即使用无法启动的映像——这些映像往往相当安全)。计算机安全不像螺栓式扰流板,它是一个持续的过程,分析您不断变化的需求,进行必要的配置调整,有时说“不,你不能这样做,你会被攻击”并为您的问题制定其他解决方案。没有 VM 映像可以为您做到这一点;需要有人用大脑和手指持续照顾它。
答案2
需要担心的两个最重要的方面是 SSH 安全性和防火墙。我建议您禁用 root 登录,创建第二个用户,使用 sudo 并使用公钥身份验证。脚本小子经常尝试暴力破解登录。Fail2ban 可以帮助解决这个问题(检测暴力破解并添加防火墙规则以禁止 IP)
对于防火墙,你可以使用一个非常容易配置的 iptables 前端,称为火神。Firehol 允许您编写如下规则:
interface eth0
server http accept
不管怎样,你需要谨慎行事。只允许必要的端口(例如,你可能只需要端口 80、443 和 22)。不要忘记应用程序级安全性。