Компания Red Hat опубликовала релиз дистрибутива Red Hat Enterprise Linux 9.3 (новая ветка была анонсирована на прошлой неделе, но примечания к релизу были размещены только вчера, а до этого на сайте оставался признак бета-версии). Обновление прошлой ветки RHEL 8.9 ожидается 15 ноября. Готовые установочные образы доступны для зарегистрированных пользователей Red Hat Customer Portal (для оценки функциональности также можно использовать iso-образы CentOS Stream 9 и бесплатные сборки RHEL для разработчиков). Выпуск сформирован для архитектур x86_64, s390x (IBM System z), ppc64le и Aarch64 (ARM64).
Ветка RHEL 9 развивается с более открытым процессом разработки и использует в качестве основы пакетную базу CentOS Stream 9. CentOS Stream позиционируется как upstream-проект для RHEL, дающий возможность сторонним участникам контролировать подготовку пакетов для RHEL, предлагать свои изменения и влиять на принимаемые решения. В соответствии с 10-летним циклом поддержки дистрибутива RHEL 9 будет сопровождаться до 2032 года.
RHEL 9.3 стал первым выпуском, исходные тексты rpm-пакетов которого не размещены в публичном репозитории git.centos.org и предоставляются клиентам компании только через закрытый раздел сайта, на котором действует пользовательское соглашение (EULA), запрещающее редистрибуцию данных, что не позволяет использовать эти пакеты для создания производных дистрибутивов. Исходные тексты остаются доступны в репозитории CentOS Stream, но он полностью не синхронизирован с RHEL и в нём не всегда самые свежие версии пакетов совпадают с пакетами из RHEL. Rocky Linux, Oracle и SUSE объединили усилия и теперь воспроизводят исходные тексты rpm-пакетов релизов RHEL в рамках проекта OpenELA.
Ключевые изменения в RHEL 9.3:
- В состав включены новые версии компиляторов и инструментов для разработчиков: GCC Toolset 13, LLVM Toolset 16.0.6, Rust Toolset 1.71.1, Go Toolset 1.20.10, GCC 11.4.1 (системный компилятор), Redis 7, Node.js 20, java-21-openjdk (также продолжают поставляться java-17-openjdk, java-11-openjdk и java-1.8.0-openjdk), Valgrind 3.21, SystemTap 4.9, elfutils 0.189, PCP 6.0.5, Grafana 9.2.10.
- Обновлены серверные и системные пакеты: samba 4.18.6, iproute 6.2.0, Apache httpd 2.4.57 (+ добавлен модуль mod_authnz_fcgi), SEtools 4.4.3, OpenSCAP 1.3.8, opencryptoki 3.21.0, NetworkManager 1.44, xdp-tools 1.4.0, perf 6.2, dmpd 1.0.2, nvme-cli 2.4, Pacemaker 2.1.6, 389-ds-base 2.3.4.
- В пакетный менеджер DNF добавлена команда “reboot” для автоматической перезагрузки после завершения обновления. Доступны следующие режимы: “never” (по умолчанию) – без перезагрузки, “when-changed” – перезагрузка после любого обновления (dnf upgrade) и “when-needed” – перезагрузка, только если того требуют установленные изменения (например, после установки обновления ядра или systemd). Для выключения вместо перезагрузки предусмотрен параметр “–poweroff”.
- В DNF добавлены новые плагины: “dnf leaves” для показа всех установленных пакетов, которые не являются зависимостями для других пакетов; “show-leaves” для показа недавно установленных подобных пакетов или пакетов, которые перестали использоваться как зависимости после транзакции.
- Из свежей версии ядра Linux перенесены реализации протоколов SCTP (Stream Control Transmission Protocol) и MPTCP (Multipath TCP).
- На платформе ARM64 реализована полная поддержка камер с интерфейсом USB, беспроводных адаптеров (Wi-Fi) и Bluetooth.
- Обеспечена полная поддержка дискретных видеокарт Intel Arc A-Series (Alchemist или DG2).
- Реализация подсистемы eBPF синхронизирована с ядром Linux 6.3.
- Добавлен инструментарий Stratis для управления локальными накопителями, предоставляющий такие возможности, как динамическое выделение места в хранилище, снапшоты, обеспечение целостности и создание слоёв для кэширования.
- В systemd-udevd внесены изменения, позволяющие назначать не меняющиеся имена для сетевых интерфейсов InfiniBand.
- В Postfix реализована возможность проверки DNS-записей SRV для определения хоста и порта почтового сервера, который будет использован для передачи сообщений. Предложенную возможность можно использовать в инфраструктурах, в которых для доставки почтовых сообщению используются сервисы с динамически выделяемыми номерами сетевых портов.
- В пакет cups-filters добавлен драйвер LF-to-CRLF, который можно использовать для преобразования символов “n” (перевод строки) в “rn” (возврат каретки и перевод строки) для принтеров, поддерживающих только обработку файлов с концом строки “rn”.
- В FUSE3 добавлена возможность аннулирования элемента каталога без автоматического отмонтирования точек монтирования, связанных с этим элементом.
- В NetworkManager добавлена поддержка опции “no-aaaa” в resolv.conf, отключающей отправку DNS-запросов записей AAAA (определение адреса IPv6 по имени хоста). Добавлена поддержка опции “lacp_active” для управления обработкой кадров LACPDU (Link Aggregation Control Protocol Data Units). Реализован перезапуск NetworkManager после перезапуска сервиса dbus. Обеспечен вывод уведомления в случае использование для профилей соединений старого формата конфигурации ifcfg. Добавлена поддержка свойств: link.tx-queue-length, link.gro-max-size, link.gso-max-segments и link.gso-max-size.
- Для одного и того же сетевого интерфейса в NetworkManager разрешено использование как статических, так и динамических (DHCP) настроек, например, утилитой nmstate можно выставить статический адрес для интерфейса, на котором включена поддержка DHCP. В nmstate разрешена привязка настроек к сетевому интерфейсу по MAC-адресу, вместо имени интерфейса.
- Расширена поддержка оборудования. Добавлена поддержка CPU ARM64 NVIDIA Grace. Из ядра Linux 6.2 перенесён драйвер Intel QAT с поддержкой устройств Intel Quick Assist Technology 401xx/402xx.
- Для защиты от атак Spectre v2, связанных со спекулятивным выполнением инструкций, добавлен режим AutoIBRS (Automatic Indirect Branch Restricted Speculation), поддерживаемый в CPU AMD, начиная с семейства EPYC 9004 Genoa.
- Для контейнеров предоставлена возможность использования виртуальных чипов для хранения криптографических ключей (vTPM), реализуемых на базе общего физического TPM (Trusted Platform Module).
- В LVM добавлена поддержка логических разделов vmcore для дампов ядра, создаваемых подсистемой kdump.
- В установочные сборки добавлен параметр “inst.wait_for_disks”, задающий время ожидания загрузки kickstart-файла или готовности драйверов в процессе загрузки.
- В инсталляторе при установке на системы ARM предоставлена возможность выбора варианта устанавливаемого ядра (например, с 64 Кб страницами памяти). Из минимального режима установки исключён пакет s390utils-base и оставлен только s390utils-core.
- В сборщике образов RHEL добавлена возможность генерации файлов в формате OVA для VMware VSphere.
- В kickstart-файлы в команду network добавлены новые опции “–ipv4-dns-search” и “–ipv6-dns-search” для задания базовых доменов для директивы “search” в /etc/resolv.conf, а также опции “–ipv4-ignore-auto-dns” и “–ipv6-ignore-auto-dns” для игнорирования получения настроек DNS через DHCP.
- Улучшена поддержка TLS-расширения EMS (Extended Master Secret, RFC 7627, необходимого для обеспечения соблюдения требований FIPS-140-3 в соединениях на базе TLS 1.2 .
- В OpenSSH началось избавление от использования алгоритмов на базе хэшей SHA-1 в пользу SHA-2. Если на сервере отсутствуют ключи на базе SHA-1 в sshd теперь будет использовать только SHA-2 для подтверждения хотстовых ключей, что может привести к несовместимости с клиентами RHEL 8 и более старых выпусков.
- В OpenSSL добавлена поддержка настройки параметров защищённых эллиптических кривых Brainpool и реализована защита от атак по расшифровке RSA на основе измерения времени операций, использующих варианты метода Блейхенбахера.
- В RPCSEC GSS Kerberos V5 добавлена поддержка методов шифрования camellia128-cts-cmac, camellia256-cts-cmac, aes128-cts-hmac-sha256-128 и aes256-cts-hmac-sha384-192.
- В средства аудита добавлена поддержка событий FANOTIFY и сохранение в логе полей fan_type (тип события), fan_info (связанная информация), sub_trust и obj_trust (уровни доверия для субъекта и объекта события).
В сервис fapolicyd для упрощения отладки проблем добавлена передача номеров правил для отклонённых обращений к API fanotify. - Добавлена системная роль для инструментария keylime, упрощающая настройку регистратора и верификатора Keylime, применяемых для подтверждения подлинности и непрерывного отслеживания целостности внешней системы. Например, можно удостовериться в подлинности Edge- и IoT-устройств, находящихся в неподконтрольном месте, в котором возможен несанкционированный доступ. Задействован новый выпуск keylime 7.3.
- Добавлена системная роль для управления юнитами systemd и их установки. Добавлена системная роль для установки, настройки, управления и запуска СУБД PostgreSQL. В системную роль firewall добавлена поддержка определения, изменения и удаления ipset-ов.
- В SELinux добавлена опция virt_qemu_ga_run_unconfined, позволяющая процессу qemu-ga (QEMU Guest Agent) выполнять в незащищённом режиме (домен unconfined_t) команды, такие как mount, изначально ограниченные через SELinux. Добавлены политики SELinux для защиты сервисов qat, systemd-pstore, boothd, fdo-manufacturing-server, fdo-rendezvous-server, fdo-client-linuxapp и fdo-owner-onboarding-server.
- Добавлена поддержка средств виртуализации 4 поколения процессоров Intel Xeon Scalable (Sapphire Rapids), что позволяет использовать в виртуальных машинах модель CPU SapphireRapids и задействовать доступные в данных процессорах расширенные возможности виртуализации.
- В Podman добавлена поддержка контейнеров, сжатых с использованием алгоритма zstd. Добавлена возможность использования Quadlets для автоматической генерации сервисов systemd из описаний контейнеров. Добавлена оболочка podmansh, которую можно использовать вместо /usr/bin/bash для запуска сеанса пользователя в контейнере. Обновлены версии Podman, Buildah, Skopeo, crun и runc.
- Добавлены новые параметры командной строки ядра:
- amd_pstate для управления режимов энергопотребления CPU AMD;
- arm64.nosve для отключения SVE (Scalable Vector Extension);
- arm64.nosme для отключения SME (Scalable Matrix Extension);
- gather_data_sampling для управления режимом защиты от атак GDS (Gather Data Sampling или Downfall);
- nospectre_bhb для отключения защиты Spectre-BHB;
- trace_clock для выставления таймера событий трассировки.
- Расширены возможности для кластеров и отказоустойчивых систем: В агент LVM-activate добавлена поддержка замены (failover) групп разделов, в которых отсутствуют физические разделы. В агенты ресурсов кластера IPaddr2 и IPsrcaddr добавлена поддержка policy routing. В агент ocf:heartbeat:Filesystem добавлена поддержка ФС EFS (Amazon Elastic File System).
- В редакции “RHEL for Edge” реализована поддержка новых типов образов “minimal-raw”, “edge-vsphere” (*.vmdk) и “edge-ami” (*.ami). Добавлены новые образы контейнеров с настройками FDO (FIDO Device Onboard): fdo-manufacturing-server, fdo-owner-onboarding-server, fdo-rendezvous-server и fdo-serviceinfo-api-server. Добавлен новый образ контейнера rhel9/squid с прокси-сервером Squid.
- В AMI-образы для облачных окружений AWS EC2 добавлена поддержка загрузки в режиме UEFI.
- Для работы со смарткартами и USB-токенами CCID (Chip Card Interface Device) и ICCD (Integrated Circuit Card Device) задействован новый выпуск драйвера pcsc-lite-ccid 1.5.2, в котором решены проблемы с контроллером Alcor Micro AU9560 и добавлена поддержка новых ридеров смарт-карт.
- Объявлены устаревшими пакеты initial-setup и pmdk (Persistent Memory Development Kit).
- Добавлена экспериментальная поддержка протоколов PRP (Parallel Redundancy Protocol) и HSR (High-availability Seamless Redundancy).
- Добавлена экспериментальная возможность аппаратного ускорения IPsec через вынос операций инкапсуляции пакетов на сторону сетевой карты.
- Добавлена экспериментальная поддержка SRv6 (Segment Routing over IPv6).
- Экспериментальная реализация kTLS (TLS на уровне ядра) синхронизирована с яром 6.3. Добавлена поддержка использования kTLS для ускорения GnuTLS.
- Добавлена экспериментальная поддержка интерфейса асинхронного ввода/вывода io_uring, примечательного поддержкой полинга (polling) ввода/вывода и возможностью работы как с буферизацией, так и без буферизации. В API io_uring разработчики ядра попытались устранить недостатки старого интерфейса aio. По производительности io_uring очень близок к SPDK и существенно опережает libaio при работе с включённым полингом.
- В IdM (Identity Management) добавлена экспериментальная поддержка протокола управления сертификатами ACME (Automated Certificate Management Environment), применяемого в удостоверяющем центре Let’s Encrypt.
- Добавлена экспериментальная возможность использования бэкенда хранения на базе SQLite (вместо BoltDB) в Podman.
- Продолжено предоставление экспериментальной (Technology Preview) поддержки:
- VPN WireGuard,
- Intel SGX (Software Guard Extensions),
- Intel IDXD (Data Streaming Accelerator),
- DAX (Direct Access) для ext4 и XFS,
- AMD SEV и SEV-ES в гипервизоре KVM,
- сервиса systemd-resolved,
- механизма Sigstore для верификации контейнеров по цифровым подписям,
- пакета с графическим редактором GIMP 2.99.8,
- настройки MPTCP (Multipath TCP) через NetworkManager,
- DNSSEC в IdM,
- virtio-mem,
- гипервизора KVM для ARM64,
- установки на NVMe поверх Fibre Channel,
- Socket API для TuneD,
- Soft-iWARP (Internet Wide-area RDMA Protocol),
- GNOME для ARM64 и IBM Z.