Nous voulons configurer un contrôleur de domaine avec SAMBA. C’est à dire que l’authentification des utilisateurs et des machines appartenant au domaine seront réalisées sur le Contrôleur de Domaine Principal (PDC).
Les utilisateurs (NT4, NT2000 et XP) auront leurs profils enregistrés sur le contrôleur. Un script sera executé sur la machine cliente à l’ouverture de session.
Serveur de fichiers en Groupe de Travail (Workgroup)
Important : L’exemple ci-dessous ne gère pas la réplication de la SAM et l’authentification kerberos.
Fichier /etc/samba/smb.conf :
# smb.conf by Daniel ROCHER - 18/02/2005
# daniel POINT rocher CHEZ adella POINT org
# Ce document est sous licence FDL. La Licence Publique Générale (GPL)
# garantie à tous la possibilité effective de copier et de redistribuer
# librement ce document avec ou sans modifications.
# Global parameters
[global]
#nom du domaine
workgroup = ADELLA
#nom de la machine
netbios name = PRINCIPAL
server string = Samba %v as PDC
# crypter le mot de passe
encrypt passwords = Yes
# sécurité au niveau utilisateur
security = user
# Synchronisation des mots de passe samba avec les mots de passe Linux.
# Ajouter ces options si l'on veut que l'utilisateur connecté sur un domaine
# puisse changer son mdp
unix password sync = Yes
passwd program = /usr/bin/passwd %u
# Attention ! la ligne en dessous est sur une seule ligne
passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
# table de conversion nom windows -> nom unix (ex: administrateur ->root)
username map = /etc/samba/smbusers
log file = /var/log/samba/log.%m
max log size = 50
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
# script pour ajouter automatiquement le nom de la machine lors de l'inscription dans le domaine
# Il s'ajit d'un compte utilisateur. Sur NT4 on peut le faire en ligne de commande
# Par contre avec NT2000 et XP, il faut absolument utiliser le script ci-dessous
add user script = /usr/sbin/useradd -d /dev/null -g machines -c 'Machine Account' -s /bin/false -M %u
# chemin du profil NT
logon path = \\%L\Profiles\%U
# création du montage H: (répertoire perso) pour tous les utilisateurs
logon drive = H:
logon home = \\%L\%u
# Controleur de domaine principal
domain logons = Yes
os level = 64
preferred master = Yes
domain master = Yes
admin users = root @adm
# Utilisation de WINS pour la résolution des noms NETBIOS
wins support = Yes
dns proxy = No
# Ordre de résolution
name resolve order = lmhosts wins host bcast
logon script = %u.bat ; pour executer un script sur la machine cliente à l'ouverture de session
# logon script = script.bat ; ou bien 'script.bat' pour tous les utilisateurs
# imprimantes
printcap name = cups
printing = cups
printer admin = root @adm
# autorisation des machines sur le réseau 192.168.1.0 (eth0) et 127.0.0.0 (localhost)
hosts allow = 192.168.1. 127.
# et enfin, les partages
# répertoire perso
[homes]
comment = Home Directories
read only = No
browseable = No
# partage pour pouvoir executer des scripts lors de l'ouverture de session
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = Yes
browseable = No
# partage profiles nécessaire pour stocker les profils utilisateurs (NT4,2000 et XP)
# penser à modifier les droits (rw) pour les utilisateurs qui auront à enregistrer leur profil
# ex: chgrp adella /var/lib/samba/profiles
# chmod 770 /var/lib/samba/profiles
[Profiles]
path = /var/lib/samba/profiles
read only = No
guest ok = Yes
browseable = No
# imprimantes
[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
guest ok = Yes
printable = Yes
print command = lpr-cups -P %p -o raw %s -r # using client side printer drivers.
browseable = No
# Partage où sont stockés les pilotes (windows)
[print$]
path = /var/lib/samba/printers
write list = @adm root
guest ok = Yes
# générateur de fichiers pdf
[pdf-generator]
comment = PDF Generator (only valid users)
path = /var/tmp
printable = Yes
print command = /usr/share/samba/scripts/print-pdf %s ~%u //%L/%u %m %I &
# partage pour tous
[public]
comment = Pour tous
path = /mnt/serveur/public
valid users = @adella,@adm
directory mode = 775
public = yes
create mode = 0664
writeable = yes
wide links = no
# partage de la documentation
[documents]
comment = Documentation
path = /mnt/serveur/documentation
valid users = @adella,@adm
read list = @adella
write list = @adm
read only = No
create mask = 0664
directory mask = 0775
wide links = No
# partage des distributions
[distrib]
comment = Distributions
path = /mnt/serveur/distrib
valid users = @adella,@adm
read list = @adella
write list = @adm
read only = No
create mask = 0664
directory mask = 0775
wide links = no
Comme nous l’avons vu dans le fichier de configuration, il faut que les stations de travail soient connues du contrôleur de domaine pour pouvoir se connecter. Il s’agit d’un compte utilisateur particulier. Il doit avoir comme nom le nom NETBIOS de la station de travail.
IMPORTANT:: Lisez attentivement les lignes en dessous avant de joindre le domaine.
Vous devez obligatoirement ajouter l’utilisateur root à samba pour pouvoir joindre un domaine :
smbpasswd -a root
New SMB password :
Retype new SMB password :
Added user root.
Evidemment, le mot de passe SAMBA doit être identique au mot de passe UNIX.
A propos du script : add user script = /usr/sbin/useradd -d /dev/null -g machines -c ’Machine Account’ -s /bin/false -M %u
Pour que ce script fonctionne, il faut que le groupe machines existe sinon le créer :
groupadd machines
A propos du nom de machine : le nom de machine doit-être en minuscule et ne doit pas commencer par un chiffre. Exemple :
4salle20 -> MAUVAIS
salle4_20 -> BON
Joindre un domaine avec Windows XP
Modifier les clés suivante dans la base de registre de Windows (regedit.exe)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\netlogon\parameters "RequireSignOrSeal"=dword:00000000
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System "CompatibleRUPSecurity"=dword:00000001
Si vous avez le message suivant lorque vous voulez joindre le domaine :
"Plusieurs connexions à un serveur ou à une ressource partagée par le même utilisateur, en utilisant plus d’un nom utilisateur, ne sont pas autorisées"

Ouvrir une invite de commande (cmd.exe) et taper :
net use * /DELETE
Joindre notre domaine:
Il y a deux solutions. La première est la plus simple et fonctionnera dans tous les cas. La seconde ne fonctionne qu’avec NT4.
1ère solution : Utiliser le script prévu à cet effet : A partir du client NT, connectez-vous au domaine et rajouter un compte machine. Il est nécessaire de s’authentifier root.


2ème Solution : Créer le compte machine directement sur le serveur :
Exemple d’une machine s’appelant client, il faudra :
1/ Ajouter un utilisateur Unix se nommant client$ (nom de machine en minuscule avec $ à la fin)
/usr/sbin/useradd -d /dev/null -g machines -c 'Machine Account' -s /bin/false -M client$
2/ Ajouter la machine dans samba: smbpasswd -a -m client (-m pour compte machine)
3/ sur la station NT, joindre le domaine ADELLA.
et c’est tout ... ;-)
/etc/samba/smbpasswd Fichier où sont stockés les noms et mots de passe SAMBA des machines et utilisateurs.
/etc/samba/smbusers Fichier de conversion nom windows —> nom unix :
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin administrateur
Service :
/usr/sbin/samba {start|stop|restart|status|condrestart}
Fichiers de configuration :
/etc/samba/smb.conf configuration de samba
/etc/samba/smbusers conversion nom windows -> nom Unix
(ex : administrateur -> root)
/etc/samba/smbpasswd mots de passe des Utilisateurs/Machines SAMBA
Utilitaires :
smbstatus voir les connexions en cours ( voir SAMBA - Visualisation des ressources : Application QtSmbstatus)
smbpasswd modifier/rajouter le mot de passe d’un utilisateur samba
testparm /etc/samba/smb.conf Vérifie le fichier de configuration
smbclient Client pour accéder à des ressources
nmblookup Résoudre nom de machine <-> adresse IP
smbmount Monte un système de fichier samba
Articles connexes :
Serveur de fichiers en Groupe de Travail (Workgroup)
Gestion des ACLs (Access Control Lists - Listes de Contrôle d’Accès)
SAMBA - Visualisation des ressources : Application QtSmbstatus
J’espère vous avoir aidé à configurer un contrôleur de domaine avec SAMBA.
17/04/2005