Технологии, деньги и рынки — первымиНаписать в редакциюСтудия Dilami LabDilami Lab

Серверы из готового образа месяцами не получали обновления безопасности Ubuntu

На четырех серверах с Ubuntu 24.04, созданных из образа хостера 20 июля, unattended-upgrades с июля не установил ни одного пакета. Причина в файле источников apt: в нем не оказалось карманa noble-security, где Canonical публикует исправления безопасности.

Серверы из готового образа месяцами не получали обновления безопасности Ubuntu
Иллюстрация: habr.com

Главное в цифрах

  • Пакетов с исправлениями на каждом из четырех серверов: от 53 до 58
  • Доступных обновлений после возврата строфы noble-security: от 182 до 197 на сервер
  • Обновлений безопасности накопилось на серверах другого проекта: от 14 до 118
  • Время перезагрузки самого долгого сервера: около 3 минут

Нашлось это 2 ноября, когда панель мониторинга начала сверять установленные пакеты с базой уязвимостей Canonical. На каждом из четырех серверов оказалось от 53 до 58 пакетов, для которых исправление уже вышло, но установлено не было. Среди них openssl в версии 3.0.13-0ubuntu3.11 при исправленной 3.0.13-0ubuntu3.16, а также glibc, openssh, mysql-8.0 и brotli.

В файле /etc/apt/sources.list.d/ubuntu.sources остались три кармана, а строфа с noble-security пропала. Рядом лежит ubuntu.sources.curtin.orig от установщика Ubuntu, где эта строфа на месте. Похоже, при сборке образа источники перевели на российское зеркало, а строфу с безопасностью потеряли.

Почему unattended-upgrades ничего не видел

Исправления безопасности Ubuntu публикуются в noble-security, и многие из них потом попадают и в noble-updates. Unattended-upgrades по умолчанию берет пакеты только из самого релиза и из -security, а строка с -updates в его конфиге закомментирована. Поэтому исправления, которые лежат только в noble-security, на сервере не видны вовсе, а часть обновлений из noble-updates пропускается.

На стенде с чистым ubuntu:24.04 это воспроизвели: без строфы apt показывал обновление, но ставить было нечего. После возврата строфы доступных пакетов стало два, для libpcre2-8-0. На реальных серверах после исправления источников встало от 182 до 197 пакетов на сервер.

Мониторинг показывал ноль

Apt помечает обновление безопасности по карману, из которого оно пришло: в выводе apt list это строка вида openssl/noble-updates,noble-security. Без подключенного noble-security такой пометки нет ни у одного пакета. Панель считала обновления безопасности именно так и показывала ноль при 197 доступных обновлениях.

На серверах другого проекта, тоже созданных из готового образа, таймеры apt не срабатывали ни разу. Службы apt-daily и apt-daily-upgrade в образе были замаскированы, и к моменту проверки на серверах накопилось от 14 до 118 обновлений безопасности.

Что сделали

Вернули стандартную строфу из образа Ubuntu, сняли маску только с apt-daily и apt-daily-upgrade и добавили отдельный файл для PHP из PPA ondrej/php, чтобы патч-релизы PHP ставились автоматически. Метапакеты без версии в нем запрещены, иначе php-fpm подтянул бы новую ветку PHP. После обновления встало новое ядро 6.8.0-147, серверы перезагрузили по одному. Дольше всех поднимался сервер приложения, около 3 минут.

Нашли ошибку или есть что добавить? Напишите редакции
Источник: habr.com
0 новых новостей