Le serveur Samba

1. Introduction à Samba

1.1 Qu'est-ce que Samba ?

Samba est un ensemble de programmes libres (sous licence GPL) qui implémente le protocole SMB/CIFS (Server Message Block/Common Internet File System).
Ces protocoles sont historiquement utilisés par les systèmes Microsoft Windows pour le partage de fichiers et d'imprimantes en réseau.
Samba permet donc à un serveur Linux/Unix de :

1.2 Contexte et historique

1.3 Avantages de Samba


2. Architecture et composants de Samba

Samba se compose de plusieurs démons (services) et outils en ligne de commande :


3. Installation et configuration de base

3.1 Installation

Debian/Ubuntu

sudo apt update
sudo apt install samba

Les fichiers de configuration se situent généralement dans /etc/samba/.

CentOS/RHEL/Fedora

sudo dnf install samba

ou

sudo yum install samba

La configuration par défaut est placée dans /etc/samba/smb.conf.

3.2 Configuration de base

Le fichier smb.conf est le fichier de configuration principal de Samba. Il se compose généralement de deux grandes sections :

Exemple minimal :

[global]
   workgroup = WORKGROUP
   server string = Serveur Samba
   security = user
   map to guest = Bad User

[partage]
   path = /srv/partage
   browseable = yes
   read only = no
   guest ok = yes

3.3 Démarrage des services

Après toute modification du fichier de configuration, il est conseillé de tester la validité de la configuration, puis de redémarrer les services Samba :

sudo testparm
sudo systemctl restart smbd
sudo systemctl restart nmbd

4. Concepts clés

4.1 Partages de fichiers

4.2 Authentification et comptes Samba

4.3 Protocoles SMB (SMB1, SMB2, SMB3)


5. Configuration avancée

5.1 Exemple de configuration d'un partage simple

[monpartage]
   path = /srv/monpartage
   browseable = yes
   read only = no
   valid users = utilisateur

5.2 Configuration d'un partage public

[public]
   path = /srv/public
  browseable = yes
   read only = no
   guest ok = yes

5.3 Contrôle fin des permissions

create mask = 0660
directory mask = 0770

Ici, l'utilisateur et le groupe peuvent lire/écrire, et aucune permission pour « others ».

force user et force group :
Permettent de forcer tous les fichiers créés via ce partage à appartenir à un utilisateur ou groupe spécifique.
Exemple :

force user = partage_user
force group = partage_group

5.4 Chiffrement du partage (SMB3)

Depuis la version 4.0 de Samba, il est possible d'activer le chiffrement SMB3 :

[secure]
   path = /srv/secure
   browseable = yes
   read only = no
   smb encrypt = required

6. Gestion des utilisateurs et des groupes

6.1 Création d'utilisateurs Samba

Créer l'utilisateur au niveau du système (s'il n'existe pas) :

sudo adduser utilisateur

Ajouter l'utilisateur à la base Samba :

sudo smbpasswd -a utilisateur

Le mot de passe spécifié ici sera celui utilisé pour l'accès SMB.

6.2 Modification ou suppression d'un utilisateur Samba

sudo smbpasswd utilisateur
sudo smbpasswd -x utilisateur

6.3 Groupes Samba

[groupe_partage]
   path = /srv/groupe_partage
   valid users = @mon_groupe
   read only = no

7. Maintenance et dépannage

7.1 Vérification de la configuration

Utilisez testparm pour valider votre fichier smb.conf :

sudo testparm

S'il y a une erreur de syntaxe, l'outil la signalera.

7.2 Journaux (logs)

7.3 Redémarrer Samba

Sur la plupart des distributions modernes utilisant systemd :

sudo systemctl restart smbd
sudo systemctl restart nmbd

ou

sudo systemctl restart samba

(si le service est géré globalement par le binaire samba dans le rôle AD/DC).

7.4 Commandes utiles de dépannage

smbclient //localhost/monpartage -U utilisateur

8. Sécurité et bonnes pratiques

8.1 Restreindre l'accès réseau

8.2 Utiliser le chiffrement SMB

server min protocol = SMB2

dans la section [global].

8.3 Mise à jour régulière

8.4 Gestion des mots de passe


9. Intégration avancée

9.1 Samba comme contrôleur de domaine (Active Directory)

Depuis la version 4, Samba peut agir comme contrôleur de domaine Active Directory (AD DC), permettant :

Configuration de base

sudo samba-tool domain provision --use-rfc2307 --interactive

9.2 Intégration dans un domaine Active Directory

9.3 Intégration LDAP / Kerberos


10. Outils supplémentaires

10.1 smbclient

Permet de se connecter à un partage SMB en ligne de commande, de lister les fichiers, télécharger, etc. Très pratique pour diagnostiquer les problèmes de connexion ou de droits.

10.2 smbstatus

Affiche des informations sur les sessions actives, les fichiers ouverts, les verrous (locks).

10.3 samba-tool

10.4 testparm

Vérifie la syntaxe du fichier de configuration smb.conf et affiche un résumé des paramètres.


11. Performances et optimisation


12. Études de cas pratiques


13. Conclusion

Samba est un pilier fondamental pour l'intégration hétérogène dans de nombreux environnements professionnels et personnels. De la simple configuration de partages de fichiers à la mise en place d'un contrôleur de domaine complet type Active Directory, Samba offre une flexibilité et une puissance considérables.

Avec une configuration adaptée à vos besoins et un suivi rigoureux, Samba vous permettra de bâtir une solution de partage de ressources robuste, fiable et parfaitement intégrée aux environnements Windows, macOS et Linux.


⬆️ Retour en haut de la page