Après 6 mois de développement, Samba 4.25.0 a été publié, poursuivant le développement de la branche Samba 4 avec une implémentation complète d'un contrôleur de domaine et d'un service Active Directory compatible avec l'implémentation. Windows Server et capable de prendre en charge toutes les versions prises en charge par Microsoft Windows-clients, y compris Windows Samba 4 est un serveur multifonctionnel qui fait également office de serveur de fichiers, de service d'impression et de serveur d'authentification (winbind). Son code est écrit en C et distribué sous licence GPLv3.
Principaux changements dans Samba 4.25 :
- La prise en charge expérimentale des descripteurs de fichiers persistants (SMB2_CAP_PERSISTENT_HANDLES) a été ajoutée à l'implémentation du protocole SMB3, permettant aux clients de continuer à travailler sur des fichiers ouverts après une interruption de la connexion réseau ou après un redémarrage. serveur ou en basculant la charge vers un serveur de secours. Les descripteurs persistants évitent de devoir rouvrir les fichiers après une panne de serveur, ce qui est particulièrement important lors de l'hébergement sur un système de fichiers. serveur Machines virtuelles Samba et bases de données en cluster.
L'opération requiert l'octroi d'un accès exclusif au stockage SMB et la désactivation des paramètres « kernel oplocks », « kernel share modes » et « posix locking ». Ceci enfreint la compatibilité POSIX et NFS et réduit considérablement les performances en raison de l'écriture synchrone des métadonnées sur disque à chaque opération. Deux modes de tolérance aux pannes sont proposés : full_outage (par défaut), qui crée une copie de sauvegarde locale de l'état, permettant ainsi la conservation des descripteurs même après une panne complète du cluster, mais au prix d'une charge accrue ; partial_outage, qui fonctionne plus rapidement sans copie de sauvegarde, mais les descripteurs sont perdus en cas de panne simultanée de tous les nœuds du cluster.
- Le module VFS vfs_aio_ratelimit a été ajouté. Ce module permet de définir une limite de débit pour l'ensemble du cluster, et non plus seulement pour chaque nœud individuellement. Pour une application globale de cette limite, chaque nœud doit exécuter le processus d'arrière-plan ratelimitd, qui agrège l'activité de tous les processus smbd sur le nœud et transmet ces informations aux autres nœuds du cluster. vfs_aio_ratelimit est activé lors de la compilation en spécifiant l'option « --with-ratelimitd ».
- Ajout du module VFS vfs_ceph_rgw pour Ceph RGW (Object Gateway), qui permet d'exporter des données de Ceph Object Gateway en tant que stockage SMB avec une représentation hiérarchique des objets stockés sous forme de fichiers et de répertoires réguliers avec séparation d'accès au niveau POSIX uid/gid.
- Des niveaux de fonctionnalités de cluster ont été implémentés qui ressemblent à ceux de domaine et les forêts dans Active Directory, permettant une mise à niveau progressive des nœuds du cluster. Les formats de base de données et de messagerie interne qui affectent les interactions entre les nœuds ne sont modifiés qu'après une mise à niveau explicite de l'ensemble du cluster, garantissant ainsi la compatibilité des nœuds avec différentes versions de Samba pendant la mise à niveau. La gestion s'effectue à l'aide des commandes « net clusterlevel features|show|showall|upgrade ».
- Par défaut, les algorithmes aes128-cts-hmac-sha1-96 et aes256-cts-hmac-sha1-96 sont utilisés pour le chiffrement des domaines de niveau de fonctionnalité 2008 et supérieur. Cette modification corrige la vulnérabilité CVE-2026-20833, due à l'utilisation de méthodes de chiffrement faibles. Windows Kerberos.
- Dans CTDB, les fichiers contenant les verrous, les PID et les sockets ont été déplacés vers des sous-répertoires de ctdb/. Le script d'initialisation ctdb.init se trouve désormais dans ctdb/doc/examples. La prise en charge de la surveillance des hôtes, tels que les serveurs DNS, a été ajoutée. La fonction detect_init_style() et la variable CTDB_INIT_STYLE sont obsolètes (il est recommandé d'utiliser CTDB_PLATFORM_STYLE à la place).
Source: opennet.ru
