我有一个旧的专用服务器运行一个过时的Fedora Core版本。 由于发行年代的原因,其存储库已不再维护,服务器上的软件已经过时了,为了避免安全风险,我想把事情做好。
由于这是面向小公众的电子商务网站的唯一服务器,因此我试图尽量减less停机时间 – 如果在低访问期间,我可以容忍一两个小时的停机时间,但是我没有硬件访问机器,因此擦拭它并安装新的发行版可能会导致在非紧急支持人员处于高峰期间的停机时间延长。
我在这里select什么来更新它?
目前为止我看过的东西:
第一个选项似乎是混乱的,就像是一个等待发生的失败。 我喜欢第二个选项的声音,它似乎是一个干净的方式来做到这一点,再加上这意味着我可以沟渠Fedora和CentOS。 但是,清理站点代码以使其具有便携性将是很多工作。 这个需求无论如何也将是我的长期解决scheme,但这需要时间,在此期间主服务器是脆弱的。 有什么我可以做的在短期内减轻服务器的威胁,直到我有时间安排适当的切换?
首先,我认为你需要访问目前的Linux安装上的安全威胁,你可以发现,在这里 ,也许它不像你想象的那么糟糕,但是直到你已经审计你的设置,这很难衡量。 与Fedora的问题是它是非常stream血的边缘。 从长远来看,转向centOS是一个非常好的主意。 我会build议安装一个centos安装一个虚拟机,并尝试您的网站,看看究竟是什么破坏。 这很可能不会像你想象的那么糟糕(好吧,我似乎在说这个答案很多..)。 如果你能得到这个网站的工作改变DNS指向新的centOS站点,然后replace镜像设置的服务器。
粗糙的计划
先备份网站!
将您的DNS更改为短TTL。
在www2.example.com之类的服务器上构build新的服务器上的新网站
testing它,以确保你已经准备好转换。
将您的DNS更改为新网站。
保持旧网站的一段时间…只是为了100%的安全。
注意:当我说“新站点”和“新服务器”时,我真正的意思是与主站点分开的一个单独的实例。 虚拟机,不同的机器,不同的发行版,无论你为什么工作。 这个想法是build立你的新网站,使其更新,修补,安全,然后切换到它。 我不是在networking上保持“不安全/自重”的忠实粉丝。
在这两个我会推荐第二个选项,或两者的组合:使用VPS来保持和运行网站,而升级主机。
升级发行版可能意味着通过几个版本进行升级(作为该版本与最新版本之间的直接升级可能不是受支持的操作),以及为您留下一个漂亮的清洁系统从而再次启动从头开始重新构build最新的发行版实际上可能比升级选项更快,更容易。
即使你认为所有的东西都已经转移到VPS,以防万一你错过了一些你现在没有注意到的设置/脚本/数据,但是你还是要去做一个完整的备份,会发现你需要几个星期的时间,你希望你保留第二个副本。
除了使用短TTL进行DNS设置之外,我还build议运行转发器(rinetd可以用于大多数TCP协议,例如HTTP(S),这可能是您所需要的,您将需要像完整的NAT或VPN那样更聪明的东西安排处理其他types的stream量也是)形成旧机器到VPS一段时间来覆盖DNS传播时间,而在回到主服务器时VPS也是如此。 这意味着,即使有ISPs在那里configuration不严重的DNScaching不尊重短TTL(并在我的经验),你仍然不会失去这些访问者。 这确实意味着让两台机器彼此长时间运行(我build议两台交换机至less要多一天),但是如果您的网站正在赚钱,这是值得的。
我认为你可以在这里做的最好的是你有一个基本的服务器硬化,直到你可以提供替代。 禁用任何networking可访问的服务,这些服务对于你的应用程序来说是不需要的,假设你正在使用apache禁用的模块,而不是你正在使用的模块,或者像CIS安全指南那样通过doc。 你说这是一个购物车的网站,这可能意味着apache / mod_ssl是唯一的networking访问服务(和SSH,但可以被限制只允许从任何地方进行pipe理)。 我会看看从上次更新的Apache和openssl发布的安全漏洞,通过那些不适用于您的configuration的漏洞,并试图减轻这些漏洞。 这只会让您的购物车软件成为问题的根源,理想情况下,它的依赖性不会严重影响操作系统,因此您可以独立更新,而不必将整个系统移到更支持的操作系统。
这些都不能保证你不会popup,或者你还没有遇到麻烦,但是你可以用你所拥有的工具来做最好的事情。