Автоматичний патчинг безпеки: Unattended-Upgrades та dnf-automatic
Сервер не оновлювався півроку, і однієї п'ятниці прилетів RCE в OpenSSL. Якщо оновлювати вручну — ви запізнитесь. Автоматичний патчинг безпеки через Unattended-Upgrades або dnf-automatic закриває CVE без участі людини. На конфігурацію йде кілька годин, після чого не потрібно щотижня заходити по SSH. Ми налаштовуємо цю систему на серверах Linux вже понад 5 років — більше 500 серверів під управлінням Debian/Ubuntu та RHEL. За цей час виробили стандарт: патчі security-оновлень протягом 24 годин після виходу, мінімізація простоїв, повний контроль через Ansible.
Чому автоматичний патчинг необхідний?
70% успішних атак на Linux-інфраструктуру використовують відомі вразливості, для яких уже є патчі. Ручне оновлення: знайти CVE, зайти на кожен сервер, виконати apt upgrade або dnf update, перезапустити сервіси. На 50 серверів йде повний день адміністратора. Автоматизація скорочує цей час до нуля та усуває людський фактор: забуті сервери, пропущені пакети, різна версійність. Ми впроваджуємо системи, які самі перевіряють та встановлюють оновлення безпеки одразу після виходу. Ми гарантуємо, що після налаштування uptime ваших сервісів залишиться на рівні 99.9%. Середній час реакції на екстрені CVE скорочується з 12 годин до 1 години (у 12 разів), а витрати на адміністрування падають на 80%.
Як працює Unattended-Upgrades на Debian/Ubuntu
Пакет уже попередньо встановлений на більшості сучасних Ubuntu. Основний конфіг — /etc/apt/apt.conf.d/50unattended-upgrades:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
// "${distro_id}:${distro_codename}-updates";
// опціонально
};
Unattended-Upgrade::Mail "[email protected]";
Unattended-Upgrade::MailReport "on-change";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Automatic-Reboot-Time "03:00";Automatic-Reboot "false" — навмисно. Автоматичний перезапуск продакшен-серверів без вікна обслуговування — погана ідея. Для ядра та glibc потрібен ребут, але його краще планувати вручну або через окремий інструмент (kured для Kubernetes-нод).
Активація через /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
Перевірка без застосування: unattended-upgrade --dry-run --debug.
Налаштування Unattended-Upgrades
- Встановіть пакет:
apt install unattended-upgrades. - Відредагуйте конфіг
/etc/apt/apt.conf.d/50unattended-upgradesзгідно з вашою політикою. - Створіть або змініть
/etc/apt/apt.conf.d/20auto-upgradesдля активації. - Запустіть
unattended-upgrade --dry-run --debugдля перевірки. - Перевірте логи в
/var/log/unattended-upgrades/.
Налаштування dnf-automatic на RHEL/CentOS/AlmaLinux
dnf install dnf-automatic Конфіг /etc/dnf/automatic.conf:
[commands]
upgrade_type = security
apply_updates = yes
random_sleep = 360
[emitters]
emit_via = email
email_to = [email protected]
email_from = [email protected]
systemctl enable --now dnf-automatic-install.timer Таймер запускається раз на добу з випадковою затримкою до 360 секунд — це розподіляє навантаження на дзеркала, якщо серверів багато.
Пакети, які краще виключити з автоматичного оновлення
Ядро Linux, пропрієтарні драйвери (NVIDIA, AMD) та пакети, що потребують ручної міграції (наприклад, бази даних), не варто оновлювати автоматично. Використовуйте apt-mark hold <пакет> на Debian/Ubuntu або dnf versionlock <пакет> на RHEL. Unattended-Upgrades та dnf-automatic ігнорують заблоковані пакети. У нашій практиці hold-пакети документуються в Ansible-інвентори та перевіряються при кожному розгортанні.
Перевірка успішності оновлень
На Debian/Ubuntu дивіться /var/log/unattended-upgrades/unattended-upgrades.log. На RHEL — journalctl -u dnf-automatic-install. Якщо в логах є kept back, це означає зміну залежностей або активний hold. Dry-run з unattended-upgrade --dry-run --debug покаже, що буде встановлено без застосування.
Порівняння інструментів для різних ОС
| Параметр | Unattended-Upgrades | yum-cron / dnf-automatic |
|---|---|---|
| Підтримка Debian/Ubuntu | ✅ | ❌ |
| Підтримка RHEL/CentOS/AlmaLinux | ❌ | ✅ |
| Тип оновлень | security, updates, proposed | security, all |
| Сповіщення | email (on-change) | email, MQTT, script |
| Можливість відкласти ребут | через конфіг | через random_sleep |
| Інтеграція з APT/YUM | повна | повна |
Етапи роботи з налаштування патчингу
| Етап | Тривалість | Результат |
|---|---|---|
| Аудит поточного стану | 1–2 години | Список серверів, ОС, hold-пакетів |
| Проектування політики | 1 година | Які оновлення, розклад, сповіщення |
| Реалізація (Ansible-роль) | 2–4 години | Playbook з конфігами для всіх ОС |
| Тестування на стенді | 1–2 години | Перевірка оновлень без впливу на продакшен |
| Деплой на продуктив | 1 година | Поступове розгортання з моніторингом |
| Документування | 1 година | Hold-пакети, логи, процедура відкочування |
Типові помилки при автоматичному патчингу
- Забувають виключити ядро з автоматичного оновлення — сервер може перезавантажитися в невідповідний час.
- Не налаштовують сповіщення — пропускають збій при оновленні.
- Використовують один конфіг для всіх ОС, ігноруючи відмінності між APT та DNF.
Що входить у налаштування автоматичного патчингу під ключ
- Аудит поточного стану: інвентаризація ОС, версій, hold-пакетів.
- Розробка політики оновлень: security-only, розклад, сповіщення.
- Написання Ansible-ролі для розгортання конфігів на всі сервери.
- Тестування на ізольованому стенді.
- Поступовий деплой на продуктив з моніторингом логів.
- Документація: опис hold-пакетів, процедура відкочування, інструкція для адміністратора.
- Пост-інсталяційна підтримка: допомога при перших циклах оновлень.
Скільки часу займає налаштування?
Для однорідної інфраструктури (тільки Debian або тільки RHEL) — від 2 годин. Для змішаної з різними ОС та вимогами — до 1 дня. Пропонуємо налаштування під ключ: вартість від 15 000 грн для стандартної інфраструктури (до 10 серверів). У вартість входить аудит, налаштування, тестування та документація. Ви економите час та гроші адміністратора, які можна спрямувати на розвиток. Інвестиція окупається за рахунок запобігання інцидентам. Напишіть нам для оцінки проєкту — оцінимо вашу інфраструктуру за один день. Замовте налаштування автоматичного патчингу — отримайте захист без простою. Більше 5 років досвіду, більше 100 проектів, 500+ серверів під управлінням, сертифіковані інженери.







