Canonical выпустила обновления безопасности ядра для Ubuntu 22.04 LTS и 20.04 LTS, закрывающие восемь уязвимостей в ядре 5.15 LTS. Новая версия пакета — linux-image 5.15.0.46.46. Это второе обновление для систем, использующих HWE-ядро из Jammy.

Разберём, какие уязвимости исправлены, как обновиться и что проверить.

HWE-ядро

Ubuntu 20.04 LTS изначально поставлялась с ядром 5.4. Позже Canonical добавила HWE (Hardware Enablement) — ядро 5.15 из 22.04 для поддержки нового оборудования. Пользователи могут выбрать его, но тогда обновления приходят из ветки 22.04.

Проверьте, какое ядро у вас: это определяет, какой пакет обновлять.

uname -r
dpkg -l | grep -E "linux-image|linux-generic|linux-hwe" | tail -10
apt-cache policy linux-image-generic | head -20

Что исправлено

Среди уязвимостей — проблема в подсистеме netfilter и ошибка CVE-2022-2588 в реализации планировщика пакетов. Обе могут приводить к повышению привилегий или отказу в обслуживании при локальном доступе.

Точный список смотрите в USN-объявлении. Важно не название, а то, что патч закрывает пути эксплуатации.

# статус уязвимостей
for f in /sys/devices/system/cpu/vulnerabilities/*; do
  echo "$(basename $f): $(cat $f)"
done
# проверить журнал обновлений
grep -i "linux" /var/log/apt/history.log | tail -20

Как обновиться

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

sudo apt update
sudo apt full-upgrade
# проверить, что установлено новое ядро
dpkg -l | grep linux-image | tail
sudo reboot

После перезагрузки проверьте версию и состояние сервисов.

uname -r
systemctl --failed
journalctl -b -p err | tail -30
ip -br a

Livepatch

Если вы используете Ubuntu Pro/Advantage, livepatch может применить исправление без перезагрузки. Проверьте статус, но помните: не все патчи поддерживают live-применение.

canonical-livepatch status 2>/dev/null | head -20
systemctl status canonical-livepatch --no-pager 2>/dev/null | head

Планируйте перезагрузку в ближайшее окно, даже если livepatch активен.

Приоритет

Если сервер доступен из интернета или на нём работают многопользовательские сервисы, обновляйтесь быстро. Локальные уязвимости требуют доступа, но в контейнерах и на shared-хостах риск выше.

  1. Определите вектор атаки: локальный или удалённый.
  2. Проверьте, доступен ли сервис извне.
  3. Оцените наличие публичного эксплойта.
  4. Выберите срок: часы, дни или плановое окно.
  5. Задокументируйте решение.
# проверить внешние сервисы
ss -tulpn
sudo ufw status verbose
# список контейнеров
docker ps 2>/dev/null | head

Проверка после обновления

Убедитесь, что загрузилось новое ядро и что сторонние модули собрались. Если NVIDIA или VirtualBox не работают, проверьте DKMS.

uname -r
dkms status
lsmod | grep -E "nvidia|vbox|zfs"
journalctl -k -b | grep -iE "error|fail|firmware" | head -30

Если что-то сломалось, вернитесь на предыдущее ядро через GRUB и сохраните логи.

journalctl -k -b -1 | tail -100
ls /boot/vmlinuz-*

Автоматизация

Для парка машин используйте unattended-upgrades или систему управления конфигурацией. Настройте канареечный узел и проверяйте здоровье после обновления.

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
cat /etc/apt/apt.conf.d/50unattended-upgrades | head -40

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

Что делать, если обновление недоступно

Если вы используете ядро вне поддержки, обновитесь до поддерживаемой ветки. Для старых систем рассмотрите Ubuntu Pro с расширенной поддержкой или миграцию.

ubuntu-support-status 2>/dev/null | head -20
# проверить доступные версии
apt-cache search linux-image | grep generic | tail -10

Сетевые правила после обновления

Исправления в netfilter могут изменить поведение существующих правил. После перезагрузки проверьте, что файрвол загрузился и нужные порты открыты. Не оставляйте систему с пустым набором правил.

sudo iptables -S | head -30
sudo nft list ruleset 2>/dev/null | head -40
sudo ufw status verbose
sudo firewall-cmd --list-all 2>/dev/null

Если вы используете Docker или Kubernetes, проверьте, что цепочки NAT восстановились и контейнеры видят сеть.

docker network ls 2>/dev/null
docker run --rm alpine ping -c 1 1.1.1.1 2>/dev/null
kubectl get nodes 2>/dev/null

Для серверов с сложными правилами храните конфигурацию в репозитории и применяйте её автоматически. Ручные правки после перезагрузки забываются.

# пример сохранения правил (зависит от дистрибутива)
sudo iptables-save | sudo tee /etc/iptables/rules.v4
sudo ip6tables-save | sudo tee /etc/iptables/rules.v6

Проверка целостности после перезагрузки

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

sudo update-initramfs -u -k all
sudo update-grub
sudo fsck -f /dev/sda1 2>/dev/null
ls -la /boot/

На сервере с несколькими дисками проверьте SMART и состояние RAID. Обновление ядра — хороший повод для плановой проверки.

sudo smartctl -H /dev/sda
cat /proc/mdstat
zpool status 2>/dev/null

Сроки и коммуникация

Предупредите пользователей о перезагрузке заранее. Если сервис критичен, подготовьте резервный узел и проверьте, что переключение работает до окна обслуживания.

systemctl list-dependencies --reverse multi-user.target | head

Итоговая проверка

Убедитесь, что новая версия ядра загружается по умолчанию и что в GRUB остался запасной пункт. Это занимает минуту, но спасает при регрессии.

sudo grep -E "^menuentry|^submenu" /boot/grub/grub.cfg | head -10

Итог

Ubuntu 22.04 и 20.04 получили обновление ядра 5.15.0.46.46 с исправлением восьми уязвимостей, включая netfilter и CVE-2022-2588. Обновитесь, перезагрузитесь и проверьте сервисы и модули. Используйте livepatch, но планируйте перезагрузку. Для парка машин автоматизируйте процесс и тестируйте на канареечном узле.

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

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

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

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

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