Автоматичні оновлення безпеки
Як налаштувати unattended-upgrades на Debian і Ubuntu та dnf-automatic на AlmaLinux, щоб патчі ставилися самі й сервіс не падав уночі.
Оновлено 23 серпня 2026 р.
Більшість зламів трапляється через уразливості, які закрили ще місяці тому. Ручні оновлення відкладають, автоматичні — ні. Розумна конфігурація встановлює лише оновлення безпеки, а все інше не чіпає.
Debian і Ubuntu
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades
Файл /etc/apt/apt.conf.d/50unattended-upgrades:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Package-Blacklist {
"postgresql-.*";
"docker-ce";
};
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "you@example.com";
Розклад міститься в /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Пробний запуск, без внесення змін:
unattended-upgrade --dry-run --debug
systemctl status unattended-upgrades
cat /var/log/unattended-upgrades/unattended-upgrades.log
AlmaLinux і CentOS Stream
dnf install -y dnf-automatic
У /etc/dnf/automatic.conf:
[commands]
upgrade_type = security
apply_updates = yes
reboot = never
systemctl enable --now dnf-automatic.timer
systemctl list-timers | grep dnf
Що виключити
Додайте до списку виключень усе, що ламається, коли його версія змінюється несподівано: сервер бази даних, Docker, сам рушій застосунку. Оновлюйте їх вручну у спокійний час — дивіть оновлення системи та пакунків.
Оновлення безпеки ядра теж встановлюються, але набувають чинності лише після перезавантаження:
test -f /var/run/reboot-required && cat /var/run/reboot-required.pkgs
Перезавантаження: лише рішення людини
Спокуса виставити Automatic-Reboot "true" велика, але автоматичне перезавантаження щоночі означає, що сервіс перезапускається без жодного нагляду. Якщо щось не підніметься, ви дізнаєтеся про це вранці від своїх користувачів.
Розумний компроміс: оновлення встановлюються самі, а перезавантажуєте ви вручну раз на місяць, стежачи за консоллю в панелі /hosting/vds/m/<id>. Заодно перевірте, чи сервіси запускаються самі:
systemctl is-enabled nginx postgresql
systemctl list-units --state=failed
Типові помилки
| Помилка | Наслідок | Виправлення |
|---|---|---|
| Увімкнено оновлення для всіх репозиторіїв, а не лише для безпеки | Приходять зміни функціоналу | Залиште лише джерело -security |
| Бази даних немає у списку виключень | Мажорна версія ламає дані | Додайте її до Package-Blacklist |
| Автоматичне перезавантаження вночі | Сервіс не піднявся, і ніхто цього не помітив | Automatic-Reboot "false" |
| Налаштували і забули | Ядро оновлюється, але оновлення не застосовано | Перевіряйте reboot-required раз на місяць |
| Завантажені пакунки заповнили диск | Закінчується місце | Тримайте автоматичне очищення кешу увімкненим |
Автоматичні оновлення — це страховка, а не заміна уваги. Раз на місяць відкривайте машину, дивіться на журнал оновлень, список сервісів, що не запустилися, і чи потрібне перезавантаження. П'ятнадцяти хвилин на місяць вистачає, щоб покрити більшість сценаріїв зі статті ознаки зламу.