我有一台旧的专用服务器,运行的是 Fedora Core 的旧版本。由于发行版年代久远,其存储库不再维护,因此服务器上的软件已经严重过时,我希望更新软件以避免安全风险。
由于这是面向公众的小型电子商务网站的唯一服务器,因此我试图将停机时间降到最低 - 如果是在访问量较低的时段,我可以忍受一两个小时,但我无法访问该机器的硬件,因此擦除它并安装新的发行版可能会导致在非紧急支持人员所在的高峰时段延长停机时间。
我可以通过哪些选项来使其保持最新状态?
到目前为止我已经看过的东西:
- 通过将 yum 指向较新的服务器来进行就地发行版升级。
- 设置短期 VPS,并在主服务器关闭时将网站上线作为临时主机,使用具有短 TTL 的 DNS 从一台服务器切换到另一台服务器。
第一种选择似乎很混乱,而且似乎总是失败。我喜欢第二种选择,因为它似乎是一种干净的方法,而且这意味着我可以放弃 Fedora 并转到 CentOS。但是,清理网站代码以使其可移植将是一项艰巨的工作。无论如何这都需要完成,并且将是我的长期解决方案,但这需要时间,在此期间主服务器很容易受到攻击。在有时间安排适当的切换之前,我可以在短期内做些什么来减轻对服务器的威胁?
答案1
首先我认为你需要访问你当前安装的 Linux 上的安全威胁,你可以找到它这里,也许它没有你想象的那么糟糕,但在你审核你的设置之前很难判断。 Fedora 的问题在于它非常前沿。从长远来看,转向 centOS 是一个非常好的主意。我建议在安装了 centOS 的地方设置一个 VM,然后尝试你的站点,看看到底是什么出了问题。很可能它没有你想象的那么糟糕(好吧,我似乎在这个答案中说了很多次。)。如果你可以让这个网站正常工作,请将 DNS 更改为指向新的 centOS 网站,然后更换镜像设置的服务器。
答案2
粗略计划
请先备份网站!
将您的 DNS 更改为短 TTL。
在新服务器上建立新网站,例如 www2.example.com
进行充分测试以确保您已做好转换的准备。
将您的 DNS 更改至新站点。
保留旧站点一段时间...以确保100%的安全。
注意:当我说“新网站”和“新服务器”时,我真正指的是与主服务器分开的独立实例。虚拟机、不同的机器、不同的发行版,只要适合您即可。我们的想法是构建您的新网站,使其保持最新、修补、安全,然后切换到它。我并不喜欢在网络上保留“不安全/无用”的东西。
答案3
对于这两种选择,我推荐第二种选择,或者将两者混合使用:使用 VPS 来保存和运行网站,同时升级主机。
升级那么旧的发行版可能意味着要升级几个版本(因为直接升级该版本和最新版本可能不受支持),因此,除了让您拥有一个干净的系统之外,从头开始使用最新的发行版进行重建可能比升级选项更快、更容易。
无论你走哪条路,一定要满的原始机器的备份,即使您认为一切都已顺利传输到 VPS,以防您错过了一些现在没有注意到的设置/脚本/数据,但会在几周后发现您需要它们,并且您希望保留第二份副本。
除了使用短 TTL 进行 DNS 设置外,我还建议运行转发器(rinetd 适用于大多数 TCP 协议,例如 HTTP(S),这可能是您所需要的,您还需要一些更聪明的东西,例如完整的 NAT 或 VPN 安排来处理其他类型的流量)从旧机器到 VPS 一段时间以覆盖 DNS 传播时间,当移回主服务器时,对 VPS 也这样做。这意味着即使有些 ISP 的 DNS 缓存配置不当,不遵守短 TTL(根据我的经验,确实有),您仍然不会失去这些访问者。这确实意味着让两台机器并排运行更长时间(我建议至少为两个交换机多运行一天),但如果您的网站正在赚钱,这是值得的。
答案4
我认为您能做的最好的事情就是对现有的服务器进行一些基本的强化,直到您可以提供替代品。禁用应用程序不需要的任何网络可访问服务,假设您正在使用 apache 禁用您不使用的模块,也许可以阅读 CIS 安全指南之类的文档。您说这是一个购物车网站,这可能意味着 apache/mod_ssl 是唯一的网络可访问服务(和 ssh,但可以限制为仅从您进行管理的地方允许)。我会查看上次更新后为 apache 和 openssl 发布的安全性漏洞,筛选出不适用于您的配置的漏洞,并尝试缓解适用于您的配置的漏洞。这只会让您的购物车软件成为问题的根源,理想情况下,它的依赖关系不会特别特定于操作系统,因此您可以独立于将整个软件移动到更受支持的操作系统来更新它。
这些都不能保证您不会遇到麻烦,或者您还没有遇到过您还不知道的麻烦,但这可能是您利用现有工具所能做的最好的事情了。