You are on page 1of 20

ANDRE Mikal DIDIERJEAN Aurlien DESVIGNES Nicolas BONASSI Johan ROGERS Jason

Semestre : Printemps 2007

TUTORIEL
Installation dun serveur LDAP

UV : LO51 Enseignant : M. GALLAND

Ce tutoriel a pour but dexpliquer comment installer un serveur LDAP. Ce serveur LDAP servira grer les comptes utilisateurs dun rseau de machines. Le but est de pouvoir sauthentifier, en tant quutilisateur, sur nimporte quelle machine dun rseau informatique, en retrouvant le rpertoire utilisateur contenant les donnes personnelles associes au compte. Il y a donc deux aspects dont il faut tenir compte : la gestion des comptes proprement dit, avec les noms des utilisateurs ainsi que leurs mots de passe, et le montage automatique de leurs rpertoires home sur les machines clientes. Toutes les informations ncessaires ces oprations seront stockes au sein dun annuaire LDAP. Nous nous appuierons sur Samba et NFS pour le partage des donnes pour Windows et Linux. Ces deux protocoles permettront dautomatiser le montage des rpertoires des utilisateurs. Les machines clientes pourront tre des machines Linux, Unix ou Windows. Nous commencerons par donner quelques pr requis pour que linstallation et la configuration se droulent correctement. Nous listerons les paquets installer, ainsi que les options dinstallation slectionner. Nous passerons ensuite la configuration du serveur install. Pour finir, nous aborderons la configuration des machines clientes cites ci-dessus.

I. Pr requis
Linstallation a t ralise sur une distribution Debian Etch (4.0). Ce tutoriel doit pouvoir sappliquer sur nimporte quelle version de Debian (Woody, Sarge, Sid) ou drive (Ubuntu, Kubuntu) en adaptant les noms ou les emplacements de certains fichiers du systme et les versions des logiciels installer. La majorit des commandes doit seffectuer en tant quadministrateur pour avoir les droits suffisant afin deffectuer les manipulations. Pour cela, on tape la commande suivante dans une console pour devenir lutilisateur root et on saisit le mot de passe administrateur : su On peut bien sr sauthentifier directement en tant que root dans une console texte (le mode graphique tant dconseill pour ladministrateur). Avant de commencer, on peut reconfigurer lutilitaire Debconf pour quil pose les questions voulues lors de linstallation des diffrents logiciels. Pour cela on tape la commande suivante : dpkg-reconfigure debconf On choisit ensuite le mode Dialogue et le niveau Intermdiaire . Cela permettra davoir linterface de configuration des paquets dans la console (mode caractre en couleur indpendant dun quelconque gestionnaire graphique) dans un mode peu automatis. Si une option est oublie ou mal choisie lors de linstallation dun paquet, il est possible de reconfigurer le paquet, comme pour Debconf, avec la commande dpkg-reconfigure . De mme, il est possible que lutilitaire ne pose pas certaines questions mentionnes dans le tutoriel lors de son installation. Dans ce cas il faut finir la configuration du paquet et le reconfigurer, les questions seront alors poses. Pour que lutilitaire Apt puisse trouver et installer les paquets requis, il faut que les sources soient correctement configures, et jour. La commande suivante permet de mettre jour la liste de paquets :

apt-get update Pour les machines clientes sous Linux, il faut s'assurer que le noyau supporte le protocole NFS. Si le noyau est un noyau standard fourni par la distribution utilise, le support doit tre dj mis. Si le noyau est personnalis, il faut vrifier que le support NFS est coch dans la configuration du noyau (dans le menu de configuration du noyau File systems => Network File Systems il faut cocher en dur ou en module NFS file system support puis recompiler et rinstaller le noyau).

II. Installation et configuration du serveur


1. OpenLDAP
Nous allons procder linstallation du serveur. Commenons par installer lannuaire LDAP. Pour cela, on installe les paquets suivants : slapd : le paquet du service OpenLDAP fonctionnant en mode standalone ; ldap-utils : outil de contrle et daccs une base LDAP ; db4.4-util : outil permettant de manipuler des bases de donnes Berkeley. Pour cela on utilise Apt par la commande suivante : apt-get install slapd ldap-utils db4.4-util On rpond aux questions poses par Debconf pour le paquet slapd: voulez vous omettre la configuration d'openLDAP ? : on rpond NON, cela permet de gnrer un fichier de configuration rempli correctement en rpondant aux questions qui suivent ; nom de domaine : nous avons choisi pour lexemple lo51.utbm , adaptez le votre domaine. Il faudra lutiliser chaque fois quil sera demand, donc chaque fois que lo51.utbm apparat dans la suite de ce tutoriel ; nom de votre organisation : nous avons choisi pour lexemple lo51 , il faudra procder de mme que pour le nom de domaine, mais ce nest pas une information trs importante ; mot de passe de l'administrateur : il faut choisir un mot de passe pour ladministrateur de la base LDAP, pour lexemple nous avons choisi route . Il faut bien le mmoriser et ne pas le perdre, il servira plus tard pour laccs LDAP et pour certaines configurations ; on tape une deuxime fois le mot de passe pour ladministrateur, ainsi on est sr de ne pas se tromper : dans notre cas on retape route ; module de base de donnes utiliser : on choisi le module BDB ; faut il supprimer la base donnes la purge de paquet ? : on rpond NON. Ainsi, si on dsinstalle le paquet slapd, on ne supprime pas sa base dutilisateurs. Cela vite la suppression malencontreuse des donnes ; faut il dplacer l'ancienne base de donnes ? : on rpond NON ; faut il autoriser le protocole LDAPv2 : on rpond NON, nous utiliserons uniquement le protocole v3.

Le service LDAP est maintenant install et en partie configur. Nous allons passer linstallation du service Samba.

2. Samba
Le service Samba va nous permettre de monter automatiquement le rpertoire personnel de lutilisateur, et va nous fournir le schma adapt pour la dclaration dans LDAP. Pour cela il faut installer le paquet samba-doc. apt-get install samba-doc Si le logiciel gzip nest pas install, ajouter le paquet gzip la ligne de commande cidessus. Il sera utile pour dcompresser le schma. On rcupre le schma LDAP de samba que lon copie avec ceux de LDAP par la commande suivante : gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > \ /etc/ldap/schema/samba.schema On ajoute lutilisation du schma samba copi ci-dessus dans le fichier de configuration de LDAP. Pour cela il faut diter le fichier /etc/ldap/slapd.conf avec un diteur de texte au choix (emacs, nano, vi). vi /etc/ldap/slapd.conf On recherche dans le fichier lendroit o sont faites les inclusions des schmas, donc les lignes commenant par include , et on ajoute la ligne suivante : include /etc/ldap/schema/samba.schema

On vrifie que la gnration du fichier a t ralise selon la configuration saisie dans Debconf. On vrifie principalement loption suffix qui doit tre de la forme suivante : suffix "dc=lo51,dc=utbm" Cela correspond au nom de domaine LDAP. Chaque dc est une partie du nom de domaine, spar selon le caractre . . Ainsi, si le nom de domaine est lo51.org, le suffixe sera dc=lo51,dc=org . Pour pouvoir se connecter la base LDAP en tant quadministrateur, il faut dclarer dans ce fichier lutilisateur admin ainsi que le mot de passe prcdemment configur lors de linstallation du paquet slapd. Le fichier de configuration de slapd tant lisible par tout le monde, on crypte le mot de passe administrateur avec un algorithme non rversible. Lutilitaire permettant de raliser cette opration est inclus dans le paquet slapd. On crypte le mot de passe administrateur dclar lors de la configuration de slapd, dans notre cas route . Le mot de passe doit tre saisi deux fois. slappasswd On sauvegarde la chane de caractres renvoye par la commande. On va ajouter les deux lignes suivantes dans le fichier /etc/ldap/slapd.conf :

rootdn rootpw

"cn=admin,dc=lo51,dc=utbm" Ligne obtenue avec slappasswd

Adaptez dans la premire ligne les dc selon votre domaine. En principe, les lignes sont dj dans le fichier, commentes. Il suffit de les dcommenter et de les adapter. La configuration du service LDAP est termine, on peut redmarrer le service. /etc/init.d/slapd restart Nous procdons maintenant linstallation du service Samba en lui-mme, et des outils clients. apt-get install samba smbclient smbfs On rpond aux questions poses en laissant toutes les rponses par dfaut, la configuration va seffectuer directement dans le fichier de configuration de Samba. On fait une copie de sauvegarde du fichier de configuration, on peut ainsi la reprendre en cas de problme. cp /etc/samba/smb.conf /etc/samba/smb.conf.old Il faut diter le fichier /etc/samba/smb.conf. Ce fichier de configuration se dcoupe en plusieurs sections. Il faut remplacer le contenu du fichier par ce qui suit, en adaptant les lignes suivantes votre configuration : netbios name = nom netbios de votre serveur ldap admin dn = votre domaine LDAP avec cn=admin ldap suffix = votre domaine LDAP hosts allow = mettre les IP de votre rseau, par exemple 192.168. pour avoir tous les rseaux de ce type a. Section Global Les paramtres dfinis dans la section global sont valables pour l'ensemble des sections de la configuration de SAMBA. [global] workgroup = lo51 netbios name = server server string = Samba-LDAP PDC Server On dfinit par ces 3 paramtres le nom du groupe de travail (workgroup), le nom netbios de la machine pour les rseaux Windows (netbios name), ainsi que le libell dans le voisinage rseau vu partir d'un poste client Windows (server string). domain master = Yes local master = Yes domain logons = Yes os level = 40

Ces options activent samba comme serveur matre du domaine. Samba gre galement les contrles de connexions pour le domaine. Pour terminer, os level dfinit le niveau du systme d'exploitation pour indiquer quel est le matre lu du domaine. ldap passwd sync = Yes passdb backend = ldapsam:ldap://127.0.0.1/ ldap admin dn = cn=admin,dc=lo51,dc=utbm ldap suffix = dc=lo51,dc=utbm ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Machines ldap delete dn = Yes Grce ces lignes, nous dfinissons : ldap passwd sync : lactivation de la synchronisation des mots de passe UNIX et SAMBA ; passdb backend : la mthode d'accs aux mots de passe par l'utilisation de l'annuaire LDAP sur le serveur (en local); ldap admin dn, ldap suffix : l'administrateur LDAP, le suffixe ; les units d'organisation de groupes, d'utilisateurs et de machines. ldap delete dn : lautorisation de la suppression d'un compte. add user script = /usr/sbin/smbldap-useradd -m "%u" delete user script = /usr/sbin/smbldap-userdel "%u" add machine script = /usr/sbin/smbldap-useradd -w "%u" add group script = /usr/sbin/smbldap-groupadd -p "%g" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" On indique samba la localisation des scripts pour l'ajout, la modification ou la suppression d'utilisateurs et de groupes. Le paramtre %u reprsente l'utilisateur, et %g le groupe. logon path = \\%L\profile\%U logon drive = P: Pour les clients Windows, on indique la lettre de montage pour les clients Windows avec l'option logon drive . De plus, on dfinit le chemin d'accs pour les rpertoires personnels par l'option logn path ; "%L" correspond au nom netbios du serveur, et "%U" indique l'utilisateur Unix courant. socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 Grce cette ligne, on affine Samba en faisant en sorte qu'il ragisse plus vite.

case sensitive = No default case = lower preserve case = yes short preserve case = Yes L'ensemble des lignes prcdentes concerne les touches. Tout d'abord, on dfinit que notre serveur Samba est insensible la casse des touches. Par dfaut, on choisit les minuscules. De plus preserve case et short preserve case permettent de garder la casse des noms de fichiers. dns proxy = No wins support = Yes Notre serveur Samba ne se charge pas de la gestion des noms de domaines mais sera en charge de grer la rsolution des noms netbios du rseau. hosts allow = 10. 127. Pour notre configuration, on autorise uniquement les machines ayant comme IP une adresse en 10/24 ou en local. Les machines non comprises dans ces 2 tranches dIP ne pourront pas communiquer avec le serveur Samba. winbind use default domain = Yes nt acl support = Yes La premire option, permet de ne plus spcifier le domaine lors de la connexion sur le domaine par dfaut. La seconde, si elle est dfinie Yes , indiquera Samba quil faut tenter de grer les droits d'accs avec les attributs tendus de Windows. msdfs root = Yes On dfinit notre Serveur Samba que l'on souhaite utiliser les distributed filesystems de Microsoft. Ce principe de partage permet de regrouper en un seul partage unique des partages distribus sur diffrents serveurs. La disponibilit est possible grce aux liens symboliques. hide files = /desktop.ini/ntuser.ini/NTUSER.*/ Sur un serveur, il est toujours intressant de pouvoir cacher certains rpertoires. hide files contient la liste des rpertoires qui ne sont pas visibles mais accessibles. b. Section des Partages Dans la suite de la configuration, on dclare l'ensemble des partages du serveur Samba. Pour l'ensemble des partages qui suivent, on utilise un ensemble d'options : path : chemin d'accs sur le serveur Samba ; browseable : le rpertoire est il explorable ; writeable : peut-on crire dans ce rpertoire ; profile acls : activation des profils acls pour la gestion des droits tendus ; create mask : masque des droits par dfaut pour les fichiers crs ; directory mask : masque des droits par dfaut des rpertoires crs.

Tout d'abord, on dclare le partage des rpertoires pour le profil itinrant des clients Windows. [netlogon] path = /home/netlogon writable = No browseable = No write list = Administrateur Le second partage est le profil de chaque utilisateur pour les clients Windows. [profile] path = /home/export/profile browseable = No writeable = Yes profile acls = yes create mask = 0700 directory mask = 0700 Le dernier partage, correspond dsormais aux rpertoires personnels des utilisateurs, le chemin d'accs sur le serveur possde un paramtre %u qui reprsente le nom d'utilisateur qui se connecte sur le serveur. [homes] path = /home/export/profile/%u comment = Repertoire Personnel browseable = No writeable = Yes Suite la configuration du serveur samba, il est ncessaire de crer les diffrents rpertoires et de donner les droits sur chaque rpertoire pour tout le monde en criture a+w . mkdir -p /home/netlogon mkdir -p /home/export/profile chmod a+w /home/export chmod a+w /home/export/profile Nous allons installer un outil permettant de manipuler des comptes et des groupes dutilisateurs dans une base LDAP : le paquet smbldap-tools. apt-get install smbldap-tools Il faut diter (ou crer) le fichier /etc/smbldap-tools/smbldap_bind.conf et en remplacer le contenu par les lignes suivantes : slaveDN="cn=admin,dc=lo51,dc=utbm" slavePw=MotDePasse masterDN="cn=admin,dc=lo51,dc=utbm" masterPw=MotDePasse

Il faut bien sr adapter le chemin de ladministrateur LDAP votre configuration. Le mot de passe est celui de ladministrateur LDAP qui a t saisi au dbut de linstallation. Il doit tre not en clair dans cette configuration. Pour viter quil puisse tre lu par nimporte qui, on modifie les droits daccs au fichier ; seul le compte root pourra le lire. chmod 600 /etc/smbldap-tools/smbldap_bind.conf On dite (ou on cre) le fichier /etc/smbldap-tools/smbldap.conf et on en remplace le contenu par les lignes suivantes : slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" ldapTLS="0" verify="require" suffix="dc=lo51,dc=utbm" usersdn="ou=Users,${suffix}" computersdn="ou=Machines,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/ldap/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="45" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd" Ce fichier sert dclarer le serveur LDAP, larborescence LDAP pour la gestion des comptes utilisateurs, le format des mots de passe stocks, la configuration par dfaut des comptes que lon cre (rpertoire home, shell,). Il faut adapter le suffixe la configuration LDAP mise en place. Comme on travaille sur le mme serveur que celui qui hberge LDAP, ladresse IP est ladresse locale donc 127.0.0.1 . Pour faciliter la gestion des rpertoires home des utilisateurs, on les range dans un sous rpertoire de /home, /home/ldap par exemple. Cela sera utile pour monter en local le rpertoire de lutilisateur stock sur le serveur. Il faut maintenant dclarer le mot de passe de ladministrateur qui fera les requtes dans LDAP. Pour cela on arrte le serveur Samba.

/etc/init.d/samba stop On dclare le mot de passe administrateur dans samba, dans notre cas route . smbpasswd -w route On dmarre le serveur Samba. /etc/init.d/samba start La configuration de Samba est acheve. Si tout sest bien droul, la commande suivante ne doit renvoyer aucune erreur ni aucun warning. net getlocalsid La configuration de samba et de LDAP est termine, mais rien nest dclar dans larbre LDAP. La commande smbldap-populate va crer automatiquement larbre selon la configuration prcdemment tablie de smbldap-tools. Le mot de passe administrateur de LDAP est demand deux fois normalement. smbldap-populate Cette commande effectue, on peut dclarer nos utilisateurs avec lutilitaire smbldapuseradd. Il faut utiliser loption -a pour dclarer un utilisateur, et loption -P pour saisir son mot de passe la cration. smbldap-useradd -a -P user1 On saisit son mot de passe, pour lexemple on peut prendre le nom de lutilisateur. Ce mot de passe peut tre modifi tout moment avec la commande smbldap-passwd. Il est prfrable de grer soi-mme les numros UID des utilisateurs pour viter des conflits avec les utilisateurs locaux des machines (option -u de smbldap-useradd). Sinon la numrotation commence 1000, comme les comptes locaux. Le systme mlange alors les deux comptes et les droits ne sont plus respects. Il est aussi possible, voire mme prfrable de supprimer les comptes locaux des machines sauf les utilisateurs root (tant donn que l'aspect rseau est mis en avant). Cela permet d'avoir la gestion automatiuqe de l'incrmentation des UID. Dans notre exemple, on supprime tous les utilisateurs locaux et on laisse faire Samba (userdel -r nom_utilisateur). Les informations sur lutilisateur peuvent aussi tre modifies avec la commande smbldap-userinfo. Utilisez la commande smbldap-userdel pour supprimer un utilisateur. La commande smbladp-usershow permet de visualiser les informations dun utilisateur. Il est aussi possible dajouter et de retirer des groupes. Ne pas hsiter lire le man dune commande pour affiner son utilisation. Voici quelques exemples illustrant la liste de commandes nonces. smbldap-passwd user1 smbladp-userinfo user1 smbldap-usershow user1 smbldap-userdel user1

Etant donn que les commandes ne fonctionneraient pas pour le moment, nous verrons plus tard qu chaque ajout dutilisateur son rpertoire home doit tre cr manuellement. Nous allons maintenant configurer le partage des rpertoires utilisateurs pour les clients Unix.

2. Partage de fichier Unix : NFS


Pour partager les rpertoires home des utilisateurs pour des machines clientes Unix, Samba ne peut tre utilis. Nous nous tournons vers NFS, un protocole rseau conu pour le partage de fichier. Il faut installer sur la machine serveur le paquet nfs-kernel-server. apt-get install nfs-kernel-server Ensuite, il faut configurer le fichier /etc/exports de la manire suivante. /home/export/profile/ 10.0.0.0/255.255.255.0(rw,root_squash) Le rpertoire partager est le rpertoire contenant les home des utilisateurs, donc /home/export/profile. On donne l'accs aux machines voulues. Dans notre cas, on laisse l'accs aux machines du rseau 10.0.0.0 avec un masque rseau 255.255.255.0. Ce paramtre restreint les machines ayant le droit de se connecter au serveur. Entre parenthses sont spcifies les options rw et root_sqash qui permettent la lecture et l'criture et empchent l'utilisateur root local de la machine cliente d'craser les droits sur les rpertoires monts par les siens. Le logiciel Portmap gre les connexions RPC. Il est utilis par NFS, il doit donc tre configur pour couter sur le rseau. Pour s'assurer qu'il est bien configur, on le reconfigure. dpkg-reconfigure portmap On rpond la question Portmap doit-il se limiter l'adresse de bouclage 127.0.0.1 ? par NON. Ainsi, Portmap coute sur le rseau local et non que sur l'adresse 127.0.0.1. NFS est configur et oprationnel. Il ne reste plus qu grer lauthentification Unix. On redmarre le service NFS pour que la configuration soit prise en compte. /etc/init.d/nfs-kernel-server restart

3. Authentification Unix
a. NSS Pour lauthentification, un systme Linux peut rechercher les utilisateurs dans diffrentes sources de donnes. NSS entre en jeu pour cette tche, il faut lui installer le module LDAP pour quon puisse interroger une base LDAP. apt-get install libnss-ldap

On rpond aux diffrentes questions de Debconf pour configurer le paquet : adresse du serveur LDAP : on est sur le serveur, donc il faut mettre ladresse locale cest--dire ldap://127.0.0.1 ; nom distinctif de la base de recherche : comme prcdemment, adapter selon la configuration effectue, dans notre exemple dc=lo51,dc=utbm ; version de LDAP: nous utilisons la version 3 ; la base de donnes demande-t-elle une identification ? on rpond NON ; privilge LDAP spcifique pour le superutilisateur ? on rpond NON ; le fichier de configuration doit-il tre lisible et modifiable uniquement par son propritaire ? on rpond NON, sinon seul lutilisateur root pourra utiliser lannuaire ; on valide par OK. Linstallation de la librairie LDAP de NSS ncessite de modifier la configuration installe par dfaut. Pour cela il faut diter le fichier /etc/libnss-ldap.conf. Il faut vrifier les paramtres rootbinddn , base et uri ou les ajouter si ncessaire. Il faut aussi modifier le paramtre bind_policy. rootbinddn cn=admin,dc=lo51,dc=utbm base dc=lo51,dc=utbm uri ldap://127.0.0.1/ bind_policy=soft Au dmarrage de la machine, le service NSS va essayer de se connecter au serveur LDAP. Si celui-ci ne rpond pas, par dfaut, la machine sera bloque en attente dune rponse. Cela sera assez gnant. Pour viter cette situation, on change le paramtre bind_policy en soft. Ainsi, si le serveur ne rpond pas lordinateur passe cette tape et termine le processus de dmarrage. b. PAM De mme que pour NSS, on installe le module LDAP de PAM. PAM est un systme de bibliothques qui grent les tches d'authentification des applications (services) sur le systme. Les bibliothques fournissent une interface d'abstraction stable (Application Programming Interface - API) qui accorde les privilges aux programmes (comme login et su) en ajournant la ralisation des tches standard d'authentification. apt-get install libpam-ldap Debconf pose quelques questions auxquelles il faut rpondre comme cela : hte du serveur LDAP : tant sur le serveur, il faut mettre ladresse locale ldap://127.0.0.1 ; nom distinctif de la base de recherche : il faut mettre le domaine LDAP configur, donc dans notre exemple dc=lo51,dc=utbm ; version de LDAP: nous utilisons la version 3 de LDAP ; faut-il crer une base de donnes locale pour l'administrateur ? on rpond NON ; la base de donnes requiert-elle une connexion authentifie ? on rpond NON ; on valide par OK ; mthode de chiffrement pour les changements de mots de passe : on utilise la mthode crypt (ou chiffre).

Pour terminer la configuration de lauthentification par LDAP, il suffit dajouter ldap passwd , group et shadow dans le fichier /etc/nsswitch.conf. Il faut faire extrmement attention lors de ldition de ce fichier : une mauvaise manipulation et aucun compte ne pourra sauthentifier sur la machine, mme lutilisateur root sera bloqu. Le fichier doit tre ainsi, il faut bien mettre ldap aprs compat , linverse ne permettant plus lauthentification de root . passwd: group: shadow: compat ldap compat ldap compat ldap

hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis

Linstallation du serveur est acheve. Il faut bien sr redmarrer tous les services pour que tous les paramtres soient pris en compte par les services. /etc/init.d/samba stop /etc/init.d/slapd restart /etc/init.d/samba start Samba va crer automatiquement un rpertoire pour l'utilisateur si celui-ci sauthentifie pour la premire fois avec une machine Windows. Dans le cas contraire, le rpertoire n'existera pas et on aura une erreur : pas de rpertoire home . Pour que l'utilisateur ait son rpertoire home avec une machine cliente Unix, il faut le crer manuellement. Il faut lui donner le nom de l'utilisateur, user1 dans notre exemple. Ces oprations doivent tre effectues pour chaque cration de compte. mkdir /home/export/profile/user1 On met l'utilisateur comme propritaire de son rpertoire utilisateur. On affecte le groupe par dfaut de l'utilisateur : Domain User (513). chown user1:513 /home/export/profile/user1 On fixe les droits d'accs. Par exemple, on donne tous les droit user1, les droits de lecture et d'excution aux membres du groupe, et aucuns droits aux autres utilisateurs. chmod 750 /home/export/profile/user1 Quelques commandes vont permettre de sassurer que toute linstallation sest bien droule.

4. Prcision sur lajout des utilisateurs


Lorsque linstallation du serveur et des clients est entirement termine, on peut ajouter tous les utilisateurs dont on a besoins. Pour cela il faut procder comme indiqu dans lexemple, avec la commande smbldap-useradd et les options appropries. Ensuite il faut crer le rpertoire de lutilisateur cr dans /home/export/profile comme il la t expliqu. Lorsque tous les utilisateur ont t ajouts et les rpertoires crs et configurs, il est fortement recommand de redmarrer les services slapd et samba lorsque des modifications ont t effectues, pour que celles-ci soient prise en compte correctement.

5. Test de linstallation du serveur


Avant de mettre en production le serveur install, et pour tre sr que les clients que lon va installer pourront se joindre au domaine et se connecter, on peut effectuer la commande getent . En effet, si le serveur ne fonctionne pas, aucun client ne pourra fonctionner et le problme sera difficile localiser. getent passwd Cette commande doit retourner tous les comptes crs dans la base LDAP avec leur configuration. Si un utilisateur user1 a t cr avec la commande smbldap-useradd, une ligne comme celle-l doit apparatre dans la liste : user1:x:1200:513:System User:/home/user1:/bin/bash Si toutes les tapes cites ont t suivies et que les diffrents tests de fonctionnement du serveur sont concluants, on peut passer la configuration des clients.

6. Administration
Il est possible dinstaller des outils graphiques pour configurer ou plutt administrer le serveur LDAP ainsi que Samba. Nous naborderons pas leur installation dans ce tutoriel. Nous pouvons nanmoins en citer deux pour LDAP : LDAP Account Manager et PHPLDAPADMIN. Ces outils peuvent tre plus conviviaux que la configuration en mode texte. Cependant cela ncessite davoir une interface graphique, ce qui nest pas toujours le cas pour un serveur, en gnral on vite mme.

III.

Configuration de machines clientes du domaine LDAP


1. Clients Windows

La configuration des clients Windows est relativement simple. Samba joue le lien avec LDAP et automatise les tches dauto montage des rpertoires utilisateurs. En effet, la configuration du fichier /etc/samba/smb.conf, en particulier des scripts, va permettre de crer automatiquement les rpertoires et les fichiers ncessaires lors de la premire connexion dun utilisateur. Tous les profiles seront crs dans le rpertoire /home/export/profile. Pour le

client, il suffit de lintgrer au domaine dfini dans Samba. Pour cela il faut disposer dun Windows XP en version professionnelle (la procdure doit tre identique pour Windows 2000). Sinon, lintgration au domaine est impossible. Lintgration au domaine Samba seffectue en cliquant sur le Poste de travail avec le bouton droit de la souris, puis en cliquant sur Proprits . Il faut ensuite aller dans longlet Nom de lordinateur . Un bouton Modifier apparat, cliquer dessus. Dans la fentre qui apparat, il faut slectionner Domaine et saisir le nom du domaine Samba dans la case, lo51 dans notre exemple. Une fentre dauthentification saffiche et require les droits dadministration du domaine. On saisit root comme nom dutilisateur et le mot de passe associ, route dans notre exemple. Si lopration russie, une fentre Bienvenue dans le domaine lo51 saffiche. Il faut redmarrer lordinateur pour que la modification prenne effet. Une fois redmarr, il est possible de sauthentifier dans le domaine, avec user1 par exemple. Attention : si un Firewall est install et activ sur la machine cliente, il est prfrable de le dsactiver et/ou de la dsinstaller car il risque de bloquer les changes entre le client et le serveur lors de linclusion dans le domaine Samba. 2. Clients Unix a. NSS Comme pour le serveur, il faut installer le paquet libnss-ldap. apt-get install libnss-ldap On rpond aux diffrentes questions de Debconf pour configurer le paquet : adresse du serveur LDAP : met ladresse sur le rseau du serveur, par exemple ldap://10.0.0.120 ; nom distinctif de la base de recherche : comme prcdemment, adapter selon la configuration effectue, dans notre exemple dc=lo51,dc=utbm ; version de LDAP: nous utilisons la version 3 ; la base de donnes demande-t-elle une identification ? on rpond NON ; privilge LDAP spcifique pour le superutilisateur ? on rpond NON ; le fichier de configuration doit-il tre lisible et modifiable uniquement par son propritaire ? on rpond NON, sinon seul lutilisateur root pourra utiliser lannuaire ; on valide par OK. Il faut diter le fichier /etc/libnss-ldap.conf. Il faut vrifier les paramtres rootbinddn , base et uri . Il faut aussi modifier le paramtre bind_policy. rootbinddn cn=admin,dc=lo51,dc=utbm base dc=lo51,dc=utbm uri ldap://10.0.0.120 bind_policy=soft

b. PAM Comme pour le serveur, le paquet libpam-ldap doit tre install. apt-get install libpam-ldap Debconf pose quelques questions auxquelles il faut rpondre comme cela : hte du serveur LDAP : on met ladresse du serveur sur le rseau, par exemple ldap://10.0.0.120 ; nom distinctif de la base de recherche : il faut mettre le domaine LDAP configur, donc dans notre exemple dc=lo51,dc=utbm ; version de LDAP: nous utilisons la version 3 de LDAP ; faut-il crer une base de donnes locale pour l'administrateur ? on rpond OUI ; la base de donnes requiert-elle une connexion authentifie ? on rpond NON ; compte LDAP pour le superutilisateur : on met le chemin complet de la branche LDAP de ladministrateur de la base, savoir dans notre cas cn=admin,dc=lo51,dc=utbm ; on saisit le mot de passe administrateur, dans lexemple route ; mthode de chiffrement pour les changements de mots de passe : on utilise la mthode crypt (ou chiffre). Pour terminer la configuration de lauthentification par LDAP, il suffit dajouter ldap passwd , group et shadow dans le fichier /etc/nsswitch.conf. Il faut prendre les prcautions nonces dans la partie serveur. passwd: group: shadow: compat ldap compat ldap compat ldap

hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis

Une autre modification est effectuer. Par scurit il vaut mieux faire une sauvegarde du rpertoire /etc/pam.d/, car comme il la t dj dit, si un paramtre est mal configur plus aucune authentification ne sera possible. On peut sauvegarder le contenu de /etc/pam.d/ de la faon suivante : tar cjvf /root/save_pam.d.tar.bzip2 /etc/pam.d/ Il y a deux fichiers modifier. Le premier est /etc/pam.d/common-auth. Il faut remplacer la ligne auth required pam_unix.so nullok_secure

par auth sufficient pam_ldap.so auth sufficient pam_unix.so nullok_secure use_first_pass auth required pam_deny.so Le second fichier modifier est /etc/pam.d/common-account. Il faut remplacer la ligne account required pam_unix.so par account sufficient pam_ldap.so account sufficient pam_unix.so use_first_pass La dernire tape est le redmarrage de la machine cliente pour que les modifications apportes PAM soient prises en compte. Il est possible de tester le bon fonctionnement en mode console, en se connectant avec un utilisateur de la base LDAP, par exemple user1 qui a t dclar en exemple auparavant. su user1 Le mot de passe est demand, on le saisit et on se retrouve avec un Shell pour lutilisateur user1, sans rpertoire home pour linstant. Si une tape sest mal passe, le systme indique que lutilisateur est inexistant. Dans ce cas il faut vrifier toutes les tapes cites. c. NFS Pour monter automatiquement les rpertoires utilisateurs, Samba ne peut tre utilis pour Unix, on utilise alors NFS qui est un protocole permettant de raliser cette opration facilement. Nous allons configurer le montage du partage des rpertoires home par l'intermdiaire du fichier /etc/fstab. Ce montage sera effectu au dmarrage de la machine cliente. Il faut ajouter la fin du fichier la ligne suivante. 10.0.0.130:/home/export/profile /home/ldap nfs rw,sauto 0 0

Le premier paramtre est le partage monter, c'est dire /home/export/profile, rpertoire dans lequel sont stocks tous les rpertoires utilisateurs. On prcde le chemin par le nom DNS de la machine serveur ou par l'adresse IP avec : . Ensuite on spcifie le rpertoire dans lequel on monte le partage. Dans notre cas ce sera /home/ldap. Il faut bien sr avoir configur les rpertoires home en /home/ldap/nom_user. Ensuite on met le type de systme de fichier, soit NFS. On renseigne les options de montage : rw : on autorise la lecture et l'criture ; auto : le montage s'effectue automatiquement au dmarrage. Les deux derniers paramtres sont obligatoirement 0 .

On cre le rpertoire /home/ldap o sera mont le partage. mkdir /home/ldap On peut vrifier que le serveur est configur correctement en effectuant les commandes suivantes. mount -t nfs 10.0.0.130:/home/export/profile /home/ldap ls /home/ldap Il faut bien-sr adapter l'adresse IP la configuration du serveur. Si des rpertoires existent dans le rpertoire /home/export/profile, il seront montrs par la commande ls. Aucune erreur ne doit apparatre lors de la commande mount. Il est possible de dmonter le rpertoire /home/ldap et de prendre en compte le paramtrage de /etc/fstab. umout /home/ldap Cette commande relit le fichier /etc/fstab et prend en compte les changements. mount -a Cette commande conclue le tutoriel.

Conclusion
Linstallation est totalement acheve. Si tout sest bien pass, les utilisateurs dclars dans LDAP peuvent sauthentifier sur des machines Unix, Linux ou Windows en mode graphique (et/ou console sous Unix/Linux) et possdent un rpertoire home . Sous Windows, il faut entrer le nom dutilisateur et le mot de passe et choisir le domaine LO51 dans la liste droulante approprie. Sous Linux il suffit de saisir le nom dutilisateur et le mot de passe (il est possible de choisir un gestionnaire de fentre, le profil sera sauvegard dans le rpertoire home ). Si quelque chose ne fonctionne pas, il faut vrifier toutes les tapes de configuration numres au cours de ce tutoriel.

Sources
Nous avons utilis les sources suivantes pour raliser l'installation et le tutoriel d'installation de LDAP :

http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/ http://www.openldap.org/ http://de.samba.org/samba/docs/Samba-HOWTO-Collection.pdf http://blogpmenier.dynalias.net/?2007/05/26/131-debian-etch-installation-sambaauthentification-ldap http://www.supinfo-projects.com/en/2003/sambaldap/ http://villar.m.free.fr/mp.htm http://uid.free.fr/Ldap/ldap.html http://cj.tronquet.free.fr/doc/samba3ldap.php http://www.gcolpart.com/howto/samba.php4 http://tldp.org/HOWTO/LDAP-HOWTO/ http://frostis.ath.cx/divers/howto_ldap.pdf

You might also like