Po 6 měsících vývoje byl vydán release Samba 4.24.0, který pokračuje ve vývoji větve Samba 4 s plnohodnotnou implementací doménového kontroleru a služby Active Directory, kompatibilní s implementací Windows Server a schopné obsluhovat všechny podporované verze klientů Windows, včetně Windows 11. Samba 4 je multifunkční serverový produkt, který také poskytuje implementaci souborového serveru, tiskové služby a serveru identifikace (winbind). Kód projektu je napsán v jazyce C a je šířen pod licencí GPLv3.
Klíčové změny v Samba 4.24:
- Byl přidán nový VFS modul vfs_aio_ratelimit pro omezení intenzity (rate-limit) operací asynchronního vstupu/výstupu (AIO). Omezení mohou být nastavena v bytech za sekundu nebo v operacích za sekundu. Při překročení nastaveného limitu modul začíná vkládat umělá zpoždění do asynchronních operací, aby udržel stanovený horní práh.
- Do VFS modulu vfs_ceph_new byla přidána podpora RPC protokolu Keybridge a režimu FSCrypt pro šifrování dat a názvů souborů v souborovém systému CephFS. Je možné povolit šifrování na úrovni jednotlivých adresářů.
- Do VFS modulu vfs_streams_xattr, který umožňuje uchovávat alternativní datové sady NTFS (NTFS alternate data stream) v rozšířených atributech souborů (xattr) v Linuxu, byla přidána konfigurace „streams_xattr:max xattrs per stream“, která určuje povolený počet xattr používaných pro ukládání dat. V Linuxu je velikost xattr omezena na 65536 bytů, ale FS XFS umožňuje připojit k jednomu souboru více než jedno xattr, což umožňuje používat několik xattr pro uchování až 1 MB alternativních dat.
- Byla implementována podpora auditu informací souvisejících s autentizací. Byly přidány ladící třídy „dsdb_password_audit“ a „dsdb_password_json_audit“ pro zaznamenávání změn atributů Active Directory do logu: altSecurityIdentities, dNSHostName, msDS-AdditionalDnsHostName, msDS-KeyCredentialLink a servicePrincipalName.
- Byla přidána podpora externích systémů správy hesel Microsoft Entra ID a Keycloak, které při změně hesla používají operaci resetování hesla (SSPR, password reset) bez předání starého hesla kontroleru. domény. Aby byla dodržena pravidla týkající se doby platnosti hesel, jsou při resetování hesla předávány další parametry („náznaky pravidla hesla“), které umožňují zpracovat operaci jako obvyklou změnu hesla. Nyní Samba zohledňuje tyto parametry při uplatňování spojených s hesly, místních pravidel.
- Byla přidána podpora mechanismu autentizace Kerberos PKINIT KeyTrust, který umožňuje na doménových kontrolerech založených na Sambě a Heimdal KDC používat metodu „Windows Hello for Business Key-Trust logons“ pro implementaci mechanismu autentizace PKINIT se samopodepsanými klíči. Pro přidání a zobrazení veřejného klíče byla do nástroje samba-tool přidána příkazová syntaxe „user|computer keytrust“. Informace o veřejném klíči jsou uloženy v účtu pomocí atributu msDS-KeyCredentialLink.
- Na doménových kontrolerech založených na Sambě a Heimdal KDC byla přidána podpora rozšíření protokolu Kerberos PKINIT pro mapování klíčů („Windows Strong and Flexible key mappings“), které se používá při autentizaci pomocí veřejných klíčů. Ve výchozím nastavení se povoluje pouze přesné přiřazení certifikátů („strong certificate binding enforcement = full“), ale je možné i flexibilní přiřazení („strong certificate binding enforcement = compatibility“), které umožňuje certifikáty novější než účet uživatele. Informace o mapování certifikátů pro účet se ukládají v atributu altSecurityIdentities.
- Byla přidána podpora rozšíření protokolu „Kerberos PKINIT SID“, která umožňuje používat při autentizaci certifikáty s identifikátorem objektu SID. Pro podepisování certifikátů byla do nástroje samba-tool přidána příkazová syntaxe „user|computer generate-csr“.
- V implementaci KDC (Key Distribution Center) je ve výchozím nastavení zajištěno vrácení struktury PAC (Privilege Attribute Certificate), která obsahuje informace o oprávněních uživatele, bez ohledu na to, zda je pole PA-PAC-REQUEST uvedeno v žádosti klienta. Pro vrácení starého chování je k dispozici nastavení „kdc always generate pac = no“.
- V KDC bylo přidáno nastavení „kdc require canonicalization“, které, je-li nastaveno na „yes“, vyžaduje, aby klient při přístupu k autentizaci (AS_REQ) požadoval provedení kanonizace uživatelského jména. Pokud kanonizace není vyžádána, server vrátí chybu „uživatel není znám“. V sítích s uživateli používajícími operační systém Windows by aktivace nového nastavení neměla způsobit problémy, protože klienti Windows ve výchozím nastavení vždy vyžadují kanonizaci. serveru аутентификации (AS_REQ). Если канонизация не запрошена, сервер вернёт ошибку «пользователь неизвестен». В сетях с пользователями, использующими ОС Windows, активация новой настройки не должно вызвать проблем, так как Windows-клиенты по умолчанию всегда запрашивают канонизацию.
Povinná kanonizace umožňuje ochránit se před útoky typu „dollar ticket“, které manipulují tím, že uživatelská jména mohou být zadána různě („user“ a „user$“) a různě zpracovávána v kanonizované a běžné podobě. Podstatou útoku je to, že útočník například mohl vytvořit v AD účet počítače s názvem „root$“ a použít ho k získání od KDC mandátu (ticket), přičemž v žádosti zanesl uživatelské jméno „root“ místo „root$“. KDC nenajde uživatele „root“, zpracuje žádost v kontextu uživatele „root$“ a vydá mandát, který může být použit pro připojení jako uživatel root přes SSH nebo NFS k Linux serveru se SSSD.
- Do KDC byl přidán obchvat pro ochranu před útoky „dollar ticket“ pro konfigurace s deaktivovanými povinnými požadavky na kanonizaci jmen („kdc require canonicalization = no“, což je nastaveno ve výchozím nastavení). Ve výchozím nastavení, pokud klient nepožadoval provedení kanonizace a kontrolované jméno nebylo nalezeno, server provede dodatečnou kontrolu připojením symbolu „$“ k jménu. Pomocí nového nastavení „kdc name match implicit dollar without canonicalization = no“ lze toto chování vypnout a provádět pouze přesné kontroly (v kontextu výše zmíněného útoku server nebude kontrolovat jméno „root$“ při žádosti „root“).
- Ve Heimdal KDC je ve výchozím nastavení povoleno odesílat službám Kerberos pouze kanonizovaná jména (sAMAccountName z PAC) místo původní hodnoty cname. Pro vrácení starého chování je k dispozici nastavení „krb5 acceptor report canonical client name = no“.
- Pro plnou ochranu proti útokům „dollar ticket“ se doporučuje nastavit následující konfigurace: strong certificate binding enforcement full kdc always include pac yes kdc require canonicalization yes
- Pro blokaci zranitelnosti CVE-2026-20833 byl výchozí šifrovací metoda domény v nastavení KDC změněna na AES (nastavení „kdc default domain supported enctypes“ je nastaveno na „aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96“).
Zdroj: opennet.ru
