Как настроить автоматическое обновление пакетов на сервере Linux

7 минут чтения
Средний рейтинг статьи — 4.7

Автоматическое обновление пакетов — это важная часть безопасности серверов. Особенно когда дело касается обновлений безопасности. Не все админы хотят вручную отслеживать каждый патч, и здесь на помощь приходят утилиты вроде unattended-upgrades, dnf-automatic и yum-cron.

В этой статье разберём, как настроить автообновления для разных дистрибутивов Linux.

Зачем настраивать автоматическое обновление?

  • Безопасность — критические баги закрываются как можно быстрее.
  • Поддержка — минимизируете риски при переходе на новую версию вручную.
  • Меньше ручной работы — особенно важно, если вы админите много серверов.

Для Debian/Ubuntu: unattended-upgrades

Установка

sudo apt update
sudo apt install unattended-upgrades

Активация

sudo dpkg-reconfigure --priority=low unattended-upgrades

После этого будет создана базовая конфигурация.

Основной конфиг

Путь: /etc/apt/apt.conf.d/50unattended-upgrades

Пример:

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-security";
        "${distro_id}:${distro_codename}-updates";
};

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";

Параметр -security — обязательно. Можно также добавить -updates и -backports.

Расписание

Путь: /etc/apt/apt.conf.d/20auto-upgrades

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Значениe "1" означаeт "ежедневно".

Для Fedora, RHEL, CentOS: dnf-automatic

Установка

sudo dnf install dnf-automatic

Конфигурация

Путь: /etc/dnf/automatic.conf

Пример:

[commands]
upgrade_type = security
random_sleep = 0
download_updates = yes
apply_updates = yes

[emitters]
emit_via = motd

[base]
debuglevel = 1

Можно выбрать upgrade_type = default если хотите ставить всё, не только security-апдейты.

Если вы хотите скачивать, но не ставить обновления (например, для ручной проверки), используйте такие настройки:

download_updates = yes
apply_updates = no

Включение службы

sudo systemctl enable --now dnf-automatic.timer

Для CentOS 7 / RHEL 7: yum-cron

Установка

sudo yum install yum-cron

Конфигурация

Путь: /etc/yum/yum-cron.conf

Важные параметры:

update_cmd = security
apply_updates = yes

Также можно настроить логирование и уведомления по email.

Активация

sudo systemctl enable --now yum-cron

Проверка работы

Вы можете проверить журнал через journalctl:

journalctl -u dnf-automatic.timer
journalctl -u unattended-upgrades

А для yum-cron:

cat /var/log/yum.log

Как настроить отправку уведомлений об обновлениях?

Для unattended-upgrades

В /etc/apt/apt.conf.d/50unattended-upgrades:

Unattended-Upgrade::Mail "admin@example.com";
Unattended-Upgrade::MailOnlyOnError "true";

Понадобится установленный MTA (например, postfix, exim, ssmtp, msmtp).

Для dnf-automatic (Fedora/RHEL 8+)

В /etc/dnf/automatic.conf:

[emitters]
emit_via = email
email_from = root@yourdomain.com
email_to = admin@yourdomain.com
email_host = localhost

По умолчанию email_host = localhost, но можно указать внешний SMTP-сервер. Опять же, нужен настроенный MTA.

Для yum-cron (CentOS/RHEL 7)

В /etc/yum/yum-cron.conf:

email_from = root@yourdomain.com
email_to = admin@yourdomain.com
email_host = localhost

Что учитывать при включении автообновлений

  • Не обновляйте ядро автоматически, если сервер критичный — может потребоваться ручная перезагрузка.
  • Тестируйте сначала на staging-сервере, особенно если ставите всё подряд (default вместо security).
  • Настройте уведомления, чтобы быть в курсе того, что ставится (через mailx или systemd email hooks).

Заключение

Автоматическое обновление пакетов — простой способ закрыть базовые дыры в безопасности без лишнего напряга. Подходящие инструменты есть под любой дистрибутив: unattended-upgrades, dnf-automatic, yum-cron. Настроил — и забыл. Но всё равно лучше следить за логами — хотя бы раз в неделю.

7 минут чтения
Средний рейтинг статьи — 4.7

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний