Samba en contrôleur de domaine

Posted by

I) Introduction :

Nous allons voir au travers de cette courte documentation comment faire pour que Samba agisse comme un PDC (Primary Domain Controleur) ou bien CPD si vous préférez le français. En plus de permettre de partager des fichiers et des imprimantes, Samba est capable d’agir comme un émulateur de Serveur Windows NT avec l’avantage tous les avantages des logiciels libre. À titre d’information, la seule chose qu’un serveur NT sait faire et que Samba ne sait pas faire, c’est la mise en place de serveur Wins de secours.
Pour les personnes cherchantde plus amples informations sur le paramétrage de samba, je vous suggère de lire les pages de man (en particulier le man smb.conf) et surtout de lire la documentation complète disponible sur le site de samba, bien que celle-ci soit en anglais.

II) Configuration globale :

Commençons à paramétrer le comportement du serveur. Éditez le fichier /etc/samba/smb.conf :

 [global] 
# Nommage de la machine sur le réseau NetBios : 
    workgroup = momolan 
    netbios name = serveur 
    server string = serveur samba %v 
 
# Niveau de sécurité. A mettre en user pour un PDC 
    security = user 
# Nom et emplacement du fichier de mots de passe de samba. 
    smb passwd file = /etc/samba/smbpasswd 
 
# Notre machine sera élue maître explorateur local du réseau NetBios : 
    domain master = yes 
    local master = yes 
    prefered master = yes 
    os level = 69 
 
# Cette option sert à dire que le poste Samba sert de de PDC 
    domain logons = yes 
 
# Script lancé sur les machines clientes à l'authentification. 
    logon path = \serveurnetlogon 
    logon script = logon.bat 
 
# Options sur la casse (différence majuscules/minuscules).
    case sensitive = no 
    default case = lower 
    preserve case = yes 
    short preserve case = no 
 
# Necessaire depuis win 98 : 
    encrypt passwords = yes 
# Nous ne voulons pas faire serveur WINS. 
    wins support = no 
# Nom du compte invité. 
    guest account = nobody 
# Gestion de la commande Linpopup, correspondant au winpopup sous Windows : 
    message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' & 
 # Nous faisons serveur de temps : 
    time server = yes 
 # Et l'utilisateur « jaune » possède les droits administrateur sur le serveur : 
    admin users = jaune 
 
# Pour le programme de mots de passe : 
    passwd program = /usr/bin/passwd %u 
    passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn .

III) Mise en place des partages :

Dans un premier temps, partageons les répertoires personnels des utilisateurs qui seront situés sur le serveur :

[homes] 
   comment = Répertoires personnels : 
   path = %H 
   valid users = %S 
   create mode = 0700 
   directory mode = 0700 
   browseable = no 
   read only = no

Éventuellement un répertoire public sera mis à disposition :

[public] 
   comment = Répertoire public 
   path = /etc/samba/public 
   read only = No 
   create mask = 0777 
   directory mask = 0777 
   guest ok = Yes

Comme il faut souvent insérer le CDROM de Windows 98 lorsque l’on fait une modification, sur le système, j’aime l’avoir à disposition au travers du réseau, quand celui-ci est disponible bien entendu!

[win98] 
   comment = Fichiers Windows 98 
   path = /etc/samba/win98 
   public = Yes 
   read only = Yes 
   valid users = jaune

Enfin, un partage spécial, le netlogon, contient les scripts exécutés lors de l’ouverture d’une session sur le serveur :

[netlogon] 
   comment = Services d'identification 
   path = /etc/samba/netlogon 
   write list = jaune 
   read only = yes

IV) Création du script de session :

Nous allons créer le fichier correspondant à la ligne suivante du fichier smb.conf :
logon script = logon.bat

À cause des différences de caractère de fin de ligne entre Unix et DOS/Windows, soit vous créez ce fichier sous Windows et vous le placez dans le netlogon, soit vous le faîtes sous Linux et vous placez un filtre convertissant ce fichier :

Exemple de contenu de fichier :

net time \serveur /set /yes 
net use h: \serveurhomes /yes 
net use p: \serveurpublic /yes 

Ce script sert à synchroniser l’heure de la machine cliente avec celle du serveur. Puis il attribue une lettre de lecteur réseau au répertoire personnel et au répertoire public.

Filtre pour le traduire au format dos :
# cat logon.bat | sed "s/$/^M/" | sed "$ s/$/^Z/" > /etc/samba/netlogon/logon.bat

V) Ajout des utilisateurs :

Les utilisateurs Samba doivent être des utilisateurs existants dans la base Unix. Donc tout d’abord ajoutons cet utilisateur à la base Unix :
# adduser --shell /dev/null eleve
Faites ainsi pour tous vos utilisateurs destinés à être des utilisateurs Samba. Puis ajoutons ces utilisateurs à la base d’utilisateurs Samba :
# smbpasswd -a eleve

VI) Test du fonctionnement :

Pour commencer, vérifions la syntaxe du fichier /etc/smb.conf :

#testparm
Si votre configuration est correcte, vous aurez une suite de ligne de ce type :
Load smb config files from /etc/samba/smb.conf
Processing section “[homes]”

Démarrons Samba :
Sous Debian :# /etc/init.d/samba start
Sous RedHat et compatibles :# /etc/rc.d/init.d/smb start

Passons à la configuration des clients windows, indiquez simplement ce qui suit :

clt_ouv_session

Redémarrez les clients windows, une boite de dialogue vous invite désormais à vous identifier auprès du serveur ;

saisie_mdp

Indiquez votre mot de passe samba. Si vous cliquez sur « Annuler » vous aurez accès à la machine mais pas aux ressources partagées sur le réseau.

partages

VII) Sécurisons l’accès aux machines :

Il est bien joli notre serveur comme ça, cependant le fait de ne pas s’authentifier ne pénalise pas beaucoup un utilisateur vicieux comme il a quand même accès à la machine. De plus, il peut toujours hôter sa machine du domaine NT et certains partages lui seront tout de même accessibles. Et comme Windows 98 n’est pas du tout multi-utilisateur, chaque utilisateur dispose de tous les droits sur son système avec les risques que celà peut entrainer.

Sur le CDROM de Windows 98, vous trouverez un outil, nommé « Poledit ». Cet outil permet d’appliquer un certain nombre de restrictions à l’utilisateur en modifiant certaines valeurs de la base de registre suivant l’utilisateur qui s’identifie.
Lancez donc cet outil et choisissez un modèle de stratégie à mettre en place. Le plus adapté pour ce que l’on souhaite faire et le fichier « admin.adm ». Créez vos utilisateurs et vos groupes suivant ce que vous souhaitez faire et attribuez-leurs des droits. Pensez à créer un utilisateur privilégié pour administrer les machines pour lequel toutes les cases seront décochées.

droits

Enfin, dans les propriétés de la machine par défaut, spécifiez le mode de mise à jour en manuel, et indiquez une chemin comme suit :

maj_a_distance

Mise à jour : Pour finir, il convient de valider l’application des restrictions apposées aux utilisateurs. Identifiez-vous sous le nom d’un utilisateur ayant des droits restreints. Testez par exemple en lançant l’éditeur de registre par exemple, qu’il convient de désactiver. Pour toute action qui est interdite, vous devriez voir s’afficher l’une des boites de dialogue suivante :

interdit

desactive

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.