SSD Nodes Learn Hosting plans →
Посібники Matt ConnorВід Matt Connor · Оновлено 2026-08-13

Ubuntu 24.04: чи ввімкнено unattended-upgrades?

В Ubuntu Server 24.04 unattended-upgrades часто вже встановлено, але 20auto-upgrades вмикає його. Automatic-Reboot=false, а dry run показує майбутні оновлення.

Чому автоматичні оновлення безпеки варто налаштувати

Непропатчений сервер — найпростіша ціль в інтернеті. Більшість зламів невеликих серверів не потребує складних атак: це відома помилка в застарілому пакеті, який власник ніколи не оновлював. В Ubuntu є інструмент, що автоматично усуває цю проблему: unattended-upgrades автоматично встановлює оновлення безпеки за розкладом, без потреби входити на сервер. Це найдешевший спосіб підвищити безпеку VPS, а в Ubuntu його налаштування займає кілька хвилин.

Інструмент навмисно працює консервативно. За замовчуванням він застосовує лише оновлення безпеки, а не оновлює всі пакети, оскільки патч безпеки зазвичай має низький ризик і його варто встановлювати без попередньої перевірки, тоді як оновлення функціональності може змінити поведінку, від якої ви залежите. Для більшості серверів це правильне налаштування. У цьому посібнику воно зберігається, а також описано кілька параметрів, які варто змінити.

Крок 1: Встановіть і ввімкніть інструмент

В Ubuntu 24.04 пакет часто вже встановлений, але не завжди ввімкнений. Встановіть його та ввімкніть:

sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Запит dpkg-reconfigure містить одне запитання з відповіддю «так» або «ні»: чи потрібно автоматично завантажувати та встановлювати стабільні оновлення. Відповідайте «так». Це створить файл, який увімкне щоденне завдання:

cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Перший рядок щодня оновлює список пакетів, а другий щодня запускає автоматичне оновлення. Значення 1 для обох параметрів означає, що машина щодня перевіряє та застосовує оновлення безпеки за таймером systemd, без подальших дій з вашого боку.

Крок 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", щоб автоматично застосовувати всі оновлення. Але для сервера, на якому працює важливий сервіс, безпечніше автоматично встановлювати лише патчі безпеки. Залиште стандартне налаштування, якщо немає конкретної причини змінювати його.

Крок 3: Налаштуйте перезавантаження

Деякі оновлення, зокрема ядро або системна бібліотека, повністю набувають чинності лише після перезавантаження. unattended-upgrades не перезавантажує сервер без відповідного налаштування. Через це оновлене ядро може залишатися невикористаним до наступного перезапуску. Визначте потрібну поведінку та явно задайте її у 50unattended-upgrades:

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";

Це перезавантажує сервер о четвертій ранку лише тоді, коли цього потребує оновлення. Для одного VPS без кластера, на який можна перемкнути навантаження, коротке перезавантаження рано-вранці зазвичай є прийнятним компромісом заради своєчасного встановлення виправлень ядра. Якщо на сервері працює сервіс, який не повинен несподівано перезапускатися, залиште автоматичне перезавантаження вимкненим і регулярно перезавантажуйте сервер вручну після перевірки /var/run/reboot-required.

Крок 4: Перевірте роботу

Не чекайте добу, щоб з’ясувати, чи запускається завдання. Виконайте пробний запуск, який покаже, що саме буде застосовано, без внесення змін:

sudo unattended-upgrade --dry-run --debug

У виведенні перелічено пакети, які буде застосовано, і джерела їхнього походження. Так можна перевірити роботу політики. Після першого фактичного запуску завдання його запис буде тут:

cat /var/log/unattended-upgrades/unattended-upgrades.log

Цей журнал відповідає на запитання: «Чи справді сервер сам себе оновлює?» Якщо в ньому видно, що пакети безпеки встановлюються за розкладом, завдання працює.

Де це застосовується

Автоматичні оновлення — лише один рівень захисту сервера, а не повне рішення. Вони не дають відомим помилкам залишатися невиправленими, але нічого не змінюють у питаннях доступу та відкритих сервісів. Поєднайте їх із захистом SSH лише за ключами, щоб запобігти підбору облікових даних, із міжмережевим екраном UFW із політикою заборони за замовчуванням, щоб доступними були лише явно дозволені сервіси, і з непривілейованими користувачами сервісів, щоб зламаний застосунок не отримав контроль над усім сервером. Розміщені застосунки також мають власні секрети. Тому якщо на цьому сервері працює self-hosted сховище паролів, виконайте посилене налаштування Vaultwarden, яке охоплює токен адміністратора та файл резервної копії, що їх не захистить саме лише оновлення через apt. Оновлення усувають відомі вразливості, а інші рівні обмежують наслідки невідомих атак.

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. Якщо журнал показує щоденне встановлення пакетів безпеки, таймер працює. Якщо пробний запуск виводить No packages found that can be upgraded unattended, це означає, що всі пакети вже оновлені або дозволені джерела надто обмежені й не охоплюють репозиторій оновлень безпеки.

Чи достатньо unattended-upgrades для захисту сервера?

Ні, але це необхідний рівень захисту. Він не дає відомим вразливостям залишатися без патчів, що запобігає найпоширенішому типу зламів, але не керує доступом і не обмежує відкриті сервіси. Поєднайте його із захистом SSH, міжмережевим екраном із політикою заборони за замовчуванням і непривілейованими користувачами сервісів, щоб сервер було значно складніше зламати.