2.4.6 Un serveur Samba contrôleur de domaine

2.4.6.1 Un serveur Samba contrôleur de domaine

Samba peut simuler/émuler un serveur NT jusque dans ses possibilités d'exécution de scripts au login des clients.
Cela permet entre autres:
- de créer automatiquement des lecteurs réseau adaptés aux différents utilisateurs
- d'appliquer des stratégies différentes selon les utilisateurs à l'aide de clés de registre et autres commandes M$DO$ (route add/delete,...)
- de remettre les clients à l'heure du serveur.

Attention: Il ne peut y avoir qu'un seul Contrôleur Principal de Domaine par domaine!
Dans le cadre d'un stage ou d'un réseau devant disposer de plusieurs PDC, veiller à déclarer des domaines différents pour les différents serveurs.
C'est la ligne workgroup du fichier smb.conf qui définit aussi bien le domaine que le groupe de travail.

 

Il suffit pour cela d'ajouter trois lignes à la section [global] et un partage particulier [netlogon]:
#============= Global Settings =================

[global]

   workgroup = MaMaison
   netbios name = LeJoliServeur

   hosts allow = 192.168.52. 127.

   security = user

   domain master = yes
   domain logons = yes
   logon script = script%U.bat

   client code page = 850
   character set = ISO8859-1

#=============== Share Definitions ================
[public]
   comment = Dossier public
   path = /home/samba/public
   browseable = yes
   public = yes
   writable = yes

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

[profs]
   comment = Ressources profs
   path = /home/samba/profs
   browseable = yes
   ;public = no
   writable = yes
   valid users = @professeurs

[instructions]
   comment = Ressources et instructions à disposition des élèves
   path = /home/samba/ressources
   browseable = yes
   ;public = yes
   writable = no
   write list = @professeurs
      
 [netlogon]
   comment = Network Logon Service
   path = /home/samba/netlogon
   guest ok = yes
   writable = yes

Les deux lignes domain master = yes et domain logons = yes permettent de faire du serveur samba un Contrôleur de Domaine.
La ligne logon script = script%U.bat précise le nom du script à exécuter au login de l'utilisateur (%U désigne le nom fourni lors de la connexion, si bien que l'on pourra réaliser des scripts différents selon l'utilisateur).

Le partage [netlogon] sert à stocker les scripts de connexion des utilisateurs, les stratégies et un certain nombre d'autres bricoles (nous en verrons quelques unes par la suite).
Dans un premier temps, on déclare ce partage [netlogon] comme writable.

 

Remarque:
Dans le cas d'un client W$nt, W$2k ou W$xp, il faut en plus un compte pour la machine depuis laquelle on se connecte.
Ce ne sont pas les seules contraintes et nous ne détaillerons pas davantage ici (au moins dans la première version de ces pages) ce qu'il faut pour qu'un client de ce type se connecte sur un domaine samba.
<Parler aussi de logon drive, logon home,...>
Pour plus de précisions, voir Samba_PDC_2000 de Ewen Prigent et les autres ressources référencées en fin de page.

 

Penser à créer le dossier /home/samba/netlogon et à le rendre accessible à tous et dans un premier temps avec tous les droits:
[root@DeepGlue steph]# mkdir /home/samba/netlogon
[root@DeepGlue steph]# chmod 777 /home/samba/netlogon

 

Utiliser la commande testparm qui lit le fichier smb.conf et permet de vérifier qu'il n'y a pas d'erreur de syntaxe.

Et on redémarre le serveur:

[root@DeepGlue steph]# samba restart
Shutting down SMB services:                            [  OK  ]
Shutting down NMB services:                            [  OK  ]
Starting SMB services:                                 [  OK  ]
Starting NMB services:                                 [  OK  ]
[root@DeepGlue steph]#

 

Le partage [netlogon] va héberger les scripts de connexion des utilisateurs se loguant sur le domaine MaMaison.
Ces scripts sont des programmes M$DO$/WINDOW$ (on va se limiter aux .BAT, mais il doit être possible de passer des .EXE en guise de script de login).
Il faut donc les créer sous WINDOW$ pour des questions de fins de lignes qui ne sont pas gérées de la même façon par WINDOW$ et UNIX (voir l'annexe Fins de lignes Unix).

Dans un premier temps, on va se loguer sur les clients sans rien changer, créer les scripts dans \\LeJoliServeur\netlogon
Et ensuite nous demanderons au client window$ de se connecter sur le domaine MaMaison.
(Remarque: on pourrait faire le contraire:
Simplement, tant que le script de login n'existe pas, à part la fenêtre de connexion, rien ne serait changé pour le client
).

Un premier script à taper depuis un client:

@echo ==========Script de connexion==========
net use H: /home
net use P: \\LeJoliServeur\public
net time \\LeJoliServeur /set /yes


Enregistrer ce script sous \\LeJoliServeur\scripttoto.bat pour l'utilisateur toto, sous \\LeJoliServeur\scriptmartin.bat pour l'utilisateur martin,...

Remarque:
Pour plus d'informations sur les commandes net /help, net view \\nom_du_serveur,... voir en annexe.

 

Configurer ensuite le client window$:
Propriétés du Voisinage réseau/Propriétés de Client pour les réseaux Micro$oft

   

Et cocher la case "Ouvrir la session sur un domaine NT" et saisir le nom du domaine (MaMaison) dans l'emplacement prévu à cet effet.
Valider deux fois et redémarrer le client (sous window$, il faut souvent redémarrer;o).


Se loguer en tant qu'utilisateur martin...

<Remarque, cette partie sera à refaire (dans un proche avenir) pour des clients XP>

 

Lancer l'Explorateur Window$ et contrôler la présence des lettres de lecteur des partages [martin] (Home) et [Public].
Faire des essais en changeant l'heure et vérifier que lors du login suivant, le poste est bien remis à l'heure du serveur.

Créer de la même façon d'autres scripts d'utilisateurs.

 

Remarques:

  1. Pour avoir le temps de voir ce qui défile, ajouter "pause" à la fin des scripts de login.
     

  2. Il est vrai qu'il est possible d'utiliser la connexion de lecteurs indépendamment du contrôleur de domaine et cocher "Se reconnecter au démarrage", mais ces partages ne sont pas adaptables selon les utilisateurs (les utilisateurs peuvent avoir plus ou moins de lecteurs réseaux et le  partage [homes] ne pointe pas au même endroit pour tous les utilisateurs... si on le fait via un clic-droit dans le Voisinage réseau...).
    De plus, il suffit de décocher/annuler lors d'une indisponibilité du serveur pour qu'il ne soit plus reconnecté au démarrage.
    On pourrait tout de même placer ce script dans le Menu démarrer/Démarrage, mais là aussi il peut être supprimé/modifié.
     

  3. L'inconvénient d'une configuration du client comme client d'un domaine NT, c'est que l'utilisateur doit exister sur le serveur Linux/Samba.
    La seule façon de se connecter sans nom d'utilisateur est de taper ECHAP.
    On est alors connecté sans accès au réseau.
    (le jour où le serveur tombe en rade, il faut alors ensuite accéder aux propiétés du client micro$oft et décocher "Ouvrir la session sur un domaine NT" pour disposer d'un accès au réseau (hors serveur en rade) et à internet).
    Voir la page "Se libérer si le Contrôleur de domaine tombe en rade" pour des solutions à ce genre de situation.
     

  4. Une fois les scripts de login, les fichiers de registre,... créés, il est prudent d'effectuer quelques modifications sur le partage [netlogon]:
    (en effet, il fournit énormément d'informations sur les comptes existants et si en plus il est possible de modifier les .BAT,...)
     [netlogon]
       comment = Network Logon Service
       path = /home/samba/netlogon
       guest ok = yes
       writable = no
       browseable = no

 

Ressources:
Le fichier smb.conf (avec les fins de lignes UNIX): smb.conf.version8 (qu'il faudra renommer en smb.conf).
Et la version avec [netlogon] "protégé": smb.conf.version9 (qu'il faudra renommer en smb.conf).

 

Des ressources extérieures:
Voici quelques documents (parmi tant d'autres) pour en apprendre plus sur la mise en place d'un PDC:

Les documentations de Ewen Prigent (http://linux-france.org/~eprigent/):
Samba_PDC_Web, Samba_PDC_Entreprise, Samba_PDC_2000.
Plus tout à fait dans le cadre d'un PDC, mais très instructif également: Samba_user_pour_WEB et Partage_imprimantes_Web.

Le site de Benoit Gerrienne: http://samba.linuxbe.org/fr/samba/index.html

Le site d'Eric Seigne: Rycks http://www.rycks.com/documentation/samba/index.html et les réponses à certaines questions http://www.rycks.com/documentation/samba/contribs.html

Un article en anglais,... mais très bien quand même;o):
http://www.linux-mag.com/cgi-bin/printer.pl?issue=2002-02&article=samba .

La documentation officielle en anglais: Samba-HOWTO-Collection.pdf et sa version HTML.

Un chapitre sur Samba-PDC dans "Using Samba" de O'Reilly (en anglais aussi) à l'adresse http://www.oreilly.com/catalog/samba/chapter/book/ch06_05.html(sur le disque dur aussi file:/usr/share/doc/samba-doc-2.2.7a/docs/htmldocs/using_samba/ch06_05.html avec une adresse qui risque de changer d'une version de samba à une autre).

Une page de Mandrake-User: http://www.mandrakeuser.org/docs/connect/csamba6.html

Sommaire - Précédent - Suivant