Випуск Samba 4.12.0

представлений реліз Samba 4.12.0, що продовжив розвиток гілки Samba 4 з повноцінною реалізацією контролера домену та сервісу Active Directory, сумісного з реалізацією Windows 2000 та здатного обслуговувати всі підтримувані Microsoft версії Windows-клієнтів, у тому числі Windows 10. Samba 4 є багатофункціональним серверним продуктом, що надає також реалізацію файлового сервера, сервісу друку та сервера ідентифікації (winbind).

Ключові зміни у Samba 4.12:

  • З кодової бази видалено вбудовані реалізації криптографічних функцій на користь використання зовнішніх бібліотек. Як основна криптобібліотека вирішено використовувати GnuTLS (потрібна як мінімум версія 3.4.7). Крім зниження можливих загроз, пов'язаних з виявленням уразливостей у вбудованих реалізаціях криптоалгоритмів, перехід на GnuTLS також дозволив досягти суттєвого підвищення продуктивності при використанні шифрування SMB3. Під час тестування з реалізацією клієнта CIFS з ядра Linux 5.3 зафіксовано підвищення швидкості запису у 3 рази, а читання у 2.5 разу.
  • Додано новий бекенд для пошуку на SMB-розділах з використанням протоколу Прожектор, заснований на пошуковому движку Elasticsearch (Раніше надавалися бекенд на базі GNOME Tracker). До складу також додано утиліту "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 для асинхронного введення/виводу. Io_uring підтримує полінг вводу/виводу і може працювати з буферизацією (раніше запропонований механізм aio не підтримував буферизований введення/виведення). Працюючи з включеним полінгом по продуктивності io_uring істотно випереджає aio. В даний час на базі io_uring Samba реалізована підтримка SMB_VFS_{PREAD,PWRITE,FSYNC}_SEND/RECV і знижено накладні витрати на підтримку пула багатопоточного виконання (threadpool) у просторі користувача при застосуванні пропонованого за умовчанням бекенду VFS. Для складання VFS-модуля 'io_uring' потрібна наявність бібліотеки liburing та ядра Linux 5.1+.
  • У VFS забезпечена можливість вказівки спеціального значення часу UTIME_OMIT для позначення необхідності ігнорування часу функції SMB_VFS_NTIMES().
  • B smb.conf припинено підтримку параметра "write cache size", який втратив сенс після появи підтримки io_uring.
  • У Samba-DC та Kerberos припинено підтримку шифрування з використанням алгоритму DES. У Heimdal-DC видалено код weak-crypto.
  • Видалено модуль vfs_netatalk, який залишився без супроводу та втратив актуальність.
  • Оголошено застарілим бекенд BIND9_FLATFILE, який буде видалено в одному з наступних випусків.
  • Бібліотека zlib включена до складу складальних залежностей. Вбудована реалізація zlib видалена з кодової бази (код заснований на старій версії zlib, в якій нормально не працювала підтримка шифрування).
  • Налагоджено fuzzing-тестування кодової бази, у тому числі у сервісі
    oss-fuzz. У ході fuzzing-тестування виявлено та виправлено безліч помилок.

  • Вимоги до мінімальної версії Python підвищено з Python
    3.4 до Python 3.5. Можливість складання файлового сервера з Python 2 поки збережена (перед запуском ./configure' та 'make' слід встановити змінну оточення 'PYTHON=python2').

Джерело: opennet.ru

Додати коментар або відгук