Samba

De wikilivois
Révision datée du 29 septembre 2019 à 09:08 par Christophe (discussion | contributions) (Page créée avec « Category:Applications Ce manuel explique la configuration samba pour partager des fichiers sur un réseau local. =Généralités= http://us1.samba.org/samba/docs/man... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche


Ce manuel explique la configuration samba pour partager des fichiers sur un réseau local.

Généralités

http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/

Configuration du serveur

La configuration du serveur Samba s’écrit dans le fichier /etc/samba/smb.conf. La commande testparm permet de vérifier la validité et le contenu de la configuration de smb.conf. La commande grep permet de vérifier la configuration de paramètres précis :

#testparm | grep security
Les lignes peuvent être commentées par un point-virgule (;) ou dièse (#) devant la ligne.

Le fichier se décompose en une section « global » définissant les paramètres généraux suivie de sections pour chaque partage.

La section [global]

  /etc/samba/smb.conf
[global]
netbios name=asteroide
workgroup=WORKGROUP
security=user
log file=/var/log/samba/log.%m
log level=1
encrypt passwords=yes
hosts allow = 127. 192.168.10.


L’exemple de configuration ci-dessus définit :

  • le nom netbios du serveur
  • le nom du domaine ou groupe de travail
  • le type d’authentification utilisé. Il existe trois types user, share et server.

Au cours d’une authentification « user », le client commence la session en envoyant un login et un mot de passe. Le serveur accepte (ou refuse) en fonction de l’adéquation login/password et du nom de machine du client. Le client peut alors monter tous les partages sans mot de passe supplémentaire.

L’ authentification « share » force le client a donner un mot de passe à chaque fois qu’il veut monter un partage.

L’authentification « server » est intéressante pour joindre le serveur à un domaine. Le client donne son login/mot de passe au serveur de fichiers qui s’en sert pour vérifier l’authentification auprès d’un serveur distant (ex PDC).

  • la destination du fichier de logs (ici un fichier par machine d’où le %m)
  • le niveau de debuggage désiré dans les logs (de 0 à 10)
  • le cryptage des mots de passe
  • le fichier de mot de passe
  • l’option hosts allow permet de limiter les connexions à certaines adresses IPs.

Le manuel (man smb.conf) donne un description précise de chaque paramètre. On y trouve aussi la définition des variables utilisées par smb.conf :

  • %m nom netbios de la machine qui se connecte
  • %L nom netbios du serveur
  • %u nom de l’utilisateur du partage
  • %U nom de session de l’utilisateur sur le serveur
  • %v numéro de version Samba

Le fichier de mot de passe

Le plus simple pour samba est d'utiliser la base d'authentification - utilisateur et machine - TDB (trivial database). L'utilisation de cette base est recommandée pour les systèmes qui n'ont pas besoin d'authentification LDAP, avec moins de 250 utilisateurs.

  /etc/samba/smb.conf
 passdb backend = tdbsam


Pour connaître la liste des utilisateurs, taper:

#pdbedit -w -L

Les autres sections

Elles correspondent à différents types de partages

[netlogon] est utile pour une configuration en PDC

[home] définit automatiquement les répertoires utilisateurs (cf serveur de fichiers)

[partage] définit tous les autres partages (cf serveur de fichiers)

Commandes de vérification

Commandes Linux

Chercher une machine samba sur l’adresse 127.0.0.1:

#nmblookup –U 127.0.0.1 __SAMBA__ 

Rechercher sur tout le réseau local :

#nmblookup –B 192.168.10.255 __SAMBA__ 

Lister les partages :

#smbclient  –L \\serveur 

Se connecter à un partage avec l’utilisateur user :

#smbclient \\serveur\partage –U user 

La commande smbmount monte les partages :

#smbmount //serveur/partage /mnt/partage –o ip=192.168.10.1, username=user

smbmount

smbmount //asteroide/Bureau /mnt/smb -o ip=192.168.111.1,username=chris
smbmount //asteroide/Bureau /home/chris/smb/
smbclient //asteroide/Bureau -U chris -I 192.168.111.1

Avec smbfs dans fstab:

  /etc/fstab
//home/chris    /mnt/home_chris smbfs  user,auto,rw,uid=chris,credentials=.home.cre 0 0
//home/data     /mnt/data       smbfs  user,exec,gid=users,credentials=.home.cre,codepage=cp850,iocharset=iso8859-15,debug=4 0 0


ou avec cifs :

  /etc/fstab
//home/usbdisk  /mnt/usbdisk cifs  user,exec,gid=users,credentials=.home.cre,iocharset=iso8859-15 0 0


Attention cifs utilise le dns pour retrouver home

  .home.cre
username=xxx
password=xxx


Commandes Windows

#nbtstat –A 192.168.10.12 donne les noms netbios enregistrés par une adresse IP

#net view donne les serveurs de fichiers sur le réseau

#net view \\serveur donne les partages disponibles sur une machine

#net use h: \\serveur\partage /user:chris connecte un partage au lecteur réseau H:

#net use * /d déconnecte tous les partages.

Serveur de fichiers

Création des utilisateurs (si pas de PDC)

Il faut créer un compte Unix et un compte samba par utilisateur :

#adduser utilisateur
#smbpasswd –a utilisateur
L’option –a permet de rajouter le mot da passe utilisateur au fichier smbpasswd.

Il ne faut pas oublier de créer le « home » de l’utilisateur avec les bons droits :

#mkdir /home/utilisateur
#chown utilisateur.public /home/utilisateur -R
L’utilisateur correspond à son « login » et le groupe public, correspond au groupe de partage.
#ls -l
drwxr-xr-x    3 cdelivois InterAct     4096 Dec 19 18:57 cdelivois

Configuration de partages

Le partage [homes]

Le partage [homes] correspond au partage propre à chaque utilisateur qui correspond à son répertoire personnel définit dans /etc/password.
  /etc/samba/smb.conf
[homes]
guest ok=no
read only=no


Le partage n’autorise pas l’accès aux invités et peut être utilisé en écriture.

Les partages « classiques »

  /etc/samba/smb.conf
 [Assistante]
browseable=Yes
path=/home/assistante
invalid users = root
valid users = cdelivois,struttet
writeable=yes
create mask=0660
directory mask=0770


Création des répertoires

Il faut créer les répertoires avec les bons droits. Par exemple pour le répertoire « films » :

#mkdir /home/films
#chown root.public /home/films
#chmod 770 /home/films

Remarque : Tous les utilisateurs doivent faire partie du même groupe (public en l’occurrence). Ils pourront alors accéder par l’explorateur windows aux fichiers du répertoire assistante s’ils sont référencés dans la ligne « valid users ».

Attention, cela veut dire que si ces utilisateurs ont un accès telnet ou ssh au système, ils peuvent récupérer tous les documents auxquels ils n’ont pas accès par l’explorateur. Si l’accès ssh est requis pour tous, le seul moyen est de créer un groupe d’accès par répertoire.

Pour inscrire un utilisateur dans un groupe, il suffit d’éditer le fichier /etc/group et de mettre l’utilisateur, à la fin de la ligne. Ex :
  /etc/group
films::500:you,me


Permissions

Paramètres avancés

  /etc/samba/smb.conf
hide unreadable = Yes
cache les fichiers qui ne sont pas accessibles
veto files =/*.exe/*.dll/*.com/*.vbs/*.{*}/
hide files = /fichieracacher.txt/*.test/

veto oplock files = /*.mdb/*.MDB/


Op lock veut dire « Opportunist locking » : le client peut télécharger un fichier et le mettre en cache sur son disque dur pendant qu’il le modifie. Si un deuxième client veut accéder au fichier, le premier client est averti et met à jour la version sur le serveur. Cela améliore les performances mais l’oplock ne doit pas être utilisé lors de l’utilisation à plusieurs d’une base de données. Les oplocks peuvent être désactivés par les options oplocks et level2oplocks.

Autoriser la commande NET TIME \\SERVERNAME /SET /YES qui synchronise l’horloge client sur l’horloge du serveur.

time server = Yes


Optimiser les performances du serveur avec socket options.

socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192


Problèmes rencontrés

Le fichier docs/textdocs/DIAGNOSIS.TXT livré avec les sources de Samba permet de diagnostiquer les problèmes les plus courants.