Ubuntu 24.04 автоматичні оновлення налаштування
Перевірте статус unattended-upgrades у Ubuntu 24.04. Дізнайтеся, чи увімкнено auto-upgrades та як налаштувати Automatic-Reboot для безпеки вашого сервера.
Чому варто налаштувати автоматичні оновлення безпеки
Сервер без патчів — це найлегша ціль в інтернеті. Більшість зломів невеликих серверів не є складними; це відомі помилки у старих пакетах, які власник ніколи не оновлював. Ubuntu постачається з інструментом, який автоматично усуває цю проблему: unattended-upgrades встановлює оновлення безпеки автоматично за розкладом, без вашого участі. Це найдешевший спосіб підвищити безпеку на VPS, а на Ubuntu це займає лише кілька хвилин налаштування.
Цей інструмент працює максимально консервативно. За замовчуванням він застосовує лише оновлення безпеки, а не всі оновлення пакетів. Це зроблено тому, що патч безпеки має низький ризик і його варто встановлювати без перевірки, тоді як оновлення функцій може змінити поведінку системи, на яку ви покладаєтеся. Таке налаштування за замовчуванням є правильним для більшості серверів; цей посібник зберігає його, показуючи лише ті налаштування, які варто змінити.
Step 1: Встановіть та увімкніть його
В Ubuntu 24.04 пакет часто вже встановлений, але не завжди увімкнений. Встановіть його та активуйте:
sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgradesЗапит dpkg-reconfigure містить лише одне запитання (так/ні): чи завантажувати та встановлювати стабільні оновлення автоматично. Відповідайте "yes". Це створить файл, який увімкне щоденне завдання:
cat /etc/apt/apt.conf.d/20auto-upgradesAPT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";Перший рядок щодня оновлює список пакетів; другий щодня запускає unattended upgrade. Налаштування обох параметрів на 1 означає, що машина щодня перевіряє та застосовує оновлення безпеки за таймером systemd без жодних додаткових дій з вашого боку.
Step 2: Визначте, що застосовувати автоматично
Політика налаштувань зберігається у /etc/apt/apt.conf.d/50unattended-upgrades. Відкрийте її та перегляньте блок Allowed-Origins на початку:
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" для автоматичного застосування всіх оновлень, але для сервера з важливими даними безпечніше залишати лише автоматичне встановлення патчів безпеки. Залиште налаштування за замовчуванням, якщо у вас немає вагомих причин змінювати його.
Step 3: Обробка перезавантажень
Деякі оновлення, наприклад ядро або основні бібліотеки, набувають повної сили лише після перезавантаження. unattended-upgrades не перезавантажуватиме ваш сервер без вашої команди, а це означать, що патчене ядро може залишатися неактивним, доки ви не перезавантажите систему. Визначте, як ви хочете це обробляти, і явно вкажіть це у 50unattended-upgrades:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";Це перезавантажить сервер о 4-й ранку, якщо (і тільки якщо) оновлення потребує перезавантаження. Для одного VPS без кластера відмови короткий ранковий перезапуск зазвичай є вигідною ціною за актуальні виправлення ядра. Якщо ваш сервер запускає процеси, які ніколи не повинні раптово перезадувантажуватися, вимкніть перезавантаження та привчайте себе перезавантажувати систему самостійно після перевірки /var/run/reboot-required.
Step 4: Перевірка роботи
Не чекайте день, щоб дізнатися, чи виконується завдання. Запустіть симуляцію (dry run), яка покаже, що саме було б застосовано, не змінюючи нічого в системі:
sudo unattended-upgrade --dry-run --debugВивід містить список пакетів та їхні джерела, що дозволяє побачити політику в дії. Після того, як реальне завдання виконається хоча б раз, запис про це з'явиться тут:
cat /var/log/unattended-upgrades/unattended-upgrades.logЦей лог є відповіддю на питання "чи справді мій сервер патчить сам себе". Якщо в логах видно встановлення пакетів безпеки за розкладом, завдання виконується правильно.
Де це використовується
Автоматичні оновлення — це лише один рівень захисту сервера, а не повний комплекс заходів. Вони не дозволяють відомим помилкам залишатися в системі, але ніяк не впливають на те, хто може увійти в систему або які порти відкриті. Поєднуйте їх із захистом SSH лише за ключами, щоб уникнути брутфорсу; з брандмауером UFW з політикою "заборонено все за замовчуванням", щоб були доступні лише потрібні порти; та з непривілейованими користувачами сервісів, щоб зкомпрометований додаток не міг захопити всю систему. Патчи закривають відомі дірки; інші рівні обмежують шкоду від невідомих.
FAQ
Чи встановлює unattended-upgrades кожне оновлення чи тільки оновлення безпеки?
За замовчуванням — тільки оновлення безпеки. Блок Allowed-Origins у /etc/apt/apt.conf.d/50unattended-upgrades увімкняє джерела -security, залишаючи звичайні оновлення функцій для ручного застосування. Це зроблено свідомо: патчі безпеки мають низький ризик і їх варто встановлювати автоматично, тоді як оновлення функцій можуть змінити поведінку системи, тому більшості серверів варто залишити консервативне налаштування за замовчуванням.
Чи будуть автоматичні оновлення перезавантажувати мій сервер?
Тільки якщо ви це вкажете. Встановіть Unattended-Upgrade::Automatic-Reboot "true" та Automatic-Reboot-Time у конфігурації, і сервер перезавантажиться у цей час, якщо оновлення потребуватиме перезавантаження (наприклад, після патча ядра). Якщо ця функція вимкнена, патчене ядро чекатиме, доки ви не перезавантажите систему самостійно; перевірте /var/run/reboot-required, щоб дізнатися, чи очікується перезавантаження.
Як перевірити, чи дійсно працюють автоматичні оновлення?
Запустіть sudo unattended-upgrade --dry-run --debug, щоб побачити, що було б застосовано прямо зараз без змін, та прочитайте /var/log/unattended-upgrades/unattended-upgrades.log для перегляду історії запусків; кожен автоматичний інсталяція також записується у /var/log/apt/history.log. Якщо в логах видно встановлення пакетів безпеки за щоденним розкладом, таймер працює. Якщо симуляція (dry run) виводить No packages found that can be upgraded unattended, це означає, що або все вже актуально, або ваші дозволені джерела занадто обмежені, щоб охопити репозиторій безпеки.
Чи достатньо unattended-upgrades для забезпечення безпеки сервера?
Ні, але це необхідний рівень. Це не дає відомим вразливостям залишатися неперевіреними, що зупиняє найпоширеніший тип зломів, але це не контролює доступ або відкриті порти. Поєднуйте це із захистом SSH, брандмауером за принципом "заборонено все за замовчуванням" та використанням користувачів з мінімальними привілеями, щоб створити сервер, у який справді важко проникнути.