Introduction à Samba sous Gnu/Linux #C22
-- Download Introduction à Samba sous Gnu/Linux #C22 as PDF --
Samba est un logiciel libre qui supporte le protocole CIFS (Common Internet File System), anciennement appelé SMB (Server Message Block), sous licence GNU GPL 3, il est utilisé pour partager des ressources (fichiers, imprimantes …) à travers un réseau entre des postes Microsoft Windows et un serveur de fichier sous Linux.
À partir de la version 3, on peut intégrer un serveur Samba à un domaine Microsoft Windows Server, soit en tant que contrôleur de domaine principal (PDC) ou en tant que membre d’un domaine. On peut également le joindre à un domaine Active Directory. Il fonctionne sur la plupart des systèmes Unix, comme GNU/Linux, Sun Solaris, AIX et les variantes de BSD, y compris MacOSx Server (qui a été ajouté au client Mac OS X en version 10.2). Samba fait partie intégrante de presque toutes les distributions GNU/Linux.
Voici la liste des ports TCP et UDP utilisés par les protocoles SMB et CIFS pour le partage de fichiers et d’imprimantes.
Port | Protocole | Nom du service |
---|---|---|
135 | TCP et UDP | Localisateur de services RPC |
137 | TCP et UDP | NetBIOS Name Service (nbname) |
138 | UDP | NetBIOS Datagram Service (nbdatagram) |
139 | TCP | NetBIOS Session Service (nbsession) |
445 | TCP et UDP | Services de dossiers partagés Windows |
Installation de Samba pour quelques grandes familles de distribs :
Si vous êtes sous Mandriva la famille Mandrake :
# urpmi samba samba-common samba-client
Sous Fedora et la famille Red-hat :
# yum install samba samba-common samba-client
Sous Debian, Ubuntu, linuxmint… :
# apt-get install samba samba-common smbclient smbfs samba-doc
Sous Slackware :
Samba est déjà présent sur le CD-ROM, l’installez en faisant :
# installpkg /chemin_du_fichier/samba-xxx.tgz
- ATTENTION AUX DIFFERENCES EN FONCTION DES DISTRIBUTIONS
- ATTENTION AUX DIFFERENTES VERSIONS DE SAMBA
Une fois SAMBA installé il faut se rendre à l’endroit ou se trouve le fichier de configuration.
Dans /etc ,dans /etc/samba en fonction de la distribution.
Le fichier de configuration principale est: smb.conf
Il suffit ensuite d’utiliser un éditeur de fichier pour éditer, modifier, compléter celui-ci.
ex: vi /etc/samba/smb.conf
La commande « testparm », sert à vérifier que le fichier de configuration de samba ne comporte pas d’erreurs. Elle sert également à connaitre le rôle de son serveur de fichier Samba. Vous pouvez lancer cette commande de n’importe ou.
La section [global]
contient les options communes à tous les répertoires partagés.
Voici quelques options utilisables :
- workgroup
- Le nom du groupe de travail.
- server string
- La description du serveur, qui apparaitra à coté de son nom dans l’explorateur Windows. Si la description contient la variable %h, il sera remplacé par le nom d’hôte de la machine.
- encrypt passwords Attention aux soucis en fonction des versions
- 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 Ko.
- Ensuite on retrouve les partages sous cette forme:[<nom du partage>]
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.
De nombreuses autres options sont disponibles. Elles sont détaillées dans la page de man de smb.conf
EXEMPLE
[global] workgroup = CRC12 server string = Serveur Samba sur %h encrypt passwords = true log file = /var/log/samba/log.%m max log size = 1000 socket options = TCP_NODELAY
[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
[tontonfred] comment = Site web path = /var/www/tontonfred.net read only = no
Si vous décidez de rendre privé un partage :(Commande pour créer un user Samba)
smbpasswd -a <nom de l’utilisateur>
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.
Attention dans Authentification :
security = share =========>Accès sans mot de passe
security = user ==========>Accès avec demande de mot de passe
Cas particulier: accéder à un dossier partagé par Windows 7 (Source Ubuntu-fr)
Il est possible que vous ayez de la difficulté à accéder à des dossiers partagés par un ordinateur fonctionnant avec Windows 7, même en saisissant correctement vos informations d’identification du poste distant. Ceci est dû apparemment à une incompatibilité entre les modes departage de Windows 7 et ceux des précédentes versions de Windows (sur lesquels se base Samba). Pour corriger la situation, vous devez modifier certains paramètres concernant la gestion des partages par Windows 7.
-
Dans votre ordinateur fonctionnant sous Windows 7, ouvrez une session à l’aide d’un compte d’administrateur;
-
Ouvrez l’éditeur de base de registre. Appuyez sur le bouton Démarrer, puis dans le champ Rechercher les programmes ou fichiers, inscrivez regedit et appuyez sur la touche [Entrée] de votre clavier;
-
Développez l’arborescence jusqu’à la clé de registre
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\
puis:-
Modifiez la valeur de la clé
everyoneincludesanonymous
de 0 vers 1; -
Modifiez la valeur de la clé
NoLmHash
de 1 vers 0;
-
-
Développez l’arborescence jusqu’à la clé de registre
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters
, puis:-
Modifiez la valeur de la clé
restrictnullsessaccess
de 1 vers 0;
-
-
Redémarrez votre ordinateur.
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
.
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
Même chose à partir d’un Windows Client
net use z: \\10.0.0.10\monrepertoire monpassword /user:toto /persistent:no
Le fonctionnement de Samba repose principalement sur trois services (daemons): smbd
, nmbd
et winbindd
.
-
smbd
Ce service est celui qui permet le partage des fichiers et des imprimantes. Son paramètrage se fait par l’intermédiaire du fichier deconfiguration /etc/samba/smb.conf.smbd
vérifie toutes les trois minutes ce fichier pour prendre en compte les modifications ; pour une application immédiate des changements, relancez ce service -
nmbd
Ce service sert à l’envoi et la découverte des noms NetBIOS (nom des machines) dans le réseau local. Il est également utilisé pour la résolution de noms et la fonction WINS, lorsque votre serveur Samba est le serveur d’un réseau NetBIOS. Ses paramètres sont aussi renseignés dans le fichier de configuration /etc/samba/smb.conf. -
winbindd
Ce service n’est utilisé que lorsqu’un serveur Samba intègre un domaine NT ou pour gérer les relations d’approbation entre le serveur Samba et un domaine Windows / Active Directory.
Quand vous effectuez une modification dans le fichier smb.conf, il faut redémarrer le service Samba en relation avec la modification.
/etc/init.d/samba restart
service samba restart
/etc/init.d/smbd restart
Pour optimiser le fonctionnement de Samba on peut utiliser des variables d’environnement:
Variables du client | |
%a | Architecture du client Exemple: Win95, WfWg, WinNT, Samba … |
%I | Adresse IP du client |
%m | Nom NetBios du client |
%M | Nom DNS du client |
Variables utilisateur | |
%g | Groupe primaire de l’utilisateur %u |
%H | Répertoire home de l’utilisateur %u |
%u | Nom de l’utilisateur Unix courant |
Variables de partage | |
%P | Racine du partage actuel |
%S | Nom du partage actuel |
Variables du serveur | |
%h | Nom DNS du serveur Samba |
%L | Nom NetBios du serveur Samba |
%v | Version de Samba |
Variables diverses | |
%T | La date et l’heure courantes |
Pour configurer Samba il existe des interfaces graphique, soit propre à la distribution soit des outils tiers que l’on rajoute.Comme Webmin et Swat
Samba Contrôleur de Domaine
Modifier les paramètres important du smb.conf :
[global] # Nom du groupe de travail ou du domaine workgroup = tontonfred.net # Nom qui apparait lors du parcours reseau (%h = hostname) server string = %h # Configuration des logs du serveur log file = /var/log/samba/%m.log # Taille maximal des logs (en kb) max log size = 1000 # Mode d'authentification # - share = ok pour tous # - user = oblige d'avoir un compte sur le serveur samba # - domain = pour joindre un domaine security = user # Activation du cryptage des mots de passe encrypt passwords = yes #Emplacement du fichier des utilisateurs samba smb passwd file = /etc/samba/smbpasswd # L'option ci-dessous definit Samba comme le Controleur de domaine principal (maitre). domain master = true # Le niveau d'OS indique l'importance de ce serveur en tant que candidat au role de controleur principal lorsqu'une élection est provoquée os level = 255 # Permettre d'utiliser les profils errants sur le serveur samba domain logons = Yes # Gestion de l'authentification sur le domaine wins support = no
Redémarrer le service Samba et tester le rôle avec testparm pour avoir :
Le plus important est ROLE_DOMAIN_PDC
Pour joindre un client Xp ou Seven, il faut tout d’abord avoir créer un compte samba à l’utilisateur root, soit: smbpasswd -a root
ensuite il faut créer des comptes machines pour les pc sous Seven/xp, cad :
adduser –force-badname nomduclientwindows$
smbpasswd -a -m nomduclientwindows (sans le $)
Ensuite il faut joindre le domaine avec le client Windows avec l’utilisateur root comme vous avez l’habitude de le faire avec un Domaine Windows.
N’oubliez pas de modifier le registre de Seven
Si problème avec Xp modifier le registre comme ceci :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\parameters
“RequireSignOrSeal”=dword:00000000
Pour les visiteurs lisant ce billet, attention on ne gére pas dans cette exemple les partages administratifs de Windows pour les profils itinérants .Ils seront vus ici dans un autre billet ultérieurement.
Sources:
- http://fr.wikibooks.org/wiki/Administration_r%C3%A9seau_sous_Linux/
- http://www.samba.org/
- http://doc.ubuntu-fr.org/samba
8 thoughts on “Introduction à Samba sous Gnu/Linux #C22”
Comments are closed.
Samba pati ou pas pati???
??
Samba pa ti tube de Carlos SANTANA 1970 album Abraxas… C’est ta génération qd même…
Pour joindre le domaine à partir de Windows 7 :
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesLanmanWorkstationParameters]
“DomainCompatibilityMode”=dword:00000001
“DNSNameResolutionRequired”=dword:00000000
Clés à rajouter
C’est dispo en pdf ou pas pour nous ?
Question de Matthieu
Comment afficher la liste des utilisateurs SAMBA ?
avec cette commande :
pdbedit -L
Tuto pour qu’il faut regarder de plus près pour ne pas se perdre dans les détails. Il parait qu’on maitrise la samba (je ne sais pas si c’est la ou le) avec la formation lpic troisième niveau? un truc que j’aimerai bien apprendre car à voir la tuto, c’est du pur et dur libre. Etant donné que je suis junior en linux, j’ai des lacunes, beaucoup même. Donc, pour ceux qui sont déjà des avancés et qui veulent être des maestro voici une formation http://www.alphorm.com/tutoriel/formation-en-ligne-linux-lpic-3-environnement-mixte-examen-300