所以今天我和一位同事进行了讨论,当我准备将安全更新应用到我们的一台生产服务器时,他说了一些我认为很奇怪的事情。
“你永远不应该应用内核更新。”他的理由是,你不知道它是否会破坏任何链接的模块,这可能会导致应用程序的某些部分崩溃。如果你运行的任何东西都需要你构建自定义内核模块,我会相信这一点 - 但对于你的标准应用程序来说,这真的是一个问题吗?FWIW,有问题的盒子运行着一个 apache 网络服务器和一个数据库。
我认为定期应用安全更新对于防止漏洞是必要的,并且他指出的风险与在生产环境中拥有最新内核的好处相比是相当可观的。
答案1
这就是为什么您需要一个实验室、一个开发或准备或测试环境,它们在某种程度上类似于或代表您的生产环境。理想情况下,一些机器装载了相同的操作系统、补丁级别和应用程序……这样您就可以确信所有补丁都与您在生产中运行的软件兼容。
发布补丁是为了修复错误、安全问题、性能问题等。
除非你不想要修复这些问题...应用所有补丁。 后您已经在测试环境中运行它们,以确保它们是安全的。
PS 好玩的是:Linus 公开给某个家伙开了个新洞,因为一个内核补丁破坏了与用户模式应用程序的兼容性。显然,他的座右铭(也是常见的操作系统设计原则)是内核补丁应努力永不破坏外部接口。
答案2
实际上,我们最近正在更新内核。仅今天我们就对德克萨斯数据中心运行的 50 台虚拟机进行了内核更新。此内核更新非常重要,因为它与 Java 应用程序上的“闰秒”错误有关。我们的 Java 应用程序在 Redhat 6.2 上运行,如果引入闰秒(年中和年末),就会出现问题,应用程序会崩溃并完全无响应。因此,我们将在年中之前更新所有 Redhat/CentOS 6.2 主机,以避免再次出现此错误。内核更新由 Redhat Corporation 发布,是一个非常重要的更新。我们希望在年中引入闰秒之前完成此更新。
您首先在测试环境中测试内核更新,看看它是否会破坏任何东西。您不会随意在生产环境中运行任何更新。