ADeLLA.org , ADeLLA.org
Accueil du site > Documentation > Réseau > Samba en Contrôleur de Domaine

SAMBA

Samba en Contrôleur de Domaine

mercredi 2 février 2005, par daniel


Objectif

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.

Prérequis :

- 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 :

GZ - 1.9 ko

# 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


Ajout d’une station de travail :

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

Répondre à cet article

5 Messages de forum

  • Samba en Contrôleur de Domaine

    15 avril 2006 01:34, par insomniak

    Bonjour,

    Tout d’abord je tiens à vous remercier pour ce fabuleux tuto ! très clairement expliqué, nickel chrome quoi. C’est le seul que j’ai pu trouver étant assez clair pour commencer un PDC sous linux...

    Par contre, j’ai une question assez importante concernant le fonctionnement de celui ci :

    J’utilise Ubuntu et je me connecte au domaine avec un XP. Je tombe sur un probleme au niveau des comptes utilisateurs "machines". En effet, je suis obligé d’utiliser la methode numero 2 pour me connecter au domaine car la premiere avec le script ne fonctionne pas chez moi. Ensuite, lorsque ma machine en XP est sur le domaine, je ne peux rien faire car les politiques de sécurité prises en compte sont celles de la machine et non celles de l’utilisateur. Or si je souhaite éditer les politiques du compte machine (via l’interface graphique proposée, car je ne connais pas encore assez bien l’archi linux pour aller bidouiller les fichiers de conf), comme le nom de machine possède un $ il m’envoie bouler et me dit que c’est un caractere interdit dans un nom d’utilisateur. Donc en gros je ne peux pas editer mes politique de securité de la machine et donc je ne peux rien faire sur celle ci :(

    Je souhaitais donc savoir s’il y avait un moyen quelconque pour palier à ce probleme SVP ?

    Merci d’avance Insomniak

    Répondre à ce message

  • Samba en Contrôleur de Domaine

    19 août 2006 04:40, par pape521
    pas de commentaire je viens de m’inscrire juste pour te dire mercie car ton travaille merite des encouragement pour ton tmp et ta connaissance

    Répondre à ce message

  • Samba en Contrôleur de Domaine

    23 août 2007 14:40, par guesniet

    Bonjour, et, merci beaucoup pour ce tuto. Pour un novice comme moi, c’est ce qu’il fallait. Mais, il reste un point que je n’arrives pas à éclaircir :

    Mes utilisateurs ont des profils itinérants. Les comptes sont sur Samba. Les machines en XP SP2

    Je n’arrive pas à affecter un user.domaine à un groupe.local J’ai besoin que certains utilisateurs soient administrateur de leur machine pour faire fonctionner des applications spécifiques. Or, les comptes du domaine ne permettent pas de faire tourner ces applications. Pourriez vous, si vous en avez la connaissance, m’indiquer comment faire pour joindre User.domaine à groupe.local ?

    Merci beaucoup, et, bonne journée à tous. Thomas

    Répondre à ce message


Suivre la vie du site | Valid HTML 4.01! | Valid CSS! | Plan du site | Espace privé | SPIP