Samba (informatique)

Samba est un logiciel d'interopérabilité qui implémente le protocole propriétaire SMB/CIFS de Microsoft Windows dans les ordinateurs tournant sous le système d'exploitation Unix et ses dérivés de manière à partager des imprimantes et des fichiers dans un réseau informatique[8]. Samba facilite l'interopérabilité entre systèmes hétérogènes Windows-Unix. Il offre la possibilité aux ordinateurs d'un réseau d'accéder aux imprimantes et aux fichiers des ordinateurs sous Unix[9] et permettent aux serveurs Unix de se substituer à des serveurs Windows[10].

Pour les articles homonymes, voir Samba.

Samba

Informations
Développé par The Samba Team
Première version [1]
Dernière version 4.14.7 ()[2]
Version avancée 4.8.0rc1 ()[3]
4.8.0rc2 ()[4]
4.8.0rc3 ()[5]
4.9.0rc5 ()[6]
4.9.0rc4 ()
4.10.0rc2 ()[7]
Dépôt git.samba.org
Écrit en C++, Python et C
Système d'exploitation Linux, OpenVMS, macOS et type Unix
Environnement Multiplateforme
Type Système de fichiers distribué
Licence GNU GPL 3
Documentation wiki.samba.org/index.php/User_Documentation et www.samba.gr.jp/project/translation/current/htmldocs/manpages/index.html
Site web www.samba.org

Il s'agit d'une réimplémentation des protocoles SMB/CIFS sous GNU/Linux et d'autres variantes d'Unix par ingénierie inverse. Samba a été initialement développée par l'Australien Andrew Tridgell et distribuée sous licence libre GNU GPL 3[11]. Son nom provient du nom du protocole standard de Microsoft, SMB (Server Message Block), auquel ont été ajoutées les deux voyelles a : « SaMBa ».

À partir de la version 3, Samba fournit des fichiers et services d'impression pour divers clients Windows et peut s'intégrer à un domaine Active Directory en tant que membre du domaine. Samba3 peut aussi être configuré en tant que PDC (Primary Domain Controller (en)) en mode domaine NT4.

A partir de la version 4, Samba peut servir de contrôleur de domaine Active Directory et fournir les services d'authentification AD à des postes Windows, des postes Linux et des serveurs membres.

Il fonctionne sur la plupart des systèmes Unix, comme GNU/Linux, Solaris, AIX et les variantes BSD, y compris Apple, Mac OS X Server (qui a été ajoutée au client Mac OS X en version 10.2). Samba est livré dans presque toutes les distributions GNU/Linux.

Historique

Andrew Tridgell a développé la première version de Samba Unix, en 1992, à l'Australian National University, en utilisant un analyseur de paquets pour réaliser une analyse réseau du protocole utilisé par le logiciel de DEC PATHWORKS, nbserver 1.5, publié en . Tridgell a découvert plus tard que le protocole était en grande partie identique à celui utilisé par d'autres systèmes de partage de fichiers, y compris celui de Microsoft. Il a ensuite décidé de se concentrer sur une compatibilité du réseau Microsoft. Samba reçoit aujourd'hui les contributions d'une vingtaine de développeurs originaires du monde entier sous sa coordination.

Auparavant, les PC équipés de DOS et des premières versions de Windows, devaient parfois installer une pile TCP/IP, et un ensemble de logiciels d'origine[réf. nécessaire] Unix : un client NFS, FTP, telnet, lpr, etc. Cela était lourd et pénalisant pour les compatibles PC de l'époque, et il obligeait par ailleurs leurs utilisateurs à contracter un double jeu d'habitudes, ajoutant celles d'UNIX à celles de Windows. Samba adopte donc la démarche inverse.

À l'origine, Samba était appelé SMBServer. Le nom a dû être changé en raison de l'opposition de la société "Syntaxe", qui vendait un produit nommé TotalNet Advanced Server et propriétaire de la marque "SMBServer". Le nom « Samba » a été donné en choisissant un nom voisin de SMB en interrogeant un dictionnaire Unix, par la commande grep : grep -i '^s.*m.*b' /usr/share/dict/words​[12].

Fonctionnalités

Samba est la mise en œuvre d'une dizaine de services et d'une douzaine de protocoles. Il comprend le protocole de partage de fichiers et d'imprimantes SMB, le protocole d'appel distant DCE/RPC (en) ou, plus spécifiquement MSRPC (en), les protocoles intervenant dans le fonctionnement d'Active Directory, la couche d'interopérabilité NetBIOS sur TCP/IP (NBT). La suite de protocoles du voisinage réseau, un serveur WINS aussi connu sous le nom de NetBIOS Naming Service (NBNS). Les protocoles d'un domaine NT qui comprend l'ouverture d'une session NT, une base de données Security Account Manager (SAM), un service Local Security Authority (LSA), un service d'impression (Spoolss) , NTLM et plus récemment l'ouverture de session Active Directory comprenant une version modifiée de Kerberos et de LDAP. Samba peut voir et partager des imprimantes.

Samba configure des partages réseaux pour les répertoires Unix (y compris le contenu de tous les sous-répertoires). Ils apparaissent pour les utilisateurs de Windows comme des dossiers Windows classiques accessibles via le réseau. Les utilisateurs d'Unix peuvent lire les partages avec le smbclient (libsmb) installé avec Samba. Chaque répertoire peut avoir des privilèges d'accès différents. Par exemple : les répertoires ayant un accès en lecture/écriture pour tous les utilisateurs définis, permettent à chacun d'eux d'accéder à leurs propres fichiers. Mais ils n'ont pas accès aux dossiers des autres, sauf si une autorisation est définie. À noter que le partage netlogon (/etc/samba/netlogon), généralement accessible en lecture, est le répertoire par défaut pour les scripts d'ouverture de session utilisateur.

La configuration est réalisée par l'édition d'un fichier unique (généralement installé dans /etc/smb.conf ou /etc/samba/smb.conf). Samba peut aussi fournir des scripts d'ouverture de session utilisateur et une mise en place de groupes de stratégies via poledit.

Dans les versions antérieures à la version 4.1, Samba incluait un outil d'administration web appelé SWAT (Samba Web Administration Tool)[13].

La comparaison des performances entre Samba et les autres systèmes de partage de fichiers UNIX comme NFS n'est plus pertinente comme elle a pu l'être dans le passé. En effet Samba implémentent désormais les protocoles SMB2 et SMB3, et bien que la première version SMB1 (aussi connu sous le nom CIFS) était relativement lente en raison de sa verbosité, les versions SMB2 puis SMB3 du protocole permette à Samba d'avoir des performances comparables à celles que l'on peut avoir avec un système NFS, iSCSI ou FiberChannel[14].

La version 3.2 apporte le support de IPv6 et ajoute la possibilité de stocker les partages Samba dans la base de registre ainsi que l'expérimentation du clustering et d'autres améliorations[15].

Interopérabilité

Le protocole Samba permet d'assurer l'interopérabilité entre plates-formes différentes et régions différentes par une gestion adéquate de l'encodage des noms de fichiers[16].

Le , Microsoft signe un accord d'information technique[17] à la suite d'un procès perdu contre l'Union européenne.

Samba en Workgroup

Samba permet à un client Linux ou BSD de fonctionner dans un groupe de travail (workgroup) comme un client Microsoft Windows et partager des fichiers et des imprimantes ou accéder à des ressources sur d'autres postes. A partir de Windows 7 la découverte du voisinage réseau en workgroup passe par le protocole LLMNR. Samba n'implémente pas de serveur LLMNR mais peut s'appuyer sur un client implémentant ce protocole comme WSSD2

Samba PDC NT4

Samba intègre à partir de la version 2.2 sortie en 2001 un support partiel du rôle de contrôleur de domaine PDC NT4 (Primary Domain Controler)[18]. Cette fonctionnalité devient vraiment mature avec la version 3.0 sortie fin 2003[19].

Samba PDC NT4 peut utiliser un serveur LDAP ou des fichiers TDB (Trivial Database) comme base de stockage des comptes utilisateurs. L'utilisation de OpenLDAP en mode master/slave permet de configurer des contrôleurs de domaine (Backup Domain Controler, BDC). Si l'on utilise OpenLDAP en mode multi-master, il est possible d'utiliser Samba en mode multi-PDC, tant qu'il n'y a pas plus d'un PDC par site.

Microsoft a arrêté le support de Windows NT4 fin 2004, et par là même le support du rôle PDC NT4. Contrairement aux PDC sous Windows, les serveurs PDC NT4 Samba ont continué de bénéficier des améliorations techniques, comme le support SMB2 puis SMB3, l'amélioration de la sécurité avec le NTLM signing et sealing, etc. Ces améliorations de sécurité font que les domaines de type Samba NT4 sont encore utilisés aujourd'hui. D'ailleurs avec la version Windows 10 1803, quand Microsoft a supprimé la possibilité d'intégrer les postes à un domaine de type NT4, ce même support a été réintégré en avec la mise à jour cumulative KB4458469[20] pour la version Windows 10 1809[21].

On associe souvent la version Samba 4 au support Active Directory. Il est important de souligner que le support de la fonctionnalité PDC NT4 est toujours présent dans Samba 4. On peut donc avoir un contrôleur de domaine Samba 4 PDC NT4, ou un contrôleur de domaine Samba 4 AD.

Samba Active Directory

Avec la sortie de la version 4.0 le , Samba a désormais la capacité de servir de contrôleur de domaine Active Directory. Depuis cette version, le projet Samba a sorti une nouvelle version environ tous les 9 mois puis plus récemment tous les 6 mois.

Heimdal Kerberos vs MIT Kerberos

Le serveur Kerberos est une brique fondamentale du serveur Active Directory. Au début du projet Samba 4, les développeurs ont choisi d'utiliser l'implémentation Heimdal Kerberos plutôt que l'implémentation MIT Kerberos. Heimdal Kerberos est plus facilement intégrable comme bibliothèque et le projet était plus dynamique lors du lancement de Samba 4 au milieu des années 2000. Il y a eu des efforts à partir de 2013 de la part de l'équipe Samba pour porter le code de Samba Active Directory sous MIT Kerberos[22]. En effet, les distributions Linux « Entreprise », comme Red Hat ou SUSE Linux, imposent que les logiciels kerbérisé supportés soient compilés avec la bibliothèque MIT Kerberos. La première version de Samba avec un support officiel partiel de MIT Kerberos est la verison 4.7[23].

Le projet Samba n'utilise pas la version Upstream (développement logiciel) (en) de Heimdal Kerberos. En effet, la version de Heimdal qui est acutellement intégrée dans Samba correspond à la version Heimdal de 2012 avec les patchs de sécurités backportés. Il ne s'agit pas d'un fork à proprement parler, mais plus d'une facilité, et le projet Samba essaye actuellement de revenir sur la version upstream pour permettre d'intégrer le support des fonctionnalités Kerberos plus avancées, comme le FAST, les claims, les silos, etc.

Samba et OpenLDAP

Les premières versions de Samba-AD ont utilisé OpenLDAP comme backend LDAP. Toutefois, lors de la création d'Active Directory, Microsoft a mis en place des extensions au protocole LDAP pour que celui-ci gère au mieux les contraintes d'un environnement Windows. Par exemple, Active Directory permet de s'authentifier avec un User Principal Name (UPN, par exemple utilisateur@AD.MONDOMAINE.FR) plutôt qu'un Distinguished Name (DN, par exemple CN=utilisateur,OU=users,DC=ad,DC=mondomaine,DC=fr).

Le besoin d'avancer dans l'implémentation des protocoles Active Directory a poussé le projet Samba à ré-implémenter son propre serveur LDAP au sein de Samba en 2008. A partir de la version Samba 4.9, le projet décide de ré-utiliser le moteur de base de données LMDB d'OpenLDAP pour le stockage Active Directory[24]. Le serveur LDAP reste néanmoins celuis de Samba, seul le moteur de stockage a été remplacé.

En 2015, un travail de fond est réalisé par la société Symas pour à nouveau réintégrer OpenLDAP comme un backend viable au sein du serveur Samba Active Directory[25].

Samba 4

Samba 4 est une version de la suite Samba développée en parallèle avec la branche stable 3.x. Une des nouveautés majeures de cette version est le support des protocoles d'authentification utilisés par Windows 2000 et plus.

Nouveautés

Samba 4 supporte le côté serveur dans un environnement Active Directory utilisé par Windows 2000. Il est ainsi possible de joindre complètement des clients Windows à un domaine et effectuer des opérations d'ouverture de session.

Il inclut un serveur LDAP et un centre de distribution de clés Kerberos (KDC).

Principales versions[26]

VersionDate de sortieNote
1.9.17Première version publique[27]
2.0.0Correction de failles importantes[28]
2.2.0Gestion 64 bits complète[29]
3.0.0Corrections failles importantes et nouvelles fonctions[30]
3.0.26Corrections failles importantes et nouvelles fonctions
3.2.0Corrections des failles de sécurité
3.3.0
3.4.01re version combinant les code de Samba 3 et Samba 4
3.4.17 Dernière version stable de la branche Samba 3.4
3.5.01re version avec support expérimental pour SMB2
3.6.01re branch incluant le support complet de SMB2
4.0.0[31]SMB v2.1[32]
4.1.0[33]SMB3
4.2.0 [34] Compression Btrfs
4.3.0 [35] Nouvelle fonction de connexion SMB3.1.1
4.4.0 [36] Requête flush asynchrone
4.5.8 Please see https://bugzilla.samba.org/show_bug.cgi?id=12721 for details
4.6.0
4.7.0 20 September 2017 Amélioration du fonctionnement avec Active Directory (LDAP)

ChangeLog https://www.samba.org/samba/history/samba-4.7.0.html

4.8.0 Support partiel des trusts inter-domaine, amélioration des index Samba-AD

Changelog https://www.samba.org/samba/history/samba-4.8.0.html

4.9.0 Introduction du backend LMDB, amélioration de l'audit, outil de backup et de renommage de domaine

Changelog https://www.samba.org/samba/history/samba-4.9.0.html

Liens externes

Notes et références

  1. « https://www.samba.org/samba/docs/10years.html »
  2. « Samba 4.14.7 Available for Download »
  3. « https://git.samba.org/?p=samba.git;a=tag;h=94ec3bd89a2ea1d490af2459c17641c2fcb201ce » (consulté le )
  4. « https://git.samba.org/?p=samba.git;a=tag;h=refs/tags/samba-4.8.0rc2 » (consulté le )
  5. « https://git.samba.org/?p=samba.git;a=tag;h=refs/tags/samba-4.8.0rc3 » (consulté le )
  6. « https://download.samba.org/pub/samba/rc/samba-4.9.0rc5.WHATSNEW.txt »
  7. « https://download.samba.org/pub/samba/rc/samba-4.10.0rc2.WHATSNEW.txt »
  8. (en)Roderick W. Smith,Linux Samba Server Administration: Craig Hunt Linux Library,John Wiley & Sons, 2006, (ISBN 9780782153132)
  9. (en)Jay Ts, Robert Eckstein, David Collier-Brown,Samba Pocket Reference: A Unix-to-Windows File & Print Server,O'Reilly Media, Inc. - 2003, (ISBN 9780596005467)
  10. Michel Dutreix,Samba: Installation, mise en œuvre et administration,Éditions ENI, 2003, (ISBN 9782746021457)
  11. (en) Samba adopte la GPL 3
  12. http://www.rxn.com/services/faq/smb/samba.history.txt
  13. https://wiki.samba.org/index.php/Samba_4.1_Features_added/changed Changelog Samba 4.1 annonçant la suppression de SWAT
  14. https://blog.netapp.com/blogs/does-smb3-have-the-performance-and-high-availability-required-for-microsoft-sql-workloads-yes/ Comparaison SMB3 avec d'autre protocole
  15. Samba status update du 13 mars 2008 (format PDF)
  16. http://www.linuxfromscratch.org/blfs/view/cvs/introduction/locale-issues.html#locale-wrong-filename-encodingBeyond Linux® From Scratch - Version 2012-08-12 - Chapter 2. Important Information - Going Beyond BLFS - Locale Related Issues
  17. Samba and the PFIF, Samba Team Receives Microsoft Protocol Documentation
  18. https://www.samba.org/samba/history/samba-2.2.0.html
  19. Scott Lowe MCSE, « SolutionBase : Samba 3.0 enhances Windows and Active Directory integration », sur techrepublic.com, (consulté le ).
  20. https://support.microsoft.com/en-us/help/4458469/windows-10-update-kb4458469 Bulletin Microsoft avec le correctif pour réintégrer le support des domaines NT4
  21. https://lists.samba.org/archive/samba/2018-October/218931.html
  22. https://blog.cryptomilk.org/2017/09/21/samba-4-7-0-samba-ad-for-the-enterprise/
  23. https://www.samba.org/samba/history/samba-4.7.0.html
  24. https://www.samba.org/samba/history/samba-4.9.0.html "Changelog Samba avec nouveau support expérimental de LMDB
  25. https://ldapcon.org/2015/wp-content/uploads/2015/09/ivanova-samba_backend.pdf "Présentation de Nadejda Ivanova sur l'intégration Openldap et Samba4-AD
  26. « Samba Release History », sur www.samba.org (consulté le )
  27. http://www.samba.org/samba/history/samba1.9.17.html
  28. http://lwn.net/1999/0121/samba.html
  29. http://lists.samba.org/archive/samba-technical/2001-April/013205.html
  30. « Samba - Release Notes Archive (v3.0.0) », sur www.samba.org (consulté le )
  31. « Samba 4.0 released [LWN.net] », sur lwn.net (consulté le )
  32. « Samba - Release Notes Archive », sur www.samba.org (consulté le )
  33. « Samba 4.1.0 released [LWN.net] », sur lwn.net (consulté le )
  34. « Samba 4.2.0 released [LWN.net] », sur lwn.net (consulté le )
  35. « Samba 4.3.0 released [LWN.net] », sur lwn.net (consulté le )
  36. « Samba 4.4.0 - Release Notes », sur www.samba.org (consulté le )
  • Portail des logiciels libres
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.