Installation serveur Samba

Décembre 2016

Installation et configuration d'un serveur Samba version 3.0.2a
Linux Mandrake version 10.0




Prérequis


Installation de la distribution Mandrake 10.0 (Serveur)
Avoir un domaine.

Introduction


Le serveur Samba est l'outil privilégié pour installer un réseau LAN (Local Area Network) fonctionnant avec le protocole SMB (Server Message Block). Il est donc possible de mixer efficacement dans un même réseau stations Linux et PC Windows grâce à la connaissance de ce logiciel serveur.
Son utilité : SAMBA est un système de partage de fichiers et d'imprimantes entre des stations Unix et Windows de façon transparente et stable.

1.Architecture de Samba


Samba est constitué d'un serveur et d'un client, ainsi que de quelques outils permettant de réaliser des services pratiques ou bien de tester la configuration.
Le serveur est constitué de deux applications (appelées démons):
smbd, noyau du serveur, fournissant les services d'authentification et d'accès aux ressources
nmbd, permettant de montrer les services offerts par Samba (affichage des serveurs Samba dans le voisinage réseau, ...)
le client: smbclient est un client pour linux fournissant une interface permettant de transférer des fichiers, accèder à des imprimantes
smbtar: permettant d'effectuer un transfert de ou vers un fichier TAR sous linux
testparm vérifiant la syntaxe du fichier smb.conf, le fichier de configuration de Samba
Le protocole de communication permettant cette communication entre Windows et Linux s'appelle SMB (Server Message Block). Mis au point par Microsoft en 1987, en reprenant un concept mis au point par IBM en 1985 (NetBIOS), ce protocole s'appuie sur NetBEUI (ainsi que TCP/IP). L'intérêt de TCP/IP provient du fait qu'il a été très largement adopté. Ainsi TCP/IP est déjà implémenté sur la plupart des systèmes d'exploitation (Unix, Linux, AmigaOS, MacOS, OS/2, ...). selon le schéma suivant :
Application
SMB
NetBios
TCP/IP
NetBeui
IPX/SPX
Pilotes Réseaux

2.Installation des paquetages nécessaires au serveur samba


Avant toute chose s'assurer que les paquetages nécessaires sont installer sinon les installer en tapant mcc (Centre de Contrôle Mandrake) en ligne de commande dans le terminal en se loggant en tant que root (taper su puis le mot de passe du root), aller dans Gestionnaire de Logiciels puis dans Installer, sélectionner les trois paquetages suivants (dans tous les paquetages, classement alphabétiques) :

samba-client-3.0.2a-3mdk
samba-common-3.0.2a-3mdk
samba-server-3.0.2a-3mdk

Puis cliquer sur Installer.

Premier démarrage de Samba


Après installation, le serveur de Samba devrait normalement être apte à démarrer (sans aucun partage de fichiers ou d'imprimante) en lançant la commande suivante:
/etc/rc.d/init.d/smb start
Starting SMB services: [OK]
Starting NMB services: [OK]

La commande suivante permet de contrôler que les deux démons sont correctement lancés
/etc/rc.d/init.d/smb status (ou service smb status)

smbd (pid 1054) is running...
nmbd (pid 1056) is running...

Les commandes utiles


(à partir du terminal en root)
  • testparm /etc/samba/smb.conf
    • Test de syntaxe d'écriture du fichier smb.conf
  • /etc/rc.d/init.d/smb stop
    • Stop les services Samba
  • /etc/rc.d/init.d/smb start
    • Démarre le serveur Samba
  • /etc/rc.d/init.d/smb restart
    • Redémarrage de Samba
  • /smbstatus
    • Affiche les connexions actives via Samba

3.Configuration du fichier smb.conf


La configuration de Samba est effectuée par l'intermédiaire d'un fichier de configuration unique: smb.conf. Ce fichier est située dans le répertoire /etc/samba/
Remarque : à chaque modification du fichier smb.conf à l'aide d'un éditeur de texte, l'enregistrer puis taper en ligne de commande : /etc/rc.d/init.d/smb restart (afin de redémarrer le serveur samba et par la même occasion prendre en compte les modifications du fichier smb.conf)
Ce fichier décrit les ressources que l'on désire partager, ainsi que les permissions/restrictions qui leur sont associées. Le fichier smb.conf se découpe selon des rubriques (chacune référencé par une ligne contenant le nom de la section entre crochets) comprenant chacune un ensemble de lignes de paramètres du type attribut = valeur. Une ligne commençant par un # est une ligne de commentaires et une ligne commençant par ; est inactive.
Il existe 3 sections principales :
  • La section [global]
    • définit des paramètre généraux sur le serveur
  • La section [homes]
    • définit le partage d'un répertoire personnel
  • La section [printers]
    • définit les imprimantes partagées par le serveur

Section "global"


Voici un exemple (l'exemple est celui du réseau R2D4) de section [global] :
[global]

# même nom de groupe que celui sous Windows (Voisinage réseau)
workgroup = MSHOME

# nom sous lequel apparaîtra le serveur dans le voisinage réseau
netbios = samba server

# ce qui apparaîtra dans la rubrique détail du voisinage réseau, %v fait
# apparaître le n° de version de samba
server string = Samba Server %v

# les mots de passe transitent cryptés
encrypt passwords = Yes
smb passwd file = /etc/samba/smbpasswd

# lieux de stockage du journal des événements
log file = /var/log/samba/log.%m

# taille maximum du journal
max log size = 50

# aucun compte invité (facultatif)
guest account = nobody

# accès multi-utilisateur (facultatif)
Share modes = yes

# emplacement du fichier printcap (imprimantes sur le serveur Linux)
printcap = /etc/printcap

# partage de toutes les imprimantes définies dans printcap
printcap name = cups
load printers = yes
printing = cups
printer adm = @ adm

# fichier journal de Samba
log level = 1
log file = /var/log/samba/log.%m

# mode de sécurité : (user / share / server)
security = user

# Autoriser l'accès a certains réseaux (le point final est important)
hosts allow = 192.168.1.

# Vous pouvez autoriser toutes les machines de ce réseau sauf 192.168.1.10
hosts allow = 192.168.1. EXCEPT 192.168.1.10

# Mettre les adresses IP des machines auxquelles vous souhaitez interdire l'accès
# au serveur samba par exemple : ALL, pour interdire tout le monde sauf les
# machines autorisées par <hosts allow>.
Hosts deny = ALL

# pas de proxy dns
dns proxy = No

# Laisser ce champs par défaut
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

# active le fonction de serveur de temps
time server = yes

# le script de connexion porte le nom du groupe, %g est la variable samba pour le
# groupe primaire
logon script = %g.bat

# autorise la connexion des utilisateurs sur le domaine
domain logons = yes

# Si on veut que le serveur soit le maître du domaine
domain master = yes

# dans le cas de la présence de plusieurs contrôleurs de domaine, c'est le
# serveur qui est le favori
preferred master = yes

# En cas de serveur maître permet de gagner l'élection contre les autres machines
# windows
os level = 255
# on donne l'accès au répertoire netlogon qui contient les scripts de démarrage
[netlogon]

#chemin d'accès du répertoire
path = /home/netlogon

# seuls les utilisateurs spécifiés peuvent utiliser ce répertoire
public = no

# on ne peut pas écrire dans ce répertoire
writable = no

# le répertoire n'apparaît pas dans l'arborescence
browseable = no

#liste des utilisateurs ayant les droits root sur ce répertoire, ici le formateur
admin users = guillaume

Section "homes"


Partage du répertoire personnel
La section [homes] permet de définir l'accès au répertoire personnel de chaque utilisateur. Voici un exemple de section:

[HOMES]
# commentaire visible depuis le voisinage reseau
comment = Home Directories

# affichage de la ressource pour tous
browseable = no

# possibilité d'écrire sur la ressource
writable = yes

Section "documents"


Partager un répertoire quelconque
Il est possible de définir une accès personnalisé à n'importe quel répertoire de la machine en créant une section portant le nom que le veut donner à la ressource. Celui-ci contiendra entre autres un paramètre path donnant le chemin d'accès à la ressource.
Ce répertoire sera consultable en lecture et en écriture sur la station Windows suivant l'utilisateur loggé.
Voici un exemple de section personnalisée:

[DOCUMENTS]
# commentaire visible depuis le voisinage réseau
comment = /home/Répertoire_quelconque

# chemin d'accès a la ressource
# Attention à la casse !!
path = /home/Répertoire_quelconque

# affichage de la ressource pour tous
browseable = no
guest ok = yes

# mettre les noms d'utilisateurs qui seront validés, la procédure pour les
# insérer sera expliquée ultérieurement
valid users = noms_utilisateurs

# chemin d'acces a la ressource
#etant donné que des utilisateurs insérés pourront y accéder il faut mettre no
public = no

# utilisateurs ayant les droits root sur ce répertoire
admin users = noms_utilisateurs

# possibilité d'écrire sur la ressource
writable = yes

Section "cdrom"


Partage d'un lecteur de CD-ROM
Il est ainsi possible de partager un lecteur de CD-ROM (celui-ci devant être préalablement monté) , en créant par exemple une section [cd-rom] comme suit:

[CD-ROM]
# commentaire visible depuis le voisinage reseau
comment = lecteur de CD-ROM

# chemin d'accès au lecteur
path = /mnt/cdrom

# accessible à tous
public = yes

# impossibilité d'écrire sur la ressource
writable = no

create mask = 0750

4. Accèder à une ressource Samba sous linux


Le client Samba (smbclient) permet de fournir une interface en ligne de commande pour accéder aux ressources Samba à partir d'une machine de type Unix.
smbclient permet en premier lieu de vérifier l'existence d'une serveur Samba sur le réseau et de lister les ressources qu'il partage grâce à la commande:
smbclient nom_serveur_smb
Une fois les ressources identifiées, il est possible d'accèder à chacune d'entre elles par la commande:
smbclient \\\nom_serveur_smb\\ressource -U nom_utilisateur
Un mot de passe devrait être demandé à l'utilisateur. Il suffit ensuite d'envoyer des commandes FTP afin d'envoyer/recevoir des fichiers ou bien de parcourir les répertoires de la ressource.
L'accès à une imprimante se fait par la commande
smbclient \\\nom_serveur_smb\\ressource -P
l'impression du fichier /usr/local/samba/lib/etc.conf se fait par la commande:
print /usr/local/samba/lib/etc.conf
la visualisation de la queue d'impression:
queue
l'arrêt de smbclient:
exit
Remarque : Pour accèder au voisinage réseau sous Linux, ouvrir Konqueror et taper dans la barre d'URL : smb:/

5.Création des utilisateurs Samba et accès aux comptes de ces utilisateurs


Créer un utilisateur sur la machine serveur Samba sous Linux Mandrake version 10 (serveur) :

Graphiquement


En ligne de commande taper mcc en se loggant en tant que root (ou passer par le menu « configure your computer »),nous voilà dans le Centre de Contrôle Mandrake , ensuite aller dans « système » puis « Utilisateurs et groupes » enfin « ajouter utilisateur ».

En ligne de commande taper


adduser Nom_Utilisateur

Ensuite entrer le mot de passe de l'utilisateur dans le fichier smbpasswd dans le répertoire /etc/samba de la manière suivante (en ligne de commande):
smbpasswd -a Nom-Utilisateur
En réponse :
New SMB password : Donner le même mot de passe que lors de l'ajout de l'utilisateur
Retype new SMB password :idem

Créer le même utilisateur avec le même passe sur la machine Windows (Client) :

Aller dans « panneau de configuration » puis dans compte utilisateur pour créer un utilisateur avec les droits « administrateur »

Renouveler autant de fois l'opération précédente qu'il y a d'utilisateur à créer.

Remarque : En cas d'utilisateurs déjà existant sur la machine Windows, le recréer uniquement sur le serveur Linux et surtout ne pas renommer un utilisateur, soit il est déjà existant soit il faut le créer. A chaque création d'utilisateur sous windows, redémarrage de la station.

6.Le partage de répertoires


Il y a le partage du répertoire personnel, qui affiche les répertoire selon l'utilisateur logué et il y a le partage d'un répertoire commun.
Attention, si on partage un répertoire ne se trouvant pas dans l'arborescence « Home », tout accès sera refusé, donc le répertoire « Home » ou un de ses sous-répertoires doit contenir ce répertoire commun pour un usage optimal de celui-ci.

7.Les messages d'erreurs


Des messages d'erreurs du type suivant peuvent provenir :

Problèmes : Réseau introuvable (sous Windows)
ou encore :
Internal Error
Please send a full bug at http://kde.org
Unknown error condition in stat : Network is unreahable (sous Linux)
Ce type d'erreur signifie que vous n'êtes pas connecté à un réseau, branchement, câbles réseau à vérifier, configuration réseau et fichier /etc/samba/smb.conf à vérifier également.

Si un message d'erreur tel que :
Impossible de se connecter au serveur samba
est affiché, dans ce cas vérifier la configuration du fichier /etc/samba/smb.conf.
Le serveur Samba s'affiche au sein du domaine mais affiche le message d'erreur suscité lorsque l'on clique dessus, dans ce cas vérifier le chemin du répertoire de partage quelconque ou personnel dans le fichier smb.conf.

A voir également :

Ce document intitulé «  Installation serveur Samba  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.