Skip to content

Contrôleur de domaine Samba

Par Sébastien Bilbeau de http://www.tux-planet.fr/

Nous allons voir ici, comment mettre en place un contrôleur de domaine principal sous linux, avec samba.[]{#anchor}

1. Introduction

Le but de ce tutoriel est de :

  • créer un contrôleur de domaine nommé SRV
  • créer un domaine nommé VOTREPRENOM
  • créer un groupe dom_admin contenant les administrateurs du domaine
  • créer un groupe dom_users contenant tous les utilisateurs du domaine
  • créer un groupe dom_pc contenant toutes les machines du domaine
  • mettre en place un homedir pour chaque utilisateur accessible seulement par eux
  • mettre en place un dossier partagé public, accessible par tous
  • mettre en place un dossier partagé private, accessible seulement par les utilisateurs du domaine
  • exécuter un script sur une machine cliente, lorsqu'elle vient de se loger au domaine, permettant de monter automatiquement les deux lecteurs réseaux vers les dossiers partagés, de monter le dossier personnel et synchroniser l'horloge à celle du serveur

Ce tutoriel a été testé sur une Ubuntu.

2. Installation

Pour installer samba sur Ubuntu, on exécutera simplement la commande suivante :

apt install samba

3. Configuration

Voici le fichier de configuration, à mettre dans le répertoire /etc/samba/smb.conf. Je vous invite à regarder les commentaires que j'ai ajoutés :

[global]
    workgroup = GRETA
    server string = %h
    netbios name = monprenom
    security = user
    time server = Yes
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    domain master = yes
    os level = 33
    preferred master = yes
    domain logons = yes
    logon script = logon.bat
    add user script = /usr/sbin/useradd -d /srv/samba/home/%u -G dom_users -s /bin/false -m %u
    add machine script = /usr/sbin/useradd -d /dev/null -G dom_pc -s /bin/false -M %m$

[homes]
    comment = Home Directories
    browseable = no
    writable = yes

[netlogon]
    # Dossier contenant les scripts de demarrage
    path = /srv/samba/netlogon
    read only = yes
    write list = @dom_admin

[public]
    # Partage du dossier public, accessible par tout le monde
    comment = Repertoire public sur serveur
    writable = yes
    path = /srv/samba/public
    guest ok = yes

[private]
    # Partage du dossier private, visible et pas accessible
    # par tout le monde (seulement utilisateur du domaine authentifie)
    comment = Repertoire private du serveur
    path = /srv/samba/private
    valid users = @dom_users
    writable = yes
    browseable = yes
    guest ok = no

4. Mise en place

La première étape consiste à créer le compte administrateur. Evidemment, le mot de passe SAMBA doit être identique au mot de passe UNIX.

smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.

Création du groupe des administrateurs du domaine

groupadd dom_admin

Création du groupe des utilisateurs du domaine

groupadd dom_users

Création du groupe des machines

groupadd dom_pc

Création des répertoires de partage

mkdir /var/samba
mkdir /var/samba/public
mkdir /var/samba/private
mkdir /var/samba/netlogon
mkdir /var/samba/home

On change le groupe propriétaire des dossiers

cd /var/samba && chgrp dom_users *

On positionne les bons droits sur les dossiers car les droits d'accès unix sont prioritaires sur les droits samba.

chmod 755 netlogon/ && chmod 770 private/ && chmod 777 public/

Créer le fichier script de démarrage netlogon

vim /var/samba/netlogon/logon.bat

Je vous invite à récupérer le code source du mien ici : logon.bat

# Efface l'ecran
echo off
# Montage du homedir de l'utilisateur
net use z: monprenomhome%USERNAME%
# Montage de des lecteurs reseaux dans le Poste de Travail
net use y: monprenompublic
net use x: monprenomprivate
#Efface l'ecran
cls
# Message de bienvenue
echo *** Bienvenue sur le domaine * **
# Synchronisation de l'horloge du client avec le serveur
echo.
echo Mise a l'heure du poste client
net time monprenom /set /yes

Création d'un utilisateur de test :

useradd -G dom_users -m -d /var/samba/home/test -c "utilisateur
test" -s /bin/false test

Ajout de l'utilisateur à samba

smbpasswd -a test
New SMB password:
Retype new SMB password:
Added user test.

5. Test du serveur

La première étape sera de lancer la commande testparm, qui sert à vérifier que le fichier de configuration de samba ne comporte pas d'erreur.

Si tout est bon, on pourra lancer notre serveur avec la commande suivante :

/etc/init.d/samba restart

Pour vérifier que ce dernier fonctionne correctement, on s'y connectera localement, avec ce qui suit (tapez entrée à la demande du mot de passe) :

smbclient -L localhost

6. test de la configuration avec un client

J'ai réalisé le test coté client, avec le système d'exploitation Microsoft Windows XP. Or pour que tout fonctionne correctement avec ce dernier, on devra d'abord modifier la valeur de certaines clés de registre :

Lancer regedit, rechercher toutes les clés nommées RequireSignOrSeal et remplacez la valeur 1 pour mettre 0.

Après un redémarrage de la machine, afin de recharger la base de registre, on pourra alors joindre le pc au domaine, comme ceci :

  • Lancer l'explorateur de fichier
  • Clic droit sur "Ordinateur" > Propriétés
  • Dans l'onglet Nom de l'ordinateur > Modifier
  • Laisser le nom mais changez "Membre de" pour indiquer votre domaine à la place du groupe de travail.
  • Indiquez un login et un mot de passe autorisé à entrer une machine dans un domaine.

Il ne restera plus qu'à redémarrer la machine pour se loger sur le domaine avec le compte utilisateur test.