După 6 luni de dezvoltare, a fost lansat release-ul Samba 4.25.0, care continuă dezvoltarea ramurii Samba 4 cu o implementare completă a controlerului de domeniu și a serviciului Active Directory, compatibil cu implementarea Windows Server și capabil să servească toate versiunile de clienți Windows suportate de Microsoft, inclusiv Windows 11. Samba 4 este un produs server multifuncțional, care oferă, de asemenea, implementarea unui server de fișiere, a unui serviciu de printare și a unui server de identificare (winbind). Codul proiectului este scris în limbajul C și este distribuit sub licența GPLv3.
Schimbări cheie în Samba 4.25:
- Suport experimental pentru descriptorii de fișiere persistenti (SMB2_CAP_PERSISTENT_HANDLES) a fost adăugat în implementarea protocolului SMB3, permițând clienților să continue lucrul cu fișierele deschise după o întrerupere a conexiunii la rețea, un restart server sau o comutare a sarcinii pe un server de rezervă. Descriptorii persistenti permit evitarea redeschiderii fișierelor după o defecțiune a serverului, ceea ce este deosebit de important în cazul găzduirii pe fișiere server a mașinilor virtuale Samba și a bazelor de date clusterizate.
Pentru funcționare, este necesar să se ofere acces exclusiv la stocarea SMB și să se dezactiveze setările „kernel oplocks”, „kernel share modes” și „posix locking”, ceea ce încalcă compatibilitatea cu POSIX și NFS, și de asemenea reduce semnificativ performanța din cauza scrierii sincrone a metadatelor pe disc la fiecare operație. Două moduri de asigurare a redundanței sunt propuse: full_outage (implicit) — se creează o copie locală de rezervă a stării, permițând păstrarea descriptorilor chiar și după o defecțiune totală a clusterului, dar crescând sarcina; partial_outage — funcționare mai rapidă fără copie de rezervă, dar descriptorii se pierd dacă toate nodurile clusterului se defectează simultan.
- A fost adăugat modul VFS vfs_aio_ratelimit, care permite stabilirea unei limite de intensitate a cererilor (rate limit), care există în contextul întregului cluster, și nu doar în legătură cu nodurile individuale. Pentru coordonarea aplicării globale a limitelor, pe fiecare nod trebuie să ruleze un proces de fundal ratelimitd, care agregă activitatea tuturor proceselor smbd pe nod și transmite informația către celelalte noduri ale clusterului. Activarea vfs_aio_ratelimit se efectuează în etapa de compilare prin specificarea opțiunii „—with-ratelimitd”.
- A fost adăugat modulul VFS vfs_ceph_rgw pentru Ceph RGW (Object Gateway), permițând exportarea datelor din Ceph Object Gateway sub forma unei stocări SMB cu o reprezentare ierarhică a obiectelor stocate sub formă de fișiere și directoare obișnuite, având controlul accesului la nivel POSIX uid/gid.
- Au fost implementate niveluri de funcționalitate pentru cluster, care imită nivelurile domeniu și pădurile din Active Directory, permițând actualizarea treptată a nodurilor din cluster (rolling upgrade). Formatele bazei de date și formatele interne de comunicare, care influențează interacțiunea nodurilor, sunt modificate numai după o actualizare explicită a întregului cluster, asigurând compatibilitatea nodurilor cu versiuni diferite de Samba în timpul actualizării. Managementul se face prin comenzile „net clusterlevel features|show|showall|upgrade”.
- Pentru criptare în domeniu, sunt utilizate în mod implicit algoritmii aes128-cts-hmac-sha1-96 și aes256-cts-hmac-sha1-96 pentru domenii cu nivel de funcționalitate 2008 și mai mare. Modificarea blochează manifestarea vulnerabilității CVE-2026-20833, cauzată de utilizarea metodelor de criptare nesigure în Windows Kerberos.
- În CTDB, fișierele cu blocaje, PID și socket-uri au fost mutate în subdirectoare ctdb/. Scriptul de inițializare ctdb.init a fost mutat în ctdb/doc/examples. A fost adăugat suport pentru monitorizarea gazdelor, cum ar fi serverele DNS. Funcția detect_init_style() și variabila CTDB_INIT_STYLE au fost declarate depreciate (în locul lor se recomandă utilizarea CTDB_PLATFORM_STYLE).
Sursa: opennet.ro
