релиз , продължаваща развитието на клона с пълна реализация на контролер на домейна и услуга Active Directory, съвместима с реализацията на Windows 2000 и способна да обслужва всички поддържани версии на Windows клиенти от Microsoft, включително Windows 10. Samba 4 е многофункционален сървърен продукт, предлагащ също реализация на файлов сървър, услуга за печат и сървър за идентификация (winbind).
Ключови в Samba 4.12:
- В кодовата база са премахнати вградените реализации на криптографски функции в полза на използването на външни библиотеки. За основна криптобиблиотека е решено да се използва GnuTLS (изисква се минимум версия 3.4.7). Освен намаляване на възможните заплахи, свързани с открития на уязвимости във вградените реализации на криптоалгоритми, преминаването към GnuTLS също позволи значително повишаване на производителността при използване на криптиране в SMB3. При тестване с реализация на клиент CIFS от ядрото на Linux 5.3 е забелязано повишение на скоростта на запис с 3 пъти и на четене с 2.5 пъти.
- Добавен е нов бекенд за търсене на SMB дялове с използване на протокола , базиран на търсещия механизъм (по-рано беше предоставен бекенд на базата на ). Включена е също утилита „mdfind“ с реализация на клиент, позволяващ изпращане на търсителски запитвания към всеки SMB сървър, на който е активиран RPC-сервис Spotlight. Стойността на настройката „spotlight backend“ по подразбиране е променена на „noindex“ (за Tracker или Elasticsearch стойностите трябва изрично да бъдат зададени на „tracker“ или „elasticsearch“).
- Променено е поведението на операциите ‘net ads kerberos pac save’ и ‘net eventlog export’, които вече не презаписват файла, а в случай на опит за експортиране в съществуващ файл извеждат грешка.
- В samba-tool е подобрено добавянето на контактни записи за членове на групи. Ако преди чрез командата ‘samba-tool group addmemers’ беше възможно просто да добавяте потребители, групи и компютри като нови членове на група, сега е добавена поддръжка за добавяне на контакти като членове на групи.
- В samba-tool е разрешено филтрирането по организационни подразделения (OU, Organizational Unit) или поддървета. Добавени са нови флагове „—base-dn“ и „—member-base-dn“, които дават възможност да се извърши операция само с определена част от дървото Active Directory, например, само в рамките на едно подразделение OU.
- Добавен нов VFS модул ‘io_uring’, използващ новия интерфейс на ядрото на Linux за асинхронен вход/изход. Io_uring поддържа polling за вход/изход и може да работи с буфериране (предишно предлаганият механизъм «aio» не поддържаше буфериран вход/изход). При работа с включен polling, io_uring значително надминава aio по производителност. В момента на базата на io_uring в Samba е реализирана поддръжка на SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV и намалени разходи за поддържане на пул от многопотоци (threadpool) в пространство на потребителя, при прилагане на предложеното по подразбиране VFS backend. За изграждане на VFS модула ‘io_uring’ е необходима библиотека и ядро на Linux 5.1+.
- В VFS е осигурена възможност за задаване на специална стойност на времето UTIME_OMIT за маркиране на необходимостта от игнориране на времето в функцията SMB_VFS_NTIMES().
- В smb.conf поддръжката на параметъра «write cache size» е прекратена, тъй като той е загубил смисъл след появата на поддръжка на io_uring.
- В Samba-DC и Kerberos е прекратена поддръжката на криптиране с алгоритъра DES. В Heimdal-DC кодът на weak-crypto е премахнат.
- Премахнат е модулът vfs_netatalk, който е останал без поддръжка и е загубил актуалност.
- Обявен за остарял backend BIND9_FLATFILE, който ще бъде премахнат в един от следващите версии.
- Библиотеката zlib е включена в сборочните зависимости. Вграденият вариант на zlib е премахнат от кодовата база (кодът е основан на стара версия на zlib, при която поддръжката на криптиране не работеше нормално).
- Настроено е fuzzing тестване на кодовата база, включително в услугата
oss-fuzz. По време на fuzzing тестването са открити и коригирани множество грешки. - Изискванията за минимална версия на Python са повишени от Python
3.4 до Python 3.5. Възможността за изграждане на файлов сървър с Python 2 остава запазена (преди стартиране на . /configure’ и ‘make’ трябва да се зададе променливата на средата ‘PYTHON=python2’).
Източник: opennet.ru
