Installation et configuration de Samba en mode "User"

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Samba est un logiciel libre sous licence GPL supportant le protocole SMB/CIFS. Ce protocole est employé par Microsoft pour le partage de diverses ressources (fichiers, imprimantes, etc.) entre ordinateurs équipés de Windows. Samba permet aux systèmes Unix d'accéder aux ressources de ces systèmes et vice-versa.

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 Unix : un client NFS, FTP, telnet, lpr, etc. Cela était lourd et pénalisant pour les 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.

Son nom provient du protocole de partage et d'impression de fichiers d'IBM et réutilisé par Microsoft nommé SMB (Server message block), auquel ont été ajoutées les deux voyelles a : « SaMBa ».

Samba a été développé à l'origine par Andrew Tridgell,dès 1991 , et reçoit aujourd'hui les contributions d'une vingtaine de développeurs originaires du monde entier sous sa coordination. Celui-ci lui donna ce nom, en choisissant un nom voisin de SMB en interrogeant un dictionnaire Unix, par la commande grep : grep "^s.*m.*b" /usr/dict/words

Lorsque les deux systèmes de partage de fichiers (NFS, Samba) sont installés pour comparaison, Samba se révèle moins performant que NFS au niveau des taux de transferts.

Néanmoins, une étude a montré que Samba 3 était jusqu'à 2,5 fois plus rapide que l'implémentation SMB de Windows serveur 2003 Voir l'information sur LinuxFr

Toutefois, samba n'est pas compatible avec IPv6

Le mode "User" permet de partager de façon simple par utilisateur des dossiers. Vous avez alors besoin d'un login et un de mot de passe. C'est une solution suffisament sécurisée pour les petites entreprises.

2 Installation

2.1 Debian

Pour installer samba :

Command aptitude
aptitude install samba

2.2 FreebSD

Pour FreeBSD :

Command pkg_add
pkg_add -r samba34

3 Configuration

Pour configurer samba, éditez le fichier /etc/samba/smb.conf (/usr/local/etc/smb.conf sous FreeBSD) :

Configuration File /etc/samba/smb.conf
#======================= Global Settings =====================================
[global]
        # Nom du serveur Samba
        server string = Samba
        # Optimisation du socket
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        # Nom du groupe de travail
        workgroup = workgroup
        # Niveau du serveur Samba
        os level = 20
 
        ## Restrictions ##
        # On interdit tout le monde
        hosts deny = ALL
        # On autorise seulement les demande venant de ces IP
        hosts allow = 192.168.0.0/255.255.255.0 127.0.0.1 10.8.0.0/255.255.255.0
        bind interfaces only = yes
        # On autorise seulement les demandes venant de cette interface réseau
        interfaces = eth0
 
        ## Encoding ## Affichage Europeen avec accents
        dos charset = 850
        display charset = UTF8
 
        ## Name resolution ## Resolutions des noms
        dns proxy = no
        wins support = no
        name resolve order = lmhosts host wins bcast
 
        ## Logs ##
        max log size = 50
        log file = /var/log/samba/%m.log
        syslog only = no
        syslog = 0
        panic action = /usr/share/samba/panic-action %d
 
        ## Passwords ##
        # Mode user
        security = user
        encrypt passwords = true
        unix password sync = no
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .
        # Ne pas autoriser ces utilisateurs.
        invalid users = root
 
        ## Restrictions ##
        # Cacher les fichiers spéciaux
        hide special files = no
        # Cacher les fichiers non lisible
        hide unreadable = no
        # Cacher les fichiers cachés (commencant par un ".")
        hide dot files = no
 
        ## Resolve office save problems ##
        # Résoud des problèmes de compatibilité avec les version > MS Office 2002
        oplocks = no
 
#======================= Shares ==============================================
 
[Homes]
        comment = Home Directories
        browseable = yes # Permet de parcourir une arborescence
        read only = no # Pas de lecture seule
        writable = yes # Autorise l'écriture
        create mask = 0700 # Droits sur la création de fichiers
        directory mask = 0700 # Droits sur la création de dossiers
        veto files = /.DS_Store/.fuse_*/ # Ne pas affichier les objets : ".DS_Store" et ".fuse_*"
 
[Sauvegardes]
        comment = Sauvegardes
        path = /saves # Dossier de partage
        browseable = yes
        writable = yes
        validusers = deimos, @smbusers # Utilisateurs ayants droits. Pour définir un groupe, commencez par un "@"
        veto files = /.DS_Store/.fuse_*/
 
[Share2]
        comment = Sauvegardes
        path = /share
        # J'autorise que les accès authentifiés
        guest ok = no
        # Tout le monde peut lire
        read only = yes
        # Mais seul mon groupe smbusers peut écrire
        write list = @smbusers

Quelques explications :

  • Configurez d'abord les données dans Global
  • Définissez bien l'OS level < à 20 sauf si il agit en tant que contrôleur de domaine, alors > 50

Adaptez tout ceci pour votre configuration. Ensuite redémarrez Samba :

Command
/etc/init.d/samba restart

ou comme ceci sous FreeBSD :

Command
/usr/local/etc/rc.d/samba restart

Maintenant, il faut rajouter des utilisateurs ! C'est assez simple, mais c'est le genre de trucs que l'on oublie souvent :

Command smbpasswd
smbpasswd -a deimos

Ceci va ajouter mon utilisateur deimos. Et voici la liste des options possible :

Command smbpaswd
smbpasswd --help
 
When run by root:
    smbpasswd [options] [username]
otherwise:
    smbpasswd [options]
 
options:
  -L                   local mode (must be first option)
  -h                   print this usage message
  -s                   use stdin for password prompt
  -c smb.conf file     Use the given path to the smb.conf file
  -D LEVEL             debug level
  -r MACHINE           remote machine
  -U USER              remote username extra options when run by root or in local mode:
  -a                   add user
  -d                   disable user
  -e                   enable user
  -i                   interdomain trust account
  -m                   machine trust account
  -n                   set no password
  -W                   use stdin ldap admin password
  -w PASSWORD          ldap admin password
  -x                   delete user
  -R ORDER             name resolve order

Sous FreeBSD, vous pourrez trouver le fichier contenant la liste des utilisateurs autorisés dans /usr/local/etc/samba34.

Pour FreeBSD toujours, si vous souhaitez que Samba démarre automatiquement au boot :

Command echo
echo 'samba_enable="YES"' >> /etc/rc.conf.local

4 Connection

4.1 Windows

Pour vous connectez depuis windows, dans une fenetre de liens, tapez ceci :

Command
\\IP_du_serveur_samba\Nom_du_partage

Vous accéderez directement au partage

4.2 Unix (Linux/Mac...)

Vous devez avoir smbfs d'installer avant de continuer :

Command aptitude
aptitude install smbfs

Ensuite, il suffit de créer un dossier et de monter le partage dedans :

Command
mkdir saves
mount -t cifs -o username=user,password=mot_de_passe //192.168.0.1/saves ./saves

5 FAQ

5.1 Test sa configuration

Si vous avez quelques problèmes, voici un moyen de vérifier sa configuration (FreeBSD) :

Command testparm
/usr/local/bin/testparm -s

5.2 Unable to connect to CUPS server localhost:631 - Connection refused

Si vous n'utilisez pas de serveur d'impression CUPS, alors faites les modifications suivante pour le désactiver et permettre à Samba de démarrer :

Configuration File /etc/samba/smb.conf
        # Disable printers
        load printers = no
        show add printer wizard = no
        printing = none
        printcap name = /dev/null
        disable spoolss = yes

5.3 Migrer son fichier smbpasswd vers tdbsam

Il est possible qu'en mettant à jour votre Samba, votre fichier smbpasswd ne fonctionne plus et doive être remplacé par un tdbsam. Tous vos utilisateurs ne fonctionneront alors plus. Le moyen le plus simple est de convertir tous vos anciens comptes vers ce nouveau format :

Command
cd /etc/samba
pdbedit -i smbpasswd -e tdbsam

Il est possible que vous ayez à modifier votre fichier de configuration samba pour y rajouter ceci :

Configuration File /etc/samba/smb.conf
passdb backend = tdbsam:/var/lib/samba/passdb.tdb

6 Ressources

Si vous souhaitez pousser les droits sur les dossiers, regardez la documentation sur les ACL.

Autres documentations sur Samba
CIFS Solaris Workgroup
http://www.csua.berkeley.edu/~ranga/notes/freebsd_samba.html+samba+freebsd&cd=6&hl=fr&ct=clnk&client=ubuntu
http://www.tobanet.de/dokuwiki/samba:upgrade