Serveur de fichiers Samba

Pour un centre de formation, j’ai mis en place un serveur de fichiers. Je vous détaille ici le processus de mise en place du serveur en question.

Ce n’est peut-être pas la solution « ultime » mais elle est assez simple à mettre en place (quand on connait un peu GNU/Linux) et la maintenance très facile.

À l’origine

Il y avait à l’origine 2 ordinateurs servant de serveurs de fichiers :

  • 1 poste sous Windows 2000 Server
  • 1 poste sous Windows XP Professionnel

Pourquoi changer ?

Le matériel commençant a être défaillant, la question s’est posée de remettre en état les postes d’origine ou de passer à une solution plus « simple » (1 seul serveur au lieu de 2).

Les points clefs du cahier des charges étant :

  • Avoir un dossier de partage accessible en lecture/écriture par n’importe quelle personne (Commun),
  • Un dossier de partage uniquement accessible par les personnes authentifiées et autorisées (Restreint).
  • Les dossiers personnels des gens authentifiés.
  • Un système de sauvegarde « manuelle » simple pour des « non-informaticiens ».

Solution choisie

Bien que possédant les licences pour Windows 2000 Server et Windows XP Professionnel, le choix a été fait de mettre en place un serveur sous GNU/Linux, avec sauvegarde sur un disque externe connecté en FireWire 400.

Matériel

  • Un ordinateur DELL
  • Une carte FireWire 400
  • Un disque externe FireWire

Choix de la distribution

À l’origine, c’était la distribution Mandriva 2007.1 qui a été choisie par le centre.

Cependant il s’est rapidement avéré qu’elle ne convenait pas du tout :

  • Impossibilité de « montage » automatique d’un disque en FireWire une fois le système installé de « base ».
  • Aide en ligne très « brouillon » sur le site Internet officiel, ...

Ayant personnellement testé le montage automatique sur Fedora 7 avec la même carte FireWire et un disque externe, c’est cette distribution qui a été retenue (Fedora 8 n’étant pas encore sortie lors de la mise en place de la solution).

La distribution Ubuntu n’a pas été retenue bien qu’elle aurait également fonctionné. Cela pour des raisons purement pratiques : le DVD de Fedora 7 avait déjà été téléchargé et gravé.

Installation du serveur

Le système a été installé avec 5 partitions :

  • /boot : stockage du noyau et de la configuration de GRUB
  • / : Système en lui même
  • /home : Partition de stockage des comptes utilisateurs Linux
  • Swap : Partition d’échange
  • /partage : Partition qui servira au partage de fichier SAMBA

Configuration du serveur

Le serveur a été configuré sans le support de SELinux vu que cette solution n’apporte pas de fonctionnalités vraiment intéressantes dans le contexte en question.

Une fois le serveur installé avec Samba, il faut créer les comptes utilisateurs sur le serveur de façon « classique » (vu qu’il y a très peu de comptes à créer, les solution types LDAP, ... ne sont pas nécessaires)

Il faut ensuite utiliser l’utilitaire fournit par Fedora pour la création d’un compte utilisateur Samba pour chaque utilisateur Linux.

Attention : Fedora a une politique de sécurité plus importante sur les mots de passe que d’autres distributions (mot de passe de 6 caractères minimum ...)

On créé 2 dossiers pour le partage de fichiers :

  • /partage/commun : Dossier commun accessible en lecture/écriture par tous les utilisateurs identifiés ou non.
  • /partages/restreint : Dossier restreint accessible en lecture/écriture uniquement par les utilisateurs identifiés.

Ensuite on modifie le fichier /etc/smb/smb.conf de cette façon :

[global]
   workgroup = TheShire
server string = Samba Server Version %v
   netbios name = Saroumane
   deadtime = 60
   ; (temps d'inactivité en minutes)
   log file = /var/log/samba/log.%m
   # max 50KB per log file, then rotate
   max log size = 50
   security = user
   passdb backend = tdbsam
   map to guest = Bad User
   usershare allow guests = Yes
   os level = 33
   wins support = yes
   cups options = raw
   username map = /etc/samba/smbusers

[homes]
   comment = Home Directories
   browseable = no
   writable = yes

[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
   printable = yes

[Commun]
   create mask = 0777
   directory mask = 0777
   comment = Public
   path = /partages/commun
   writeable = yes
   guest ok = yes
[Restreint]
   create mask = 0777
   directory mask = 0777
   comment = Public
   path = /partage/restreint
   writeable = yes
   valid users = bilbobaggins, samgamegie, gandalfthewhite ; placer ici les differents utilisateurs autorises

Il faut ensuite recharger Samba.

La sauvegarde

Elle est assurée avec le logiciel pyBackPack.

Déconnexion d’un partage

Pour se déconnecter des partages une fois identifier (sous Windows XP Pro SP2), il faut saisir les lignes ci-dessous dans un terminal de commande Windows, dans Exécuter, ou via un script « bat » :

net use \\Saroumane\Restreint /del
net use \\Saroumane\Commun /del