06. Unattended-upgrades: автообновления
Зачем нужны автообновления
Представьте: вы уехали в отпуск, а в это время вышло критическое обновление 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 — этим мы займёмся прямо сейчас.
Комментарии
Комментарии пока не подключены.