Installer et configurer un serveur de fichiers avec Samba¶
1. Objectif du cours¶
Acquérir les compétences pour installer, configurer et gérer un serveur de fichiers Samba afin de partager fichiers et imprimantes entre systèmes hétérogènes (Linux, Windows, macOS). Apprendre aussi les bonnes pratiques de sécurité et de supervision.
2. Notions et définitions essentielles¶
- Samba : suite logicielle open source permettant le partage de fichiers et d'imprimantes entre différents systèmes d'exploitation.
- smb.conf : fichier de configuration principal de Samba, situé dans /etc/samba/.
- Partage : entrée dans smb.conf définissant un dossier partagé (path, permissions, visibilité).
- Permissions système vs. permissions Samba : permissions du système de fichiers (chmod, chown) et directives Samba (read only, write list, valid users).
- Héritage des permissions : option permettant aux fichiers créés d'hériter des permissions du dossier parent (inherit permissions).
3. Fonctionnement et principes¶
Samba agit comme une couche de partage qui expose des dossiers du serveur Linux aux clients hétérogènes. La configuration se fait via smb.conf ; chaque partage y définit un chemin, qui s’appuie ensuite sur les permissions du système de fichiers et sur des directives Samba pour contrôler l’accès et le comportement (lecture seule, liste d’écriture, utilisateurs valides, visibilité). La sécurité s’appuie à la fois sur les comptes configurés pour Samba et sur la cohérence des permissions Linux. Des options avancées permettent le chiffrement des transferts, la limitation par adresse IP et l’intégration avec Active Directory pour une authentification centralisée.
4. Commandes et manipulations¶
Regrouper selon procédure (extraits des commandes présentes dans le document) :
- Préparation système :
- Mise à jour suggérée : sudo apt update ; sudo apt upgrade
-
Vérification version et réseau : uname -a ; ifconfig ou ip a
-
Installation (Debian/Ubuntu) :
-
Installer Samba et binaires communs : sudo apt install samba samba-common-bin
-
Sauvegarde et édition de la configuration :
- Sauvegarder smb.conf avant modification : sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
-
Éditer /etc/samba/smb.conf avec un éditeur (nano/vim) pour ajouter des sections de partage
-
Contrôle du service :
- Redémarrer le service pour appliquer les modifications : sudo systemctl restart smbd
-
Vérifier l’état du service : sudo systemctl status smbd
-
Gestion des utilisateurs :
- Créer un utilisateur système si nécessaire : sudo adduser nom_utilisateur
-
Ajouter/activer un utilisateur Samba : sudo smbpasswd -a nom_utilisateur
-
Permissions au niveau système :
-
Modifier droits et propriétaire : chmod et chown (exemples présentés dans le cours)
-
Supervision et logs :
- Consulter les journaux Samba dans /var/log/samba/ pour identifier erreurs/avertissements
Remarques : les directives principales à utiliser dans smb.conf incluent read only, write list, valid users, browseable, inherit permissions, et smb encrypt / hosts allow pour options de sécurité avancées.
5. Sécurité et bonnes pratiques¶
- Clarifier les besoins et objectifs avant installation (dimensionnement, périmètre d’usage).
- Toujours sauvegarder smb.conf avant toute modification.
- Appliquer le principe du moindre privilège : définir des permissions restrictives par défaut (read only = yes) et accorder l’écriture de façon ciblée (write list).
- Utiliser valid users pour limiter strictement l’accès aux partages sensibles.
- Assurer la cohérence entre permissions Linux (chmod/chown) et directives Samba.
- Activer inherit permissions pour maintenir une cohérence de permissions dans les arborescences collaboratives.
- Mettre en place des sauvegardes régulières (suggestion d’incrémentales mentionnée).
- Protéger les transferts et restreindre l’accès réseau : smb encrypt = mandatory et hosts allow pour limiter par IP/réseau.
- Examiner régulièrement les journaux (/var/log/samba/) et surveiller l’état du service.
6. Points essentiels à retenir pour le TSSR¶
- Samba = suite open source pour partage fichiers/imprimantes entre OS différents.
- smb.conf (dans /etc/samba/) est le fichier central où se déclarent les partages.
- Préparer le système (mises à jour, vérification réseau) avant l’installation.
- Séparer gestion des permissions : système de fichiers (chmod/chown) + directives Samba (read only, write list, valid users).
- Toujours sauvegarder la configuration avant modification.
- Pour rendre un partage visible dans l’explorateur réseau, activer browseable.
- Héritage des permissions (inherit permissions = yes) simplifie la gestion multi-utilisateurs.
- Surveiller via les journaux Samba et l’état du service pour le dépannage.
- Pour production, envisager chiffrement des transferts et intégration AD pour authentification centralisée.
- Restreindre l’accès réseau et appliquer des sauvegardes régulières.
7. Tableau récapitulatif¶
| Élément | Effet principal | Niveau | Quand l'utiliser |
|---|---|---|---|
| valid users | Restreint accès aux utilisateurs/groupes | Samba | Partages sensibles |
| read only vs write list | Lecture globale vs autorisations d’écriture spécifiques | Samba + FS | Par défaut lecture seule, écriture ciblée |
| Permissions FS (chmod/chown) | Contrôle propriétaire et droits réels sur disque | Système | Toujours cohérent avec Samba |
| browseable = yes/no | Visibilité du partage dans l’explorateur réseau | Samba | Masquer partages publics ou sensibles |
| inherit permissions = yes | Héritage des droits du dossier parent | Samba | Espaces collaboratifs multi-utilisateurs |
8. Vérifications pratiques¶
- Vérifier la préparation : consulter la version du noyau/système et l’état réseau (commande système indiquée dans le cours).
- Après modifications de smb.conf : redémarrage du service puis vérification de son état via la commande de statut du service.
- Consulter les journaux Samba dans /var/log/samba/ pour repérer erreurs ou avertissements.
- Depuis un poste client Windows : accéder au partage via \[adresse_IP]\NomDuPartage pour tester la connectivité.
- Tester les permissions d’écriture en essayant de créer un fichier/dossier depuis le client sur le partage.
9. Flashcards Anki¶
Qu'est-ce que Samba ? :: Une suite de logiciels open source permettant le partage de fichiers et d'imprimantes entre différents systèmes d'exploitation. Où se trouve le fichier de configuration principal de Samba ? :: /etc/samba/smb.conf Quelle commande installe Samba sur Debian/Ubuntu (paquets essentiels) ? :: sudo apt install samba samba-common-bin Quelle action est recommandée avant de modifier smb.conf ? :: Faire une copie de sauvegarde du fichier smb.conf Quelle directive dans smb.conf définit un partage en lecture seule ? :: read only Quelle directive rend un partage visible dans l'explorateur réseau ? :: browseable = yes Comment ajouter un utilisateur à Samba pour l'authentification ? :: sudo smbpasswd -a nom_utilisateur Où se trouvent les journaux de Samba pour le dépannage ? :: /var/log/samba/ Quelle option active l'héritage des permissions pour un partage ? :: inherit permissions = yes Quelle directive limite l'accès d'un partage à des utilisateurs spécifiés ? :: valid users =