我正在考虑yum -qy update
在一些没有得到定期维护的机器上添加一个定期运行的 cronjob。目标是使机器在安全补丁方面保持最新状态,否则这些补丁会应用得太晚。我只使用 CentOS 基础储存库。
问题:
- 根据您的经验 - 这种方法有多“安全”?我应该期待偶尔更新失败吗?这种方法大约多久需要重新启动一次?
- 这种方法的优点/缺点或其他问题?
- 您如何使用自动化使您的机器保持最新状态?
我正在考虑yum -qy update
在一些没有得到定期维护的机器上添加一个定期运行的 cronjob。目标是使机器在安全补丁方面保持最新状态,否则这些补丁会应用得太晚。我只使用 CentOS 基础储存库。
问题:
这取决于
根据我使用 CentOS 的经验,它非常安全,因为您只使用 CentOS 基础存储库。
您是否应该期待偶尔更新失败......是的......在同一级别上,您应该期待偶尔出现故障的硬盘驱动器或出现故障的 CPU。你永远不会有太多的备份。:-)
自动更新的好处是你得到补丁(因此更安全)比手动更新更快。
手动补丁似乎总是被推迟或被视为“低优先级”,所以如果你要进入手动模式,请在你的日历上安排时间来做。
我已经配置了许多机器来执行自动 yum udpates(通过 cron 作业)并且很少遇到问题。事实上,我不记得 BASE 存储库有过问题。我能想到的每一个问题(根据我的经验,在我的脑海中)一直是第 3 方的情况。
话虽这么说...我确实有几台机器可以手动进行更新。诸如数据库服务器和其他极其关键的系统之类的东西,我喜欢采用“动手”的方法。
我个人认为它的方式是这样的......我想到“假设”场景,然后尝试考虑重建或从备份恢复需要多长时间以及会丢失什么(如果有的话) .
在多个 Web 服务器的情况下......或者内容变化不大的服务器......我继续进行自动更新,因为重建/恢复的时间最少。
在关键数据库服务器等的情况下......我每周安排一次时间来查看它们并手动修补它们......因为重建/恢复所花费的时间更耗时。
根据您在网络中拥有的服务器以及备份/恢复计划的实施方式,您的决定可能会有所不同。
希望这可以帮助。
优点:您的服务器始终处于最新的补丁级别,通常甚至针对 0-day 漏洞。
缺点:在您的服务器上运行的任何代码使用在更高版本中删除的功能、任何更改语法的配置文件以及任何阻止执行可被利用的代码的新安全“功能”都可能导致在没有您的情况下在该服务器上运行的东西中断知道它,直到有人打电话给你有问题。
最佳实践:让服务器在需要更新时向您发送电子邮件。备份或知道如何回滚更新。
除了这里大多数人所说的之外,我强烈建议您注册 centos 邮件列表,他们总是在将补丁推送到存储库之前发布有关补丁及其优先级的电子邮件。提前知道哪些软件包需要升级是很有用的。
我的设置是允许 yum 每天自动更新一次系统,我让 yum 给我发一封邮件,其中包含安装或升级的软件包。当 yum 发生冲突并需要人工干预(每 4 小时一次)时,我也会收到邮件。
到目前为止,一切都运行顺利(4年多),唯一一次让我措手不及的是当 yum 升级常规内核(我虚拟化了我的服务器)并更改了 grub 并将常规内核作为默认值推送时,2 周后来在维护期间,我的系统重新启动,我所有的虚拟服务器都消失了几分钟,直到我不得不手动干预。
除此之外,我真的没有任何问题。
只要您没有任何自定义软件包,并且仅使用 CentOS 的 Base 存储库,它应该是相当安全的。
此外,实现此目的的更好方法是将yum-updatesd与
do_update = yes
set 一起使用。我想只要你有自动备份就不会太担心,只要你能忍受服务器的停机时间。
我没试过这个;我个人不想这样做,因为由于上游修复存在破坏某些东西或引入不寻常的晦涩问题的重大风险。如果这是一个很少引起注意的服务器,那就更糟了,所以如果出现问题,您可能不知道它。
如果您可以忍受有问题的服务器在出现问题时停机一段时间,并且您有一个将系统恢复到以前状态的响应计划以及一个通过日志或电子邮件向您发送更新的系统报告更新的时间和内容(因此您知道它没有处于卡住状态或等待对需要干预的内容的回复)然后您可以尝试一下。如果它是关键服务器或重要的东西......我不想冒险。
我的服务器不是你的 :-)