Два дня назад Canonical выпустила Ubuntu 24.04 LTS с кодовым названием Noble Numbat. Эта версия будет поддерживаться дольше обычного — 12 лет вместо стандартных 3-5 лет. В статье расскажем про главные изменения в новой версии, особенно обратим внимание на серверную сторону.

Ядро Linux

В этой версии ядро Linux обновлено до версии 6.8 — за счёт этого улучшена производительность  системных вызовов, есть поддержка вложенного KVM в ppc64el и доступ к новой файловой системе bcachefs. 

Помимо улучшений исходного кода, в Ubuntu 24.04 LTS объединили функции ядра с малой задержкой в ​​ядро ​​по умолчанию. За счёт этого получилось уменьшить задержку при использовании  задач ядра.

Обновления ПО

Появились следующие версии: GCC 14-pre, LLVM 18, Python 3.12, OpenJDK 21 (доступны к выбору OpenJDK 8, 11 и 17), Rust 1.76, Go 1.22, .NET 8, PHP 8.3.3, Ruby 3.2.3. Обновили также и эти приложения: Firefox 124 (собран с поддержкой Wayland), LibreOffice 24.2, Thunderbird 115, Ardour 8.4.0, OBS Studio 30.0.2, Audacity 3.4.2, Transmission 4.0, digiKam 8.2.0, Kdenlive 23.08.5, Krita 5.2.2.

Серверные обновления

Apache2

Пакет обновился до версии 2.4.58. Главные изменения:

  • В mod_http2 частично переписали способы обработки подключений и потоков. APR pollset и pipes теперь выполняют мониторинг вместо прерывистых временных ожиданий. 

  • Добавили автоматический статус в mod_md, используя формат, аналогичный mod_proxy_balancer. Теперь управлять сертификатами можно через службу tailscale secure networking service.

  • mod_md устраняет проблемы с обновлением сертификата и получает новую директиву MDCertificateAuthority для отработки отказа при обновлении, а также конфигурационные директивы MDRetryDelay и MDRetryFailover.

  • mod_md также получает новые директивы MDMatchNames и MDChallengeDns01Version для большего контроля конфигурации над доменами MD и вызовами.

  • Поддерживается управление конфигурациями mod_md с помощью локального демона tailscale.

  • Поддерживается библиотека pcre2 (10.x) вместо устаревшей библиотеки pcre (8.x) для вычисления регулярных выражений.

  • В mod_proxy добавлены различные усовершенствования и исправления серверной части, в том числе корректное определение поддержки AJP / CPING.

  • Устранили проблемы с событиями MPM при перезапуске и обслуживании в режиме ожидания.

Docker

Пакет docker.io 21 обновили до версии 24.0.7. В нем исправили ошибки и обновили зависимости. Он содержит множество исправлений ошибок и обновлений зависимостей. Из важного — исправили повреждения данных при выводе zstd и добавили множество улучшений в серверной части хранилища контейнеров. 

Но есть момент: сохраняется ошибка, связанная с AppArmor, из-за которой контейнеры не могут быть оперативно остановлены. Причина — недавно добавили профиль AppArmor для runc. Контейнеры всегда уничтожаются с помощью SIGKILL из-за отказа в приеме сигнала. 

PostgreSQL

Обновили до версии 16.2. Основные изменения:

  • Теперь доступна стандартная команда SQL MERGE. Это позволяет создавать условные инструкции SQL, включая операции INSERT, DELETE и UPDATE в одной инструкции.

  • Появились новые функции, связанные с регулярными выражениями.

  • Есть новый формат jsonlog для вывода журналов с использованием структуры JSON.

  • Пользователи могут выполнять логическую репликацию из резервного экземпляра.

  • Добавили больше синтаксических функций из SQL/JSON, таких как JSON_ARRAY(), JSON_ARRAYAGG() и IS JSON.

  • Появилось несколько параметров клиентского подключения, ориентированных на безопасность. Среди них require_auth для указания принятых параметров аутентификации и sslrootcert="system" для использования хранилища доверенных центров сертификации (CA), предоставляемого операционной системой клиента.

Помимо этих примеров, обновлены и другие серверные пакеты: Nginx 1.24, Samba 4.19, Exim 4.97, Clamav 1.0.0, Chrony 4.5, containerd 1.7.12, Django 4.2.11, Dovecot 2.3.21, GlusterFS 11.1, HAProxy 2.8.5, Kea DHCP 2.4.1, libvirt 10.0.0, NetSNMP 5.9.4, OpenLDAP 2.6.7, open-vm-tools 12.3.5, Runc 1.1.12, QEMU 8.2.1, SpamAssassin 4.0.0, Squid 6.6, SSSD 2.9.4, Pacemaker 2.1.6, OpenStack 2024.1, Ceph 19.2.0, Openvswitch 3.3.0, Open Virtual Network 24.03.

Плагины для мониторинга

Микро-версии monitor-plugins обновлены до версии 2.3.5. Несколько интересных улучшений:

  • check_dhcp: Add dhcp rogue detection

  • check_icmp: Add support to Jitter, MOS and Score

  • check_smtp: Add support for SMTP over TLS

  • check_smtp: Add support for SNI

  • check_http: Implement chunked encoding decoding

  • check_curl: detect ipv6

  • check_by_ssh: Let ssh decide if a host is valid, enables usage of
    ssh .config file

  • check_curl: Add an option to check_curl to verify the peer
    certificate & host using the system CA’s

  • check_fping: Implements ‘host-alive’ mode

  • check_http: Support http redirect

  • check_ping: understand ping6

  • check_smtp: add -L flag to support LMTP (LHLO instead of
    HELO/EHLO).

  • check_snmp: Added option for null zero length string exit codes

Улучшение безопасности

  • В сочетании с пакетом apparmor ядро Ubuntu теперь ограничивает использование непривилегированных пользовательских пространств имен. 

  • Стало более последовательным применение системных конфигураций openssl и gnutls. Теперь apparmor теперь предоставляют доступ к их файлам конфигурации по умолчанию. 

  • Отключили 1024-bit ключи в репозитории RSA APT.

  • Удалили пакеты pptpd и bcrelay.

  • OpenSSH в Ubuntu больше не зависит от libsystemd — это сокращает количество зависимостей и делает его менее подверженным будущим проблемам безопасности.

  • Улучшили безопасность пакетов. Обновление устраняет многие нераскрытые уязвимости в системе безопасности.

Мы в SpaceWeb добавили на наши сервера последнюю версию Ubuntu уже через день после релиза, и сейчас продолжаем работать над интеграцией решений. Скоро добавим Docker, GitLab, node.JS, LAMP, LEMP, OpenVPN на Ubuntu 24.04. 

А какие обновления оказались самыми значимыми для вас?

Комментарии (7)


  1. grvelvet
    27.04.2024 09:02
    +2

    https://habr.com/ru/news/810517/


  1. Johan_Palych
    27.04.2024 09:02
    +5

    Эта версия будет поддерживаться дольше обычного — 12 лет вместо стандартных 3-5 лет.

    25 March 2024 Canonical expands Long Term Support to 12 years starting with Ubuntu 14.04 LTS
    https://canonical.com/blog/canonical-expands-long-term-support-to-12-years-starting-with-ubuntu-14-04-lts
    25.03.2024 Начиная с Ubuntu 14.04 время поддержки LTS-релизов будет увеличено до 12 лет
    https://www.opennet.ru/opennews/art.shtml?num=60848
    "Компания Canonical объявила о введении 12 летнего срока формирования обновлений для LTS-выпусков Ubuntu. Продление коснётся всех актуальных LTS-выпусков, начиная с Ubuntu 14.04, поддержка которого должна была истечь в апреле этого года, но теперь продлена до апреля 2026 года. Обновления для Ubuntu 24.04 будут формироваться до 2036 года, Ubuntu 22.04 - 2034, Ubuntu 20.04 - 2032 и т.п. Обновления, как и раньше, будут общедоступны в течение 5 лет после релиза, а остальные 7 лет будут предоставляться только пользователям сервиса Ubuntu Pro."


  1. ri_gilfanov
    27.04.2024 09:02

    Поставил Ubuntu Server 24.04 на виртуальную машину из официального ISO образа (сумма sha256 -- 8762f7e74e4d64d72fceb5f70682e6b069932deedb4949c6975d0f0fe0a91be3).

    Создал файл /etc/ssh/sshd_config.d/custom.conf с примерно следующими настройками:

    PermitRootLogin no
    PasswordAuthentication no
    PubkeyAuthentication no


    Match User username Address 1.2.3.4
    PubkeyAuthentication yes

    Грубо говоря, подключаться по SSH может только username, с IP адреса 1.2.3.4 и только по SSH ключу. То есть, приватная часть ключа должна быть на машине с которой подключаюсь, а публичная должна быть добавлена на сервер.

    Перезапускаю SSH сервис, что был переименован из sshd.service в ssh.service:

    systemctl restart ssh.service

    Пробую подключиться по SSH с указанным именем пользователя, но с неразрешённого IP адреса и без SSH ключа... Спрашивает пароль... Ввожу пароль... И, неожиданно, подключился!

    Может настройки не перечитались... Перезагружаю машину... Пробую ещё раз -- опять подключаюсь с другого IP адреса (что запретил), опять без SSH ключа (что запретил), опять спрашивает пароль и снова пароль принят (что запретил).

    В основном конфиге /etc/ssh/sshd_config явно указано Include /etc/ssh/sshd_config.d/*.conf. Может эта опация не работает? Давайте проверим, сменим в нашем /etc/ssh/sshd_config.d/custom.conf порт SSH с 22 на любой другой.

    Порт сменился, но запрет входа по паролю и ограничение по IP адресу не заработали.

    Любопытный релиз...


    1. ri_gilfanov
      27.04.2024 09:02

      Хм... Понял в чём проблема, в /etc/ssh/sshd_config.d/ откуда-то взялся файл 50-cloud-init.conf с параметром PasswordAuthentication yes...

      А я уже думал bug report заводить... Извиняюсь, ложная тревога.


      1. kt97679
        27.04.2024 09:02
        +1

        Скорее всего взялся из одноименного пакета.


      1. rendov
        27.04.2024 09:02
        +3

        Серверные убунты аж с 20.04 идут с 50-cloud-init.conf и нервируют невнимательных админов. Добро пожаловать в клуб.


  1. toppdf
    27.04.2024 09:02

    Медленный UI? Тупой кернел-менеджмент при загрузке, что требует переустановки?