Після 6 місяців розробки представлений реліз Samba 4.24.0, що продовжив розвиток гілки Samba 4 з повноцінною реалізацією контролера домену та сервісу Active Directory, сумісного з реалізацією Windows Server і здатного обслуговувати всі підтримувані Microsoft версії Windows-клієнтів, у тому числі Windows 11. Samba 4 є багатофункціональним серверним продуктом, що надає також реалізацію файлового сервера, сервісу друку та сервера ідентифікації (winbind). Код проекту написаний мовою Сі та розповсюджується під ліцензією GPLv3.
Ключові зміни в Samba 4.24:
- Додано новий VFS-модуль vfs_aio_ratelimit для обмеження інтенсивності (rate-limit) операцій асинхронного вводу/виводу (AIO). Обмеження можуть задаватися в байтах за секунду або в операціях за секунду. При перевищенні заданого ліміту модуль починає підставляти штучні затримки в асинхронні операції підтримки заданого верхнього порогу.
- У VFS-модулі vfs_ceph_new додано підтримку RPC-протоколу Keybridge та режиму FSCrypt для шифрування даних та імен файлів у файловій системі CephFS. Можливе включення шифрування лише на рівні окремих каталогів.
- У VFS-модуль vfs_streams_xattr, що дозволяє зберігати альтернативні набори даних NTFS (NTFS alternate data stream) у розширених атрибутах файлів (xattr) Linux, додано налаштування «streams_xattr:max xattrs per stream», що визначає допустиме число xattr, які застосовуються для зберігання даних. У Linux xattr обмежений 65536 байтами, але ФС XFS дає можливість прив'язувати до одного файлу більше одного xattr, що дозволяє використовувати кілька xattr для зберігання до 1 МБ альтернативних даних.
- Реалізовано підтримку аудиту інформації, пов'язаної з аутентифікацією. Додані класи налагодження «dsdb_password_audit» та «dsdb_password_json_audit» для відображення в лозі змін атрибутів Active Directory: altSecurityIdentities, dNSHostName, msDS-AdditionalDnsHostName, msDS-KeyCredentialLink і servicePrincipalName.
- Додано підтримку зовнішніх систем керування паролями Microsoft Entra ID і Keycloak, які використовують при зміні пароля операцію скидання пароля (SSPR, password reset) без передачі старого пароля до контролера домену. Для дотримання політик, що контролюють час дії паролів, при скиданні пароля передаються додаткові параметри (password policy hints), що дозволяють обробляти операцію як звичайну зміну пароля. Тепер Samba враховує подібні параметри при застосуванні пов'язаних із паролями локальних політик.
- Додана підтримка механізму автентифікації Kerberos PKINIT KeyTrust, що дає можливість у контролерах домену на базі Samba та Heimdal KDC, використовувати метод «Windows Hello for Business Key-Trust logons» для застосування механізму аутентифікації PKINIT із самопідписаними ключами. Для додавання та перегляду відкритого ключа в утиліту samba-tool додано команду "user|computer keytrust". Відомості про відкритий ключ зберігаються в обліковому записі за допомогою атрибута msDS-KeyCredentialLink.
- У контролери домену на базі Samba та Heimdal KDC додано підтримку розширення протоколу Kerberos PKINIT для мапінгу ключів («Windows Strong and Flexible key mappings»), що застосовується при аутентифікації за відкритими ключами. За замовчуванням допускається лише точне зіставлення сертифікатів («strong certificate binding enforcement = full»), але можливе і гнучке зіставлення («strong certificate binding enforcement = compatibility»), що допускає сертифікати нового облікового запису користувача. Дані про картку сертифікатів для облікового запису зберігаються в атрибуті altSecurityIdentities
- Додано підтримку розширення протоколу «Kerberos PKINIT SID», що дозволяє використовувати під час автентифікації сертифікати з ідентифікатором Object SID. Для підпису сертифікатів в утиліту samba-tool додано команду "user|computer generate-csr".
- За умовчанням KDC (Key Distribution Center) забезпечено повернення структури PAC (Privilege Attribute Certificate), що містить дані про повноваження користувача, незалежно від того, чи вказано поле PA-PAC-REQUEST у запиті клієнта. Для повернення старої поведінки передбачено налаштування "kdc always generate pac = no".
- У KDC додано налаштування "kdc require canonicalization", при виставленні якого в значення "yes" клієнт зобов'язаний вимагати виконання канонізації імені користувача при зверненні до сервера автентифікації (AS_REQ) Якщо канонізація не була запитана, сервер поверне помилку «користувач невідомий». У мережах з користувачами, які використовують ОС Windows, активація нової настройки не повинна викликати проблем, оскільки Windows-клієнти за замовчуванням завжди вимагають канонізацію.
Обов'язкова канонізація дозволяє захиститися від атак класу "dollar ticket", що маніпулюють тим, що імена користувачів можуть задаватися по-різному ("user" і "user$") і по-різному оброблятися в канонізованому і звичайному поданні. Суть атаки в тому, що зловмисник, наприклад, міг створити в AD обліковий запис комп'ютера з ім'ям root$ і використовувати її для отримання у KDC мандата (ticket), отруївши в запиті ім'я користувача root замість root$. KDC не знайшовши користувача root, обробив би запит у контексті користувача root$ і видав мандат, який можна використовувати для підключення під користувачем root через SSH або NFS до Linux-сервер з SSSD.
- У KDC додано обхідний варіант захисту від атак "dollar ticket" для конфігурацій з відключеними обов'язковими запитами канонізації імен (kdc require canonicalization = no, застосовується за умовчанням). За замовчуванням, якщо клієнт не запросив виконання канонізації і ім'я, що перевіряється, не знайдено, сервер виконує додаткову перевірку, прикріпивши символ «$» до імені. За допомогою нової настройки "kdc name match implicit dollar without canonicalization = no" можна відключити цю поведінку і виконувати тільки точні перевірки (у контексті вищезгаданої атаки, сервер не перевірятиме ім'я "root$" при запиті "root").
- У Heimdal KDC за замовчуванням включено відправлення сервісам Kerberos тільки канонізованих імен (sAMAccountName з PAC) замість вихідного значення cname. Для повернення старої поведінки передбачено налаштування "krb5 acceptor report canonical client name = no".
- Для повноцінного захисту від атак «dollar ticket» рекомендується виставити налаштування: strong certificate binding enforcement full kdc
- Для блокування вразливості CVE-2026-20833 метод шифрування домену в налаштуваннях KDC за замовчуванням змінено на AES (налаштування kdc default domain supported enctypes виставлено в aes128-cts-hmac-sha1-96 aes256-cts-hmac
Джерело: opennet.ru
