psj-notes
~/home ~/series ~/archive

06. Unattended-upgrades: автообновления

16.07.2026 Серия: Настройка VDS сервера с VPN "unattended-upgrades" "безопасность" "apt"

Зачем нужны автообновления

Представьте: вы уехали в отпуск, а в это время вышло критическое обновление OpenSSL. Пока вы загораете, ваш сервер остаётся уязвимым. Unattended-upgrades решает эту проблему: пакетный менеджер сам скачивает и устанавливает обновления безопасности, а вам остаётся только проверять почту.

Это не панацея — автообновления настраивают только для security-патчей, чтобы не словить регресс от нового релиза ядра или PostgreSQL. Но дыры в OpenSSL, systemd и ядре (особенно в модулях) закрывать нужно сразу.

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

Пакет уже довольно часто предустановлен в Ubuntu. Проверим:

sudo apt update
sudo apt install unattended-upgrades apt-listchanges -y

apt-listchanges покажет changelog устанавливаемых пакетов — полезно, когда нужно понять, что вообще изменилось.

Базовая конфигурация

Файл конфигурации — /etc/apt/apt.conf.d/50unattended-upgrades. Откроем его:

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

Раскомментируем и убедимся, что есть такая секция:

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}";
    "${distro_id}:${distro_codename}-security";
    "${distro_id}ESMApps:${distro_codename}-apps-security";
    "${distro_id}ESM:${distro_codename}-infra-security";
};

Обратите внимание: security — только патчи безопасности. Если захочется ставить все обновления (не советую), можно добавить "${distro_id}:${distro_codename}-updates".

Полезные опции

// Автоматически перезагружать, если нужно (обычно для ядра)
Unattended-Upgrade::Automatic-Reboot "true";

// Подождать 15 минут перед перезагрузкой
Unattended-Upgrade::Automatic-Reboot-Time "03:30";

// Удалять старые неиспользуемые ядра
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

// Удалять ненужные зависимости
Unattended-Upgrade::Remove-Unused-Dependencies "true";

// Сколько дней хранить кэш пакетов
Unattended-Upgrade::Clean "30";

Настройка почтовых оповещений

Это важно: если что-то пошло не так, сервер должен написать вам. Для этого нужен работающий MTA. Если Postfix ещё не настроен, можно пока включить отправку через Sendmail (и придёт письмо локально, что бесполезно — но структура готова):

Unattended-Upgrade::Mail "root";
Unattended-Upgrade::MailOnlyOnError "true";

Когда в следующей части настроите Postfix, письма начнут уходить на реальный ящик.

Настройка периодичности

Файл /etc/apt/apt.conf.d/20auto-upgrades:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
  • Update-Package-Lists "1" — обновлять кэш репозиториев раз в сутки.
  • Unattended-Upgrade "1" — запускать автообновление ежедневно.

Проверить, что таймер активен:

sudo systemctl status apt-daily.timer
sudo systemctl status apt-daily-upgrade.timer

Пробный запуск

Перед тем как оставить сервер в покое, сделайте сухой прогон:

sudo unattended-upgrades --dry-run --debug

Эта команда покажет, какие пакеты были бы обновлены, без реальной установки. Если ошибок нет — можно запустить по-настоящему:

sudo unattended-upgrades

И посмотреть лог:

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

Проверка статуса

Узнать, применялись ли уже автообновления:

sudo grep "INFO" /var/log/unattended-upgrades/unattended-upgrades.log | tail -20

Вы увидите что-то вроде Packages that are upgraded: libssl3 3.0.2-0ubuntu1.12 -> 3.0.2-0ubuntu1.13. Если лог пустой — значит, обновлений не было (или сервер только что настроен).

Итог

Unattended-upgrades — это «поставил и забыл». 10 минут настройки — и ваш сервер будет автоматически получать патчи безопасности, а вы — уведомления о сбоях. В критический момент это может спасти от взлома.

Для полноценного мониторинга советую прикрутить ещё и email через Postfix — этим мы займёмся прямо сейчас.

Комментарии

Комментарии пока не подключены.