Installer le serveur de fichiers : SAMBA
Compte tenu de l'hétérogénéité de mon réseau (Windows et Linux), nous utiliserons le serveur Samba qui utilise le protocole de partage de fichiers propre à Windows (CIFS anciennement SMB) mais qui bien sûr est géré aussi par Linux.
Pour rappel : l'idée ici est de construire un serveur de fichiers de niveau familial, donc de moins d'une dizaine de micros qui de plus sont hétérogènes (différents Linux, différents Windows). Il n'y a donc aucune prétention à construire une solution d'entreprise, forcément plus sophistiquée, comme un Contrôleur Principal de Domaine (PDC). Ceux que cela intéresse feront une recherche sur le net avec "samba pdc" comme mots clés.
Cependant la configuration présentée ici a le mérite d'être (relativement) simple et de bien cloisonner les accès en fonction des droits de chacun.
1 - Le paquetage logiciel nécessaire (samba-server)
Le serveur Samba (notre serveur de fichiers au protocole Microsoft) fonctionne à l'aide du paquetage samba-server. Il nous faut donc l'installer si ce n'est pas déjà fait.
L'installation via l'interface graphique est le plus simple, mais lorsqu'on sait exactement ce que l'on doit installer, la ligne de commande (en administrateur) est toute aussi simple. Ici, il s'agit de la commande sous Mandriva, vous l'adapterez selon votre distribution (apt-get pour Debian, emerge pour Gentoo, etc.) :
# urpmi samba-server
2 - Premières configurations de Samba
Le Centre de Contrôle Mandriva (CCM) permet d'effectuer les premières configurations en mode graphique de manière aisée. Mais elle n'évitera pas de passer par le fichier /etc/smb.conf, donc autant y aller de suite.
A noter qu'il existe d'autres façon de configurer graphiquement Samba avec Swat qui lui est dédié ou encore Webmin (je n'ai pas d'avis, je n'ai testé ni l'un ni l'autre)
3 - Ajustement de la configuration via le fichier smb.conf
Vous pouvez effectuer tout le paramétrage de votre serveur Samba via le fichier /etc/samba/smb.conf. C'est même un incontournable pour quelques ajustements.
3.1 - Les paramétrages essentiels
Les essentiels sont en fait ceux que nous mettons via l'interface graphique.
Même si smb.conf comprend près de 300 paramètres, il restera ici assez simple. Cependant la consultation du man smb.conf reste comme toujours très instructive.
En effet notre configuration est basique et de nombreuses valeurs par défaut peuvent être garder. Les modifications indiquées ci-dessous sont apportées au smb.conf initial sans aucune configuration graphique préalable.
Pour s'y retrouver, smb.conf se découpe en 2 grandes sections :
- Globals settings
- Share Definitions
Nous y trouverons (en gras ce qu'il faut modifier, attention certaines valeurs sont mes choix, donc à adapter en fonction des vôtres):
# Nom de domaine ou de workgroup workgroup = Famille # La bannière (par défaut à %h = hostname) server string = Serveur Samba %v # Nom de la machine (par défaut le hostname du serveur) netbios name = Xena
Pour le reste on garde les valeurs par défaut, entre autres :
# 3. Logging Options log file = /var/log/samba/%m.log max log size = 50 map to guest = bad user # Important le niveau de sécurité security = user encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd
Un petit complément sur security = user : cela indique que samba demandera une authentification, et dans mon choix le mot de passe samba de chaque utilisateur sera le mot de passe de session de l'utilisateur à son ordinateur. Ainsi l'ouverture d'une session sur un ordinateur Windows permet la reconnaissance automatique des espaces Samba accessibles à l'utilisateur (c.a.d ici à son /home/<user>/Documents/ et /mnt/{famille, media et archives})
Partie qui comme son nom l'indique permet de définir ce que l'on partage. Cette partie fera l'objet d'ajustements, car pour l'instant on a (par défaut) :
[homes] comment = Home Directories browseable = no writable = yes
Ce qui donne effectivement l'accès aux /home/<utilisateur> et à eux seuls (si les droits ont bien été mis).
Et pour ce qui est d'un dossier partagé défini via le CCM, il apparaît comme ceci :
[Média] path = /etc/media comment = Vidéos et Musique
Ici l'accès est pour tous.
Nota : dans cette section, figure également toute une partie sur les imprimantes (dans les versions antérieures c'était une section à part entière). Pour l'instant cela ne gêne en rien et donc je laisse tel quel.
3.2 - Les ajustements indispensables
Les ajustements ne concernent que les "share settings".
Commençons par les "homes", il nous faut ajouter :
[homes] path = /home/%U/Documents comment = Home Directories browseable = no writable = yes create mask = 0700 directory mask = 0700
Le path se comprend aisément, puisque %U représente le nom de l'utilisateur connecté et comme je voulais pointer sur Documents et non sur /home/<user> ...
Les 2 autres lignes supplémentaires contraignent tout ajout de document ou de répertoire à respecter le mode (droits) des /home/<user>, à savoir 700 soit rwx pour l'utilisateur seul. Ainsi on assure à chaque utilisateur que personne d'autre ne pourra venir visiter son dossier personnel (sauf l'administrateur sur le serveur bien sûr)
Nota : avec create mask à 700 on autorise l'exécution des fichiers exécutables, ce qui n'est certainement pas souhaitable, ni recommandable ==> il vaut mieux positionner create mask = 600. Par contre pour directory le 700 reste obligatoire, sinon vous ne traverseriez pas les dossiers.
Pour les dossiers communs sous /mnt, la logique est la même, avec 2 particularités :
- il faut les spécifier un à un
- ils doivent être accessibles aux membres du groupe 'famille'
Cela donne ces lignes :
[Famille] path = /mnt/famille comment = Photos entre autres public = no writable = yes create mask = 0660 directory mask = 0770 [Média] path = /mnt/media comment = Vidéos et Musique public = no writable = yes create mask = 0660 directory mask = 0770 [Archives] path = /mnt/archives comment = Iso et autres vieilleries public = no writable = yes create mask = 0660 directory mask = 0770
4 - Création des utilisateurs Samba
Avant de lancer le serveur, il faut lui indiquer quels sont les utilisateurs de ce service. Cette création se fait à l'aide de la commande smbpasswd. En effet cette commande que l'on pourrait croire vouée exclusivement au changement de mot de passe est fonctionnellement plus riche selon qu'elle est lancée par un utilisateur ou par root. Et justement, lancée par root elle permet, avec l'option -a, d'inscrire un nouvel utilisateur samba avec son mot de passe (si ce couple 'login', 'password' n'est pas déjà connu de la machine, il est alors inscrit dans le fichier /etc/samba/smbpasswd ). Sur l'exemple ci-dessous, je m'inscris.
Nota : famille n'est pas vraiment un utilisateur samba, il n'est donc pas utile de le créer
5 - Lancement du serveur Samba
Voilà votre serveur samba est configuré, vos utilisateurs créés, il n'y a plus qu'à le démarrer par :
# /etc/init.d/smb start
Nota : si vous faites des modifications à vos paramétrages (smb.conf), n'oubliez pas de relancer votre serveur avec :
# /etc/init.d/smb restart
Pour stopper le serveur, vous aurez deviné qu'il suffit de remplacer start par stop.
Avant de passer côté client ce qui sera vu dans un autre article, n'oubliez pas de configurer correctement le pare-feu de votre serveur. Pour ce serveur de fichiers il vous faut autoriser dans CCM > Sécurité > Pare-feu, les partages de fichiers Windows comme ceci :
Pour terminer, quelques liens intéressants :
- un serveur simple, avec notamment l'accès à un CDROM commun sur commentcamarche.net
- configurer un serveur Samba en PDC