Автоматические обновления безопасности в Ubuntu

Пошаговая настройка автоматической установки обновлений безопасности в Ubuntu с помощью unattended-upgrades.


title: "Автоматические обновления безопасности в Ubuntu"
slug: "ubuntu-unattended-upgrades-setup"
excerpt: "Пошаговая настройка автоматической установки обновлений безопасности в Ubuntu с помощью unattended-upgrades."
tags:

  • Linux
  • Ubuntu
  • Безопасность
  • Обновления
    status: draft

Автоматические обновления безопасности в Ubuntu

Пакет unattended-upgrades позволяет автоматически устанавливать обновления безопасности без ручного запуска apt upgrade.

В этой инструкции рассматривается только настройка автоматической установки обновлений безопасности в Ubuntu.

Проверено на: Ubuntu Server 24.04 LTS
Уровень сложности: начальный
Время выполнения: около 10 минут
Требуемый доступ: пользователь с правами sudo

Что будет настроено

После выполнения инструкции:

  • будет установлен пакет unattended-upgrades;
  • будет включена автоматическая проверка обновлений;
  • будут автоматически устанавливаться обновления безопасности;
  • будет проверена конфигурация;
  • будет выполнен тестовый запуск.

Проверка текущего состояния

Проверьте, установлен ли пакет:

dpkg -l unattended-upgrades

Проверьте состояние сервиса:

systemctl status unattended-upgrades --no-pager

Если пакет не установлен, выполните следующие шаги.

Установка unattended-upgrades

Обновите индекс пакетов:

sudo apt update

Установите необходимые компоненты:

sudo apt install -y unattended-upgrades apt-listchanges

Проверьте версию:

unattended-upgrade --version

Включение автоматических обновлений

Запустите интерактивную настройку:

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

Подтвердите включение автоматической установки обновлений безопасности.

Проверка периодического запуска

Основной файл периодической настройки:

/etc/apt/apt.conf.d/20auto-upgrades

Проверьте его содержимое:

cat /etc/apt/apt.conf.d/20auto-upgrades

Пример минимальной конфигурации:

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

Значение 1 означает ежедневный запуск.

Создание конфигурации вручную

Если файл отсутствует или его нужно настроить вручную:

sudo tee /etc/apt/apt.conf.d/20auto-upgrades >/dev/null <<'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
EOF

Проверка источников обновлений

Основной конфигурационный файл:

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

Откройте его:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

В блоке Allowed-Origins или Origins-Pattern должны быть разрешены обновления безопасности Ubuntu.

Обычно используется строка, соответствующая security-репозиторию:

"${distro_id}:${distro_codename}-security";

Не включайте автоматическую установку всех обновлений без необходимости.

Проверка синтаксиса конфигурации

Проверьте конфигурацию:

sudo unattended-upgrade --dry-run --debug

Команда покажет:

  • какие источники обновлений используются;
  • какие пакеты доступны;
  • какие пакеты были бы установлены;
  • есть ли ошибки конфигурации.

Тестовый запуск ничего не устанавливает.

Ручной запуск

Для обычного ручного запуска:

sudo unattended-upgrade

Для подробного вывода:

sudo unattended-upgrade --debug

Проверка systemd-таймеров APT

Посмотрите таймеры:

systemctl list-timers --all | grep apt

Обычно используются:

apt-daily.timer
apt-daily-upgrade.timer

Проверьте их состояние:

systemctl status apt-daily.timer --no-pager
systemctl status apt-daily-upgrade.timer --no-pager

Просмотр журналов

Основной журнал:

sudo tail -100 /var/log/unattended-upgrades/unattended-upgrades.log

Журнал действий:

sudo tail -100 /var/log/unattended-upgrades/unattended-upgrades-dpkg.log

Журнал загрузки:

sudo tail -100 /var/log/unattended-upgrades/unattended-upgrades-shutdown.log

Журнал systemd:

sudo journalctl -u unattended-upgrades -n 100 --no-pager

Проверка даты последнего запуска

Посмотрите время изменения журнала:

stat /var/log/unattended-upgrades/unattended-upgrades.log

Проверьте последние записи:

sudo grep -E 'Starting unattended upgrades|Packages that will be upgraded|All upgrades installed'   /var/log/unattended-upgrades/unattended-upgrades.log |
tail -20

Настройка автоматической перезагрузки

По умолчанию автоматическая перезагрузка обычно отключена.

Чтобы включить её, найдите параметр:

Unattended-Upgrade::Automatic-Reboot

Пример:

Unattended-Upgrade::Automatic-Reboot "true";

Время перезагрузки:

Unattended-Upgrade::Automatic-Reboot-Time "03:30";

Важно: автоматическая перезагрузка подходит не для всех серверов. На production-системах её лучше включать только при наличии контроля доступности и заранее согласованного окна обслуживания.

Проверка необходимости перезагрузки

После установки обновлений проверьте:

test -f /var/run/reboot-required   && cat /var/run/reboot-required   || echo "Перезагрузка не требуется"

Список пакетов, вызвавших необходимость перезагрузки:

cat /var/run/reboot-required.pkgs 2>/dev/null

Исключение пакетов

Чтобы исключить пакет из автоматических обновлений, используйте блок:

Unattended-Upgrade::Package-Blacklist

Пример:

Unattended-Upgrade::Package-Blacklist {
    "example-package";
};

После изменения выполните тест:

sudo unattended-upgrade --dry-run --debug

Предупреждение: исключение системных пакетов снижает уровень безопасности и должно иметь обоснованную причину.

Отключение автоматических обновлений

Откройте:

/etc/apt/apt.conf.d/20auto-upgrades

Установите:

APT::Periodic::Unattended-Upgrade "0";

Либо удалите файл:

sudo rm -f /etc/apt/apt.conf.d/20auto-upgrades

Пакет при этом останется установленным.

Удаление unattended-upgrades

Если автоматические обновления не нужны:

sudo apt remove -y unattended-upgrades

Проверьте состояние:

systemctl status unattended-upgrades --no-pager

Типичные проблемы

Обновления не запускаются

Проверьте таймеры:

systemctl list-timers --all | grep apt

Проверьте конфигурацию:

cat /etc/apt/apt.conf.d/20auto-upgrades

Проверьте тестовый запуск:

sudo unattended-upgrade --dry-run --debug

Пакеты не устанавливаются

Проверьте разрешённые источники:

grep -nE 'Allowed-Origins|Origins-Pattern|security'   /etc/apt/apt.conf.d/50unattended-upgrades

Блокировка apt

Проверьте активные процессы:

ps aux | grep -E 'apt|dpkg|unattended'

Не запускайте несколько процессов управления пакетами одновременно.

Ошибка конфигурации

Запустите:

sudo unattended-upgrade --dry-run --debug

Исправьте указанный файл и повторите проверку.

Рекомендуемый порядок проверки

  1. Установить пакет.
  2. Включить автоматический запуск.
  3. Проверить 20auto-upgrades.
  4. Проверить разрешённые источники.
  5. Выполнить --dry-run --debug.
  6. Проверить таймеры systemd.
  7. Проверить журналы.
  8. Определить политику перезагрузки.

Итог

После выполнения инструкции:

  • включена автоматическая установка обновлений безопасности;
  • настроен ежедневный запуск;
  • проверены systemd-таймеры;
  • выполнен тестовый запуск;
  • рассмотрена автоматическая перезагрузка;
  • показаны журналы и способы диагностики.

Автоматические обновления безопасности снижают риск эксплуатации известных уязвимостей, но не заменяют контроль состояния сервера и плановое обслуживание.

← Предыдущая статья Настройка UFW в Ubuntu Следующая статья → Просмотр и очистка журналов systemd в Ubuntu