Выпуск Samba 4.25.0 - QubStore

Выпуск Samba 4.25.0

После полугода работы команда Samba представила релиз 4.25.0 — обновление ветки 4 с полноценным контроллером домена и сервисом Active Directory, совместимым с Windows Server и обслуживающим все актуальные версии Windows-клиентов, включая Windows 11.

Samba 4 остаётся многофункциональным серверным продуктом: помимо службы каталогов, она закрывает задачи файлового сервера, печати и идентификации через winbind. Код написан на Си и распространяется по лицензии GPLv3.

В реализации протокола SMB3 появилась экспериментальная поддержка постоянных файловых дескрипторов (SMB2_CAP_PERSISTENT_HANDLES). Их смысл в том, что клиент продолжает работать с уже открытыми файлами даже после обрыва соединения, перезапуска сервера или переключения нагрузки на резервный узел — без повторного открытия. Это особенно ценно, когда на Samba-хранилище живут виртуальные машины и кластерные СУБД. Правда, за удобство приходится платить: нужен эксклюзивный доступ к SMB-хранилищу, а настройки kernel oplocks, kernel share modes и posix locking должны быть отключены. Это ломает совместимость с POSIX и NFS, а синхронная запись метаданных на диск при каждой операции заметно проседает по производительности. Предусмотрено два режима отказоустойчивости: full_outage (по умолчанию) — локальная резервная копия состояния сохраняет дескрипторы даже при полном отказе кластера, но повышает нагрузку; partial_outage — быстрее, без копии, однако дескрипторы пропадут, если все узлы выйдут из строя одновременно.

Добавлен VFS-модуль vfs_aio_ratelimit — он задаёт ограничение интенсивности запросов в масштабах всего кластера, а не отдельного узла. Для согласованного применения лимитов на каждом узле должен крутиться фоновый процесс ratelimitd, который агрегирует активность всех smbd и делится данными с другими узлами. Модуль включается на этапе сборки опцией «—with-ratelimitd». Ещё один новый модуль, vfs_ceph_rgw, даёт экспортировать данные из Ceph Object Gateway как SMB-хранилище с иерархическим представлением объектов в виде обычных файлов и каталогов и разграничением доступа на уровне POSIX uid/gid.

Появились уровни функциональности кластера — по аналогии с уровнями домена и леса в Active Directory. Они позволяют обновлять узлы поэтапно (rolling upgrade): форматы БД и внутреннего обмена сообщениями меняются только после явного поднятия уровня для всего кластера, так что узлы с разными версиями Samba продолжают совместимо сосуществовать. Управление — через команды «net clusterlevel features|show|showall|upgrade».

Для шифрования в домене теперь по умолчанию используются алгоритмы aes128-cts-hmac-sha1-96 и aes256-cts-hmac-sha1-96 (для доменов с уровнем функциональности 2008 и выше). Это блокирует проявление уязвимости CVE-2026-20833, связанной с ненадёжными методами шифрования в Windows Kerberos. В CTDB файлы с блокировками, PID и сокетами переехали в подкаталоги ctdb/, скрипт инициализации ctdb.init перемещён в ctdb/doc/examples, добавлен мониторинг хостов вроде DNS-серверов. Функция detect_init_style() и переменная CTDB_INIT_STYLE объявлены устаревшими — на смену им рекомендуется CTDB_PLATFORM_STYLE.

Ссылка на основную публикацию