vendredi 18 septembre 2015

Administration des services Réseaux: Configuration du service SAMBA sous Linux

Samba est un service permettant de partager des répertoires et imprimantes entre des stations Linux et des stations Windows. 
Configuration du service Samba
Pour la configuration de ce service le principal fichier à modifier est smb.conf qui se trouve généralement dans /etc ou /etc/samba selon la distribution.
Il existe également des interfaces graphiques pour configurer Samba.
La section [global] contient les options communes à tous les répertoires partagés.
Voici quelques options utilisables :
workgroup
Le nom du groupe de travail. Les ordinateurs du même groupe de travail se retrouvent côte à côte dans le
voisinnage réseau de Windows.
server string
La description du serveur, qui apparaitra à coté de son nom dans l'explorateur Windows. Si la description
contient le terme %h, il sera remplacé par le nom d'hôte de la machine.
encrypt passwords
Détermine si les mots de passe doivent être cryptés avant d'être transmis. C'est fortement recommandé et tous
les systèmes Windows à partir de 98 et NT4 SP3 utilisent cette fonctionnalité par défaut.
log file
Le nom du fichier qui contiendra le journal des activités du serveur. On peut avoir un journal par machine
client en utilisant %m dans le nom du fichier. Le %m sera remplacé par le nom de la machine client.
max log size
Taille maximale du fichier journal, en Kio.
socket options
Indique les options à mettre sur les sockets comme par exemple TCP_NODELAY pour que le système envoi
immédiatement les petits paquets sans attendre d'en avoir plusieurs.
De nombreuses autres options sont disponibles. Elles sont détaillées dans la page de man de smb.conf [1]
Exemple
[global]
workgroup = maison
server string = Serveur Samba sur %h
encrypt passwords = true
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY
Configuration du partage des répertoires
Les partages Samba sont décrits dans des sections ayant la forme suivante :
[<nom du partage>]
<option> = <valeur>
...
Les paramètres principaux sont les suivantes :
comment
La description du répertoire partagé.
path
Le chemin du répertoire partagé. C'est le contenu du répertoire indiqué qui sera partagé.
read only
Détermine si les clients pourront écrire ou non dans le répertoire partagé.
public
Autoriser ou non les connexions sans mot de passe.
valid users
Liste des seuls utilisateurs autorisés à se connecter séparés par des espaces. Si on veut autoriser tous les
utilisateurs il ne faut pas mettre cette option.
browseable
Détermine si le partage apparaitra dans la liste des partages du serveur.
La section [homes] est un partage particulier. Elle définit le partage des répertoires utilisateur des comptes unix de
la machine.
De nombreuses autres options sont disponibles. Elles sont détaillées dans la page de man de smb.conf [1]
Par défaut (version 3.5.6) vous pouvez accéder à samba de façon anonyme (smbclient //serveur/nom_du_partage -U
compte sans mot de passe). Pour effectuer un accès plus sécurisé (avec compte et mot de passe), vous devez
également ajouter un compte samba qui se référence à un compte linux existant: adduser compte (si ce
n'est pas fait) smbpasswd -a compte Les droits des répertoires et fichiers doivent être correct.
Exemple chmod u+rws,g+rx,o+rx .../dossier et/ou fichier
Exemples
[cdrom]
comment = Samba server's CD-ROM
read only = yes
locking = no
path = /cdrom
guest ok = yes
[partage]
path = /media/d/partage
available = yes
browsable = yes
public = yes
writable = yes
[zelinux]
comment = Site web
path = /myrep/zelinux
read only = no
Protéger les répertoires partagés
Il est possible de rendre privé un répertoire et d'autoriser ou non des utilisateurs à y accéder.
Pour cela, pour chaque répertoire partagé ajoutez les options:
public = no
valid users = <nom des utilisateurs autorisés à accéder aux répertoires>
Pour chaque nom que vous avez rentré, il faut ajouter l'utilisateur samba avec
smbpasswd -a <nom de l'utilisateur>
Un compte unix du même nom doit exister. Si ce n'est pas le cas, il faut le créer avec la commande adduser.
Lancement du service
Lancement :
/etc/init.d/samba start
Pour le stopper :
/etc/init.d/samba stop
Pour le relancer :
/etc/init.d/samba restart
Les modifications du fichier smb.conf sont prises en compte pour chaque nouvelle connexion. Pour les rendre
effectives sur les connexions déjà établies, il faut relancer Samba.
Accès aux répertoires
Pour accéder aux partage sous Windows, il suffit d'ouvrir le voisinage réseaux d'une station Windows et de vérifier
si la machine y est.
Pour se connecter en ligne de commande à un partage à partir de Linux, on peut utiliser la commande
smbclient //<nom du serveur>/<nom du partage> -U <utilisateur>
Il est également possible de monter un partage Samba avec
smbmount //<nom du serveur>/<nom du partage> <répertoire local>
Différentes options sont disponibles. On peut les consulter dans man smbclient et man smbmount.
Généralement, il est conseillé d'ajouter les options -o username=compte,password=??? pour se connecter.
Par exemple, pour monter un répertoire "public" il faut préciser qu'il faut se connecter en guest :
smbmount //serveur/partage /point_de_montage -o guest
Il faut également que votre compte utilisateur ait des droits sur le montage. Le compte root peut utiliser smbmount
sans trop de problème.
Autrement, plusieurs possibilités existent:
1. compléter le fichier /etc/fstab avec votre montage //<IP-ADRESS>/<folder_on share>
<your_local_mountpoint cifs
defaults,iocharset=utf8,codepage=cp850,uid=1000,gid=1000,noauto,user,credentials=~/.smbcredentials
0 0)
2. ajouter des droits dans sudoers. (par défaut sous ubuntu 10.10, sudo smbclient //<nom du
serveur>/<nom du partage> <répertoire local>-o username=compte,password=???
fonctionne bien).

Aucun commentaire:

Enregistrer un commentaire