Skip to content
VDS · Безпека

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

Як налаштувати 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 раз на місяць
Завантажені пакунки заповнили дискЗакінчується місцеТримайте автоматичне очищення кешу увімкненим

Автоматичні оновлення — це страховка, а не заміна уваги. Раз на місяць відкривайте машину, дивіться на журнал оновлень, список сервісів, що не запустилися, і чи потрібне перезавантаження. П'ятнадцяти хвилин на місяць вистачає, щоб покрити більшість сценаріїв зі статті ознаки зламу.