dnf-automatic - 在 CentOS 8 中自动安装安全更新
保持软件最新对于维护系统安全性和可靠性至关重要。对于暴露于互联网的服务器和其他生产系统尤其如此,因为它们经常成为恶意行为者的目标,这些恶意行为者试图利用过时软件中的漏洞。
对于 CentOS 8 和其他基于 RPM 的发行版的用户,dnf 包管理器提供了一个强大的工具来管理软件包并使其保持最新。但是,手动检查和安装更新可能是一个耗时且容易出错的过程,尤其是在安装了大量软件包的系统上。
幸运的是,dnf-automatic 提供了一个简单且自动化的解决方案来解决此问题。通过配置 dnf-automatic 自动检查和安装更新,您可以确保您的系统始终使用最新的安全补丁,而无需手动安装更新。
在这篇博文中,我们将探讨如何在 CentOS 8 上安装和配置 dnf-automatic 以自动安装系统上的安全更新。我们还将了解如何检查 dnf-automatic 日志,以及如何在需要时测试、调度和禁用它。
什么是 dnf-automatic?
dnf-automatic 是 DNF 包管理器(CentOS 8 中的默认包管理器)附带的一个工具。它旨在自动安装系统上的更新,包括安全更新。默认情况下,dnf-automatic 配置为每天安装更新,但您可以根据需要自定义其行为。
安装 dnf-automatic
要在您的 CentOS 8 系统上安装 dnf-automatic,您可以使用以下命令:
sudo dnf install dnf-automatic
这将安装 dnf-automatic 包及其依赖项。
配置 dnf-automatic
安装 dnf-automatic 后,您需要将其配置为自动安装系统上的安全更新。为此,您需要编辑 /etc/dnf/automatic.conf 文件。此文件包含 dnf-automatic 的配置设置。
使用您选择的文本编辑器打开文件:
sudo nano /etc/dnf/automatic.conf
在文件中,您可以自定义许多配置设置以满足您的需求。目前,我们将重点关注控制安全更新自动安装的设置。
找到 `upgrade_type` 设置并将它的值更改为 `security`。这将告诉 dnf-automatic 只安装安全更新:
upgrade_type = security
接下来,找到 `apply_updates` 设置并将它的值更改为 `yes`。这将启用 dnf-automatic 自动安装安全更新:
apply_updates = yes
最后,找到 `emit_via` 设置并将它的值更改为 `stdio`。这将确保 dnf-automatic 的任何输出都发送到标准输出(即控制台),而不是记录到文件中:
emit_via = stdio
保存并关闭文件。
测试 dnf-automatic
要测试 dnf-automatic 是否按预期工作,您可以手动触发更新检查并安装任何安全更新,方法是运行:
sudo dnf-automatic
如果有任何安全更新可用,dnf-automatic 将自动下载并安装它们。
调度 dnf-automatic
默认情况下,dnf-automatic 配置为每天检查更新并安装任何可用的更新。但是,您可以通过修改 /etc/dnf/automatic.conf 文件来自定义其行为。
要更改更新频率,您可以修改 `random_sleep` 设置,这是 dnf-automatic 在检查更新之前等待的最大秒数:
random_sleep = 1440
在此示例中,dnf-automatic 将每 1440 分钟(即一天一次)检查一次更新。
您还可以通过将 `system_name` 设置设置为您的主机名来指定 dnf-automatic 检查更新的特定时间。例如:
system_name = mycomputer.localdomain
默认情况下,dnf-automatic 将在 0 到 23 小时之间随机时间检查更新。但是,如果您指定主机名,dnf-automatic 将使用该主机名来确定每天检查更新的小时数。例如,如果您的主机名是 mycomputer.localdomain,dnf-automatic 将每天在 00:00 到 00:59 之间随机时间检查更新。
您还可以配置 dnf-automatic 在安装更新时或更新过程中出现任何错误时发送电子邮件通知。为此,您需要修改 `email_from` 和 `email_to` 设置。
配置安全更新的电子邮件通知
首先,将 `email_from` 设置设置为 dnf-automatic 应作为电子邮件通知发件人使用的电子邮件地址:
email_from = [email protected]
接下来,将 `email_to` 设置设置为应接收电子邮件通知的电子邮件地址:
email_to = [email protected]
保存并关闭文件。
查看 dnf-automatic 日志
dnf-automatic 将其活动记录到 /var/log/dnf.log 文件中。您可以通过运行以下命令来查看 dnf-automatic 的日志:
sudo less /var/log/dnf.log
这将在 less 分页器中显示日志,允许您滚动浏览日志并搜索特定条目。
禁用 dnf-automatic
如果您需要禁用 dnf-automatic,您可以通过运行以下命令来实现:
sudo systemctl disable dnf-automatic.timer
这将禁用 dnf-automatic 定时器,阻止其自动运行。您可以随时通过运行以下命令重新启用它:
sudo systemctl enable dnf-automatic.timer
这将重新启用 dnf-automatic 定时器并使其根据其配置的计划自动运行。
自定义 dnf-automatic
除了上面讨论的设置之外,您还可以自定义 /etc/dnf/automatic.conf 文件中的许多其他设置,以微调 dnf-automatic 的行为。例如,您可以通过修改 `exclude` 设置来指定要从更新中排除的软件包列表,或者您可以通过修改 `priority` 设置来指定应在任何其他软件包之前更新的软件包列表。
结论
dnf-automatic 为在 CentOS 8 和其他基于 RPM 的发行版上自动安装安全更新提供了一个简单有效的解决方案。通过配置 dnf-automatic 自动检查和安装更新,您可以确保您的系统始终使用最新的安全补丁,而无需手动安装更新。
在本文中,我们介绍了 dnf-automatic 的基础知识以及如何将其配置为自动安装安全更新。我们还探讨了 dnf-automatic 中可用的某些高级配置选项,例如调度和电子邮件通知。
通过遵循本文中概述的步骤并自定义 dnf-automatic 的配置以满足您的需求,您可以确保您的 CentOS 8 系统保持安全并使用最新的安全补丁。