Автообновления безопасности (unattended-upgrades)
Большинство взломов эксплуатируют давно закрытые уязвимости — просто патч не установили вовремя. unattended-upgrades ставит security-обновления сам, ночью, без вашего участия. Настроим за десять минут.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что делает unattended-upgrades
Пакет автоматически скачивает и устанавливает обновления из выбранных репозиториев — обычно только security. Это снижает окно уязвимости с недель до часов и не требует вашего внимания. Работает он через systemd-таймеры apt-daily и apt-daily-upgrade, которые запускаются раз в сутки со случайным сдвигом, чтобы не грузить зеркала одновременно.
Важно понимать границу: обновления безопасности почти всегда безопасны для продакшена, а вот полное обновление всех пакетов может что-то сломать — сменить мажорную версию демона, перезаписать конфиг. Поэтому по умолчанию включают именно security-канал, а остальные обновления накатывают вручную в плановое окно.
Проверить, что таймеры активны, можно так:
systemctl list-timers | grep apt
systemctl status apt-daily-upgrade.timer
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS с root-доступомУстановка и включение
На Debian/Ubuntu ставим пакет и сопутствующий apt-listchanges:
apt update
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow 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";
Настройка правил обновления
Основной конфиг — /etc/apt/apt.conf.d/50unattended-upgrades. Откройте его и убедитесь, что включён только security-источник:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}ESMApps:${distro_codename}-apps-security";
};
Полезные опции — автоудаление ненужных зависимостей и уведомление на почту:
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Mail "admin@example.com";
Unattended-Upgrade::MailReport "on-change";
Если какой-то пакет обновлять нельзя (например, вы держите конкретную версию nginx или MySQL под приложение), внесите его в чёрный список — тогда автомат его не тронет:
Unattended-Upgrade::Package-Blacklist {
"nginx";
"mysql-server";
};
Опция MailReport со значением on-change шлёт письмо только когда что-то реально обновилось — почтовый ящик не забивается ежедневными отчётами «изменений нет».
Автоперезагрузка после обновления ядра
Обновление ядра или libc требует перезапуска. Разрешите автоперезагрузку в тихое время, чтобы не держать в памяти уязвимый код:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Если перезагрузка нежелательна (например, база без репликации), оставьте false и следите за флагом /var/run/reboot-required вручную. На тарифах MAATRIX ежедневные бэкапы делают ночной ребут менее рискованным — есть к чему откатиться.
Проверка и тестовый прогон
Прогоните обновление в режиме симуляции — увидите, что было бы установлено, ничего не меняя:
unattended-upgrade --dry-run --debug
Логи работы лежат отдельно:
cat /var/log/unattended-upgrades/unattended-upgrades.log
tail -f /var/log/unattended-upgrades/unattended-upgrades.log
Проверить, требуется ли перезагрузка после патчей:
[ -f /var/run/reboot-required ] && echo "Нужен ребут" || echo "OK"
Раз в пару месяцев полезно заглянуть в лог и убедиться, что автомат действительно работает, а не молча падает из-за сломанного зеркала или конфликта пакетов. Если видите строки об удержанных (kept back) обновлениях — их придётся накатить руками командой apt upgrade в плановое окно.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS с root-доступомОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Не сломает ли автообновление боевой сервер?
Security-обновления тщательно тестируются мейнтейнерами и меняют минимум. Риск низкий. Полные обновления (dist-upgrade) в автомат не ставьте.
Как отключить автоперезагрузку?
Задайте Unattended-Upgrade::Automatic-Reboot "false" в 50unattended-upgrades и перезагружайте вручную в удобное окно.
Работает ли это на CentOS/AlmaLinux?
Там аналог — dnf-automatic. Ставится через dnf install dnf-automatic и включается systemd-таймером dnf-automatic.timer.