3. Configuration de Samba

3.1. Le fichier de smb.conf

3.1.1. La section global

La section global du smb.conf permet de définir le rôle et le comportement du serveur samba dans le réseau, en positionnant un certain nombre de paramètres. La liste qui suit n'est pas exhaustive, la lecture du man et de la documentation est un passage obligé.

  • workgroup : indique le groupe de travail dans lequel Samba est intégré

  • server string : le nom NetBIOS du serveur tel qu'il apparaîtra dans le réseua

  • security : prend une valeur parmi share, user, server, domain, ads.

    • share permet un accès aux ressources en se basant uniquement sur les droits des fichiers Unix

    • user correspond à l'identification par login/motdepasse. Si l'iauthenfication réussit, l'attribution d'un GID/UID permet de contrôler l'accès aux ressources pour toute la session

    • server permet d'indiquer à Samba de faire partie d'un domaine NT en tant que serveur membre (ancienne utilisation, obsolète)

    • domain permet d'indiquer à Samba de faire partie d'un domaine NT en tant que serveur membre. Toutes les demandes d'authentification seront relayées au contrôleur de domaine.

    • ads fait du serveur Samba un membre actif d'un domaine Active Directory et ainsi accepter des tickets Kerberos.

  • hosts allow : permet de donner les plages d'adresses IP pouvant accèder au serveur

  • printing : indique le système d'impression à utiliser

  • guest account : indique éventuellement la compte utilisé lors de connexion anonymes. Par défaut il s'agit de nobody

  • log file : dans le cas d'une valeur de type /var/log/samba/log.%m, permet de spécifier un fichier de journalisation par machine

  • passdb backend : indique le backend des mots de passe samba. Par défaut il s'agit de tdbsam.

  • interfaces : spécifie la liste des interfaces réseau sur lesquelles Samba peut accepter les connexions

  • os level : une valeur élevée augmente les chances d'élection de Samba en temps que maître explorateur dans un Workgroup Windows™.

  • preferred master : augmente les chances d'élection de Samba en temps que maître explorateur dans un Workgroup Windows™.

  • logon script, logon path : indique les différents scripts et leur emplacements pour des exécutions au démarrage des machines membres d'un domaine NT, ou au login des utilisateurs.

  • wins supprt, wins server : indique si samba peut être serveur Wins, et dans le cas contraire quel est le serveur Samba sur le réseau.

  • Les différents scripts permettant la gestion des utilisateurs et des groupes depuis des stations clientes sur le domaine.

 [global]
workgroup = FREMENS
server string = FRE_PDC
hosts allow = 172.17.9 
security = user
socket options = TCP_NODELAY
local master = yes
os level = 99
domain master = yes
preferred master = yes
domain logons = yes
logon script = login.bat
logon home = \\serveur\profil\%U
name resolve order = host wins lmhosts bcast
wins support = yes
dns proxy = yes add user script = /usr/sbin/useradd %u
add group script = /usr/sbin/groupadd %g
add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
delete user script = /usr/sbin/userdel %u
delete user from group script = /usr/sbin/deluser %u %g
delete group script = /usr/sbin/groupdel %g

3.1.2. Les partages

Chaque ressource SMB sur le serveur est spécifiée dans une section de smb.conf portant son nom. Les principales options sont les suivantes :

  • path : chemin du répertoire à partager

  • comment : texte visible dans le voisinage réseau client

  • guest ok : si yes partage en accès libre sans authentification

  • valid users : liste des utilisateurs autorisés à se connecter à la ressource

  • printable : partage d'un service d'impression et non d'un répertoire

  • writeable : permet ou non l'écriture sur le répertoire, contraire de read only

  • write list : tous les utilisateurs autorisés à écrire

  • browseable : visibilité du partage par tous, même les utilisateurs non autorisés

  • create mode | mask : droits maximum accordés à un fichier créé dans la ressource

  • directory mode | mask : droits maximum accordés à un répertoire créé dans la ressource

  • force directory mode : droits imposés lors de la création du répertoire

  • force group : Impose un groupe propriétaire d'un fichier lors de sa création dans le partage

  • hide dot files : cache les fichiers cachés

  • hosts deny, allow : toutes les stations interdites, autorisées à accéder à la ressources

  • max connections : nombre maximum de connexions simultanées à la ressources

 [homes]
comment = Domiciliation
browseable = no
writable = yes
force create mode = 0775
force group = resp

[stagiaires]
path = /export/stagiaires
comment = Groupe
writable = yes
browseable = yes
force create mode = 0777

[netlogon]
comment = LogonService
path = /export/netlogon
writable = yes
browseable = no
write list = admin

[profil]
path = /export/profil
browseable = no
writable = yes

[document]
comment = Document
path = /export/document
writable = yes
browseable = yes

[appli]
comment = Applications
path = /export/appli
writable = yes
browseable = yes
write list = admin  

3.2. La gestion des comptes

3.2.1. Gestion des utilisateurs

Nous allons nous intéresser à la gestion des utilisateurs utilisant le backend par défaut, tdbsam. L'outil le plus communément utilisé pour ajouter des utilisateurs Samba est smpasswd :

 smbpasswd  [-a]  [-c <config file>] [-x] [-d] [-e] [-D debuglevel] [-n]
                 [-r <remote machine>]     [-R <name resolve order>]      [-m]
                 [-U username[%password]]  [-h]  [-s] [-w pass] [-W] [-i] [-L]
                 [username]

smbpasswd permet de faire la correspondance entre les utilisateurs Unix et les utilisateurs Samba. Les informations relatives aux comptes sont stockées dans le fichier /usr/local/etc/samba/smbpasswd alors que les mots de passes sont stockés dans /usr/local/etc/samba/secret.tdb.

Il n'est donc pas possible de créer un compte samba n'existant pas à priori dans Unix ! L'authentification sur le serveur Samba aura donc pour conséquence de chercher dans les fichiers précédemments cités une correspondance. Si l'utilisateur est correctement authentifé, alors chaque accès à une ressource du système hôte Samba passera par la vérification des droits Unix correspondant à son compte et à ses groupes unix.

3.2.2. Gestion des comptes dans un domaine

3.2.2.1. Avantages d'un domaine

La gestion d'un réseau via un domaineamène plusieurs avantages non négligeable :

  • SSO

  • Tous les accès réseau et les droits sont gérés depuis le gestionnaire SAM (Security Account Manager)

  • Les configurations de sécurité des postes Windows™ peuvent être gérées via les fichiers de stratégie sytème.

  • L'exécution de scripts de démarrage permet de connecter des ressources réseau et d'automatiser certaines tâches.

  • La centralisation des comptes dans une base de données sur un serveur du domaine

Pour arriver à ce niveau d'intégration des fonctionnalités Windows™, Samba intègre quelques utilitaires complémentaires, permettant par exemple l'ajout des postes Windows™ au domaine, le mappage entre les groupes Windows™ et Unix, etc ...

3.2.2.2. Ajout d'un poste au domaine

L'intégration d'un poste Windows™ à un domaine passe par sa configuration (Poste de Travail). Une demande est alors envoyée au contrôleur de domaine, qui doit ajouter le poste dans sa base (et particulièrement affecter un SID au poste). Dans le cas d'un serveur Samba, le service doit alors soit avoir un compte utilisateur représentant la machine à intégrer, soit créer le compte correspondant automatiquement.

La création manuelle d'un compte pour un machine consiste à ajouter un compte Unix standard, n'ayant pas de Shell ni de répertoire de domiciliation, et appartenant au groupe machine. Ceci est possible en utilisant les utilitaires classiques des distributions Linux ou des systèmes *BSD.

La deuxième méthode consiste à prévoir dans le fichier de configuration la commande qui sera exécutée au moment de l'intégration d'un poste dans le domaine.

add machine script = /usr/sbin/useradd -d /var/lib/nobody -g 100 -s /bin/false -M %u

La ligne précédente ajoutée dans la section globale de smb.conf permet d'exécuter la ligne de commande /usr/sbin/useradd -d /var/lib/nobody -g 100 -s /bin/false -M %ulors de l'intégration d'un poste au domaine. Bien sûr, il faut adapter la commande à chaque cas précis.

De la même manière, il est possible de spécifier les différentes commandes à lancer lors de la manipulation des groupes et des utilisateurs. Ainsi,il devient possible de manipuler les comptes du domaine depuis un poste distant, à condition de disposer des autorisations root sur le serveur.

3.2.2.3. Mappage des comptes Windows avec les comptes Unix

Dans le cas d'une configuration de Samba en PDC, il peut être intéressant de mapper les comptes prédéfinis des domaines Windows™ avec les comptes Unix. Par exemple, le groupe Domain Admins est automatiquement ajouté au groupe Administrateurs dans les clients Windows™ lors de leur connexion au domaine. Ceci permet par exemple de définir des utilisateurs sur le domaine faisant partie du groupe Domain Admins, et qui seront de fait Administrateur de chaque poste du domaine.

La correspondance entre les groupes Unix et les groupes Windows permet de regrouper la gestion des groupes dans un même environnement, et se fait via la commande net. Cette commande va permettre de tenir à jour un fichier de mappage entre les SID des groupes Windows™ et les groupes Unix.

arrakis# net groupmap add ntgroup="Domain Admins" unixgroup=admin rid=512 type=d

La commande précédente permet donc de mapper le groupe unix admin avec le groupe NT Domain Admins. Ainsi, tous les membres du groupe Unix admin seront administrateur de tous les postes du domaine NT. Bien entendu, le principe peut-être étendu à l'ensemble des groupes Windows™.

Skins :
Transparence
Simple
Page Accueil
Formation