我有一些生产Fedora和Debiannetworking服务器,它们托pipe我们的网站以及用户shell账户(用于git vcs工作,一些屏幕+ irssi会话等)。
偶尔会有一个新的内核更新在yum
/ apt-get
的pipe道中出现,我想知道大多数修复是否足够严重以保证重新启动,或者如果我可以应用修复程序sans reboot。
我们的主要开发服务器目前有213天的正常运行时间,我不确定是否运行这样一个更老的内核是不安全的。
长时间的运行没有什么特别的。 拥有一个安全的系统通常会更好。 所有系统都需要更新。 您可能已经在应用更新,当您应用这些更新时,您是否计划停机? 你可能应该以防万一出现问题。 重启应该不是那么多时间了。
如果您的系统对中断非常敏感,那么您可能应该考虑进行某种集群设置,以便更新集群的单个成员,而不必closures所有设备。
如果您不确定特定的更新,安排重新启动并应用它可能会更安全(最好在另一个类似的系统上testing之后)。
如果您有兴趣了解更新是否重要,请花时间阅读安全通知,然后按照链接返回到CVE或描述该问题的post/列表/博客。 这应该有助于您决定更新是否直接适用于您的情况。
即使你不认为它适用,你仍然应该考虑最终更新你的系统。 安全性是一种分层的方法。 你应该在某个时间点假设其他层可能会失败。 而且,您可能会忘记自己有一个易受攻击的系统,因为在稍后的某个时间点更改configuration时会跳过更新。
无论如何,如果你想忽略或等待一段时间在基于Debian的系统上更新,你可以把包暂停。 我个人喜欢把所有的内核包保存以防万一。
CLI方法在基于Debian的系统上设置一个包。
dpkg --get-selections | grep 'linux-image' | sed -e 's/install/hold/' | sudo dpkg --set-selections
大多数更新不需要重新启动,但内核更新(你不能真正replace正在运行的内核,而无需重新启动)。
我发现的一件事是,如果你的服务器已经运行了很长时间而没有重新启动,那么当你重新启动的时候,它更可能要做磁盘检查(fsck),这可能会大大增加返回的时间再次运行。 最好预测这一点,并计划。
我还发现configuration更改有时可能会丢失,直到重新启动(比如添加新的IP地址/ iptables规则等)才会被注意到,这也增加了很less重新启动时的“宕机风险”。
最好在重启时计划一些停机时间,或者如果这不是一个理想的select,请将服务器设置为集群,以便在必要时重新启动。
如果您只是需要安全更新而不是全新的内核,那么您可能对Ksplice感兴趣 – 它允许您将某些内核更新修补到正在运行的内核中。
有没有简单的答案,一些内核升级不是真正的安全相关的,有些可能会解决不影响你的安全问题,而其他人可能会影响你。
最好的办法是注册相关的安全邮件列表,比如说ubuntu的security-announce,这样你就可以看到安全补丁何时出现,以及它们如何影响你。
我也会考虑apticron或类似的获取任何其他包更新的细节和更新日志。
这是更新的function – 如果它修复了一个priv。 升级导致根访问,那么你可能想要应用它。
如果您不重新启动,则应确保新内核不是引导时启动的默认内核。
你想要的最后一件事是在未计划的重新启动之后使用未经testing的内核进行生产。
如上所述,如果你安装了内核并且不重启,确保它不是默认的。 你不知道你的服务器会返回到什么状态,所以确保它已经过testing。
话虽如此,我认为在可能的情况下,习惯性地重新启动机器是很好的习惯。 许多硬件和软件故障只会在重新启动时出现,最好在计划重新启动时找出那些故障,而不是在计划外停机期间。
请注意,一些debian内核更新需要(以及强烈推荐),你应用后尽快重新启动。
当差异不足以保证模块目录改变时,情况就是如此,但模块可能不同。
当你安装这样的内核软件包时,你会被Debian警告。