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.