След шестмесечно развитие беше представен релиз Samba 4.25.0, който продължава развитието на клона Samba 4 с пълна реализация на контролера на домейна и услугата Active Directory, съвместими с реализацията на Windows Server и способен да обслужва всички поддържани версии на Windows клиенти, включително Windows 11. Samba 4 е многофункционален сървърен продукт, предоставящ също реализиране на файлов сървър, услуга за печат и сървър за идентификация (winbind). Кодът на проекта е написан на C и се разпространява под лиценз GPLv3.
Ключови промени в Samba 4.25:
- В реализацията на протокола SMB3 е добавена експериментална поддръжка на постоянни файлови дескриптори (SMB2_CAP_PERSISTENT_HANDLES), позволяващи на клиентите да продължат работа с отворени файлове след прекъсване на мрежовата връзка, рестартиране сървър или преминаване на натоварването на резервен сървър. Постоянните дескриптори позволяват да се избегне повторно отваряне на файлове след срив на сървъра, което е особено актуално при хостинг на файлови сървър Samba виртуални машини и клъстерни БД.
За работа е необходимо да се осигури експлозивен достъп до SMB хранилището и да се деактивират настройките „kernel oplocks“, „kernel share modes“ и „posix locking“, което нарушава съвместимостта с POSIX и NFS, а също така значително намалява производителността поради синхронното записване на метаданни на диска при всяка операция. Предложени са два режима на осигуряване на отказоустойчивост: full_outage (по подразбиране) – създава се локално резервно копие на състоянието, позволяващо запазване на дескриптори дори след пълни откази на клъстера, но увеличава натоварването; partial_outage – по-бърза работа без резервно копие, но дескрипторите се губят, ако всички възли на клъстера паралелно излязат от строя.
- Добавен е VFS модул vfs_aio_ratelimit, позволяващ задаване на ограничение на интензивността на заявките (rate limit), действащо в контекста на целия клъстер, а не само в привързването към отделни възли. За координиране на глобалното прилагане на ограниченията на всеки възел трябва да бъде стартиран фонов процес ratelimitd, агрегиращ активността на всички процеси smbd на възела и предаващ информация на другите възли на клъстера. Включването на vfs_aio_ratelimit се извършва на етапа на компилация чрез задаване на опция „—with-ratelimitd“.
- Добавен е VFS модул vfs_ceph_rgw за Ceph RGW (Object Gateway), който позволява експорт на данни от 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).
Източник: opennet.ru
