Ubuntu выпустила обновление ядра, закрывающее 19 уязвимостей. Для пользователей LTS это рутинное, но важное событие: ядро — основа системы, и его патчи влияют на безопасность всех процессов, включая контейнеры и виртуальные машины. Разберём, как правильно установить обновление и не сломать рабочую машину.

Что обычно входит в такое обновление

Пакет безопасности ядра закрывает уязвимости в сетевых подсистемах, файловых системах, драйверах и механизмах управления памятью. Часть проблем позволяет повысить привилегии, часть — вызвать отказ в обслуживании, часть — выполнить код. Уровень критичности у них разный, но обновление ставится целиком.

Ubuntu выпускает исправления для поддерживаемых веток: GA-ядра, HWE-ядра и ядер для облачных образов. Важно обновить именно ту ветку, которая используется, иначе патч не попадёт в загрузку.

Проверка текущего ядра

uname -r
lsb_release -a
apt policy linux-image-generic linux-image-generic-hwe-22.04
dpkg -l | grep -E "linux-image|linux-headers" | tail

Если вы используете HWE, метапакет называется иначе. Не устанавливайте вручную linux-image-... из списка, если не понимаете, к какой ветке он относится: можно получить несколько ядер и путаницу в GRUB.

Установка

Обновляйте систему целиком, а не только ядро: зависимости и модули должны соответствовать новой версии.

sudo apt update
sudo apt full-upgrade
sudo needrestart -r l
sudo reboot

После перезагрузки проверьте, что загрузилось новое ядро и что работают сеть, звук, Wi-Fi, спящий режим. Для сервера — что поднялись сервисы и доступ по SSH.

uname -r
systemctl --failed
journalctl -b -p err
ip a

Нужна ли перезагрузка

Да, если вы не используете livepatch. Ядро загружается в память при старте, и замена файлов на диске не меняет работающее ядро. Проверить, применяется ли livepatch:

sudo pro status
sudo canonical-livepatch status --verbose

Livepatch удобен для серверов, но не покрывает все уязвимости и не отменяет плановые окна обслуживания. Для домашней машины проще перезагрузиться.

Если новое ядро не загружается

Выберите предыдущее ядро в меню GRUB. Если меню скрыто, удерживайте Shift или Esc. Загрузившись, проверьте журнал и пакеты, затем откатите или дождитесь исправления.

journalctl -k -b -1 | tail -100
dkms status
apt list --installed | grep linux-image

Частая причина — сторонний модуль (NVIDIA, VirtualBox, ZFS), который не собрался под новое ядро. Проверьте DKMS и переустановите драйвер после обновления заголовков.

sudo apt install linux-headers-$(uname -r)
sudo dkms autoinstall
dkms status

Контейнеры и виртуальные машины

Обновление ядра хоста закрывает уязвимости, которые могут позволить выйти из контейнера. Гостевые системы нужно обновлять отдельно: их ядра не меняются вместе с хостом. Для виртуальных машин проверьте, что гипервизор и гостевые дополнения совместимы с новым ядром.

# проверить версии ядра в контейнерах не получится: они используют ядро хоста
docker info | grep -i kernel
# в VM
uname -r

Если контейнеры запускаются с --privileged, риск выше. Ограничьте capabilities и не монтируйте /proc, /sys и Docker-сокет без необходимости.

Проверка статуса безопасности

В Ubuntu есть инструменты, показывающие поддержку пакетов и доступные обновления. Они полезны для инвентаризации, но не заменяют чтение USN.

pro security-status
ubuntu-security-status
apt list --upgradable

Для парка машин автоматизируйте сбор версий ядра и статуса перезагрузки. Машина, которая «обновилась», но не перезагрузилась, всё ещё уязвима.

Порядок действий для продакшена

  1. Прочитайте USN и оцените, какие системы затронуты.
  2. Проверьте обновление на тестовом узле.
  3. Составьте окно обслуживания и уведомите пользователей.
  4. Обновите, перезагрузите, проверьте сервисы.
  5. Зафиксируйте версии и результат в журнале.

Не обновляйте все серверы одновременно: канареечный узел поможет поймать проблему до массового развёртывания.

Автоматизация и контроль перезагрузки

Чтобы не пропускать такие обновления, настройте автоматическую установку security-пакетов. В Ubuntu это делает unattended-upgrades; ядро можно включить в список, но перезагрузку всё равно придётся планировать отдельно.

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
systemctl status unattended-upgrades --no-pager

Файл /var/run/reboot-required показывает, что система ждёт перезагрузки. Его наличие удобно проверять в мониторинге и на дашборде, иначе машина может месяцами работать на уязвимом ядре.

test -f /var/run/reboot-required && echo reboot-needed
cat /var/run/reboot-required.pkgs 2>/dev/null

Для парка серверов настройте алерт на этот файл и отдельное окно обслуживания. Для домашней машины достаточно привычки перезагружаться после крупных обновлений и проверять uname -r.

И не отключайте автоматические обновления ради «стабильности»: современные LTS достаточно предсказуемы, а отложенный патч безопасности обходится дороже редкой несовместимости.

Облачные и минимальные образы

В облаках и Ubuntu Core ядро может обновляться не через apt, а через образ или snap. Проверьте, как именно управляется система: для cloud-init образов обновление часто требует пересоздания инстанса или отдельного канала. Для Ubuntu Core используйте snap refresh и проверяйте, что новая ревизия ядра загрузилась.

snap list | grep -i kernel
snap changes | tail

Не считайте, что «облако само обновит»: ответственность за гостевую систему обычно на пользователе. Уточните у провайдера политику патчей и сроки перезагрузки.

Итог

Обновление ядра Ubuntu с 19 исправлениями — стандартная гигиена безопасности. Проверьте ветку ядра, установите пакеты, перезагрузитесь и убедитесь, что система работает. Если перезагрузка невозможна, используйте livepatch и компенсационные меры, но не откладывайте патч бессрочно.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте