如何在Amazon Linux AMI EC2实例上安装安全更新?

39

我在登录时看到以下提示:

   __|  __|_  )
   _|  (     /   Amazon Linux AMI
  ___|\___|___|

  See /usr/share/doc/system-release/ for latest release notes.
  There are 30 security update(s) out of 39 total update(s) available

如何在我的计算机上安装这些更新?

3个回答

70
Amazon Linux AMI基础操作指南中的安全更新部分所述,Amazon Linux AMI已配置为在启动时下载并安装安全更新, 即使有些安全更新可能在启动时仍然可用。您可以简单地使用最新更新的Amazon Linux AMI重新启动新实例来代替旧实例(详见产品生命周期部分),但这只包括关键或重要的安全更新。如AWS团队对Amazon Linux镜像安全更新最佳实践的响应所示。
因此,如果您想安装所有安全更新或确实需要保存运行中的Amazon Linux AMI实例上的数据或自定义信息,则必须通过Amazon Linux AMI yum存储库维护这些实例。具体来说,您需要使用Yum更新机制进行操作,如yum-security插件所述。
# yum update --security

18
使用 yum 几年后,甚至多次查看 man yum 后,我才注意到 --security 标志。+1! - Jordan Reiter
如果你正在运行Ubuntu AMI,你该怎么做? - Greg
1
@Greg Ubuntu使用unattended-upgrades来管理自动安全更新。(注意运行它的命令是update单数形式,而软件包名称是复数形式) sudo apt-get install unattended-upgrades sudo unattended-upgrade - jorfus

28
请注意:如果仅选择安全更新,则此方法不起作用,因为CentOS和Amazon Linux中的安全更新未正确标记。这可能是Redhat将安全性作为付费功能的原因,说实话,这很荒谬。 要使此方法起作用,您必须更新yum-cron配置文件以安装所有更新。这会降低安全更新的可靠性,从而使每个人都更加不安全。
update_cmd = default

当Amazon Linux主机首次启动时,会运行更新。如果您计划长期使用主机,您可能还希望启用自动安全更新。我建议使用yum-cron:

sudo yum install yum-cron

配置文件在这里:(您可能只想运行安全更新)
/etc/yum/yum-cron.conf

您可以这样启用yum-cron:
sudo service yum-cron start

以下是一条有用的评论,经过编辑后提供给你:

如果您正在使用自动扩展组创建/销毁实例等操作,那么在用户数据中应该使用类似以下命令:"sudo yum update -y"。


8
不要忘记使用这个命令在系统启动时运行 chkconfig yum-cron on - shlgug
这真的能行吗?我试图将其添加到用户数据中,但是提供失败了。我认为它在yum -y update步骤失败了。 - Mrinal Saurabh
1
yum-cron不适用于用户数据 - 它适用于长时间运行的实例。如果您正在使用自动缩放组创建/销毁实例等操作,则用户数据中的命令应该类似于“sudo yum update --security -y”。 - lonstar
12
亚马逊Linux 2已经切换到systemd,因此命令现在是systemctl enable yum-cron。该命令的意思不变,只是提示系统管理员在亚马逊Linux 2上启用yum-cron服务的方法已经更新为了systemd命令。 - Dan Pritts
不要忘记执行 systemctl start yum-cron.service - user18275887
请注意,如果您使用yum-cron仅安装安全更新,则根本不会运行任何更新。 - jorfus

5

上面的答案是正确的,这里有4个命令可以复制并粘贴来运行:

# Install the package yum-cron
sudo yum install yum-cron -y
# Change the config file /etc/yum/yum-cron.conf and modify the line apply_updates from no to yes
sudo sed -i "s/apply_updates = no/apply_updates = yes/" /etc/yum/yum-cron.conf
# Enable the yum-cron service to start automatically upon system boot
sudo systemctl enable yum-cron
# Start the yum-cron service now
sudo systemctl start yum-cron

这些命令也适用于Red Hat 7和CentOS 7。
如果您是以root用户身份运行,可以直接运行这些命令,无需sudo:
yum install yum-cron -y
sed -i "s/apply_updates = no/apply_updates = yes/" /etc/yum/yum-cron.conf
systemctl enable yum-cron
systemctl start yum-cron

了解更多信息,请查看https://linuxize.com/post/configure-automatic-updates-with-yum-cron-on-centos-7/https://www.howtoforge.com/tutorial/how-to-setup-automatic-security-updates-on-centos-7/


启用可以避免您在每次重新启动时都需要执行此操作。 - serv-inc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接