• Aucun résultat trouvé

TUTORIEL. Installation d un serveur LDAP. UV : LO51 Enseignant : M. GALLAND

N/A
N/A
Protected

Academic year: 2022

Partager "TUTORIEL. Installation d un serveur LDAP. UV : LO51 Enseignant : M. GALLAND"

Copied!
10
0
0

Texte intégral

(1)

ANDRE Mikaël Semestre : Printemps 2007 DIDIERJEAN Aurélien

DESVIGNES Nicolas BONASSI Johan ROGERS Jason

TUTORIEL

Installation d’un serveur LDAP

UV : LO51

Enseignant : M. GALLAND

(2)

Ce tutoriel a pour but d’expliquer comment installer un serveur LDAP. Ce serveur LDAP servira à gérer les comptes utilisateurs d’un réseau de machines. Le but est de pouvoir s’authentifier, en tant qu’utilisateur, sur n’importe quelle machine d’un réseau informatique, en retrouvant le répertoire utilisateur contenant les données personnelles associées 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 répertoires « home » sur les machines clientes. Toutes les informations nécessaires à ces opérations seront stockées au sein d’un annuaire LDAP. Nous nous appuierons sur Samba et NFS pour le partage des données pour Windows et Linux. Ces deux protocoles permettront d’automatiser le montage des répertoires des utilisateurs. Les machines clientes pourront être des machines Linux, Unix ou Windows.

Nous commencerons par donner quelques pré requis pour que l’installation et la configuration se déroulent correctement. Nous listerons les paquets à installer, ainsi que les options d’installation à sélectionner. Nous passerons ensuite à la configuration du serveur installé. Pour finir, nous aborderons la configuration des machines clientes citées ci-dessus.

I. Pré requis

L’installation a été réalisée sur une distribution Debian Etch (4.0). Ce tutoriel doit pouvoir s’appliquer sur n’importe quelle version de Debian (Woody, Sarge, Sid) ou dérivée (Ubuntu, Kubuntu) en adaptant les noms ou les emplacements de certains fichiers du système et les versions des logiciels à installer.

La majorité des commandes doit s’effectuer en tant qu’administrateur pour avoir les droits suffisant afin d’effectuer les manipulations. Pour cela, on tape la commande suivante dans une console pour devenir l’utilisateur « root » et on saisit le mot de passe administrateur :

On peut bien sûr s’authentifier directement en tant que « root » dans une console texte (le mode graphique étant déconseillé pour l’administrateur).

Avant de commencer, on peut reconfigurer l’utilitaire Debconf pour qu’il pose les questions voulues lors de l’installation des différents logiciels. Pour cela on tape la commande suivante :

On choisit ensuite le mode « Dialogue » et le niveau « Intermédiaire ». Cela permettra d’avoir l’interface de configuration des paquets dans la console (mode caractère en couleur indépendant d’un quelconque gestionnaire graphique) dans un mode peu automatisé.

Si une option est oubliée ou mal choisie lors de l’installation d’un paquet, il est possible de reconfigurer le paquet, comme pour Debconf, avec la commande « dpkg-reconfigure ». De même, il est possible que l’utilitaire ne pose pas certaines questions mentionnées dans le tutoriel lors de son installation. Dans ce cas il faut finir la configuration du paquet et le reconfigurer, les questions seront alors posées.

Pour que l’utilitaire Apt puisse trouver et installer les paquets requis, il faut que les sources soient correctement configurées, et à jour. La commande suivante permet de mettre à jour la liste de paquets :

su -

dpkg-reconfigure debconf

(3)

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 utilisée, le support doit être déjà mis. Si le noyau est personnalisé, il faut vérifier 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 réinstaller le noyau).

II. Installation et configuration du serveur

1. OpenLDAP

Nous allons procéder à l’installation du serveur. Commençons par installer l’annuaire LDAP. Pour cela, on installe les paquets suivants :

slapd : le paquet du service OpenLDAP fonctionnant en mode standalone ;

ldap-utils : outil de contrôle et d’accès à une base LDAP ;

db4.4-util : outil permettant de manipuler des bases de données Berkeley.

Pour cela on utilise Apt par la commande suivante :

On répond aux questions posées par Debconf pour le paquet slapd:

• voulez vous omettre la configuration d'openLDAP ? : on répond NON, cela permet de générer un fichier de configuration rempli correctement en répondant aux questions qui suivent ;

• nom de domaine : nous avons choisi pour l’exemple « lo51.utbm », adaptez le à votre domaine. Il faudra l’utiliser à chaque fois qu’il sera demandé, donc à chaque fois que « lo51.utbm » apparaît dans la suite de ce tutoriel ;

• nom de votre organisation : nous avons choisi pour l’exemple « lo51 », il faudra procéder de même que pour le nom de domaine, mais ce n’est pas une information très importante ;

• mot de passe de l'administrateur : il faut choisir un mot de passe pour l’administrateur de la base LDAP, pour l’exemple nous avons choisi « route ».

Il faut bien le mémoriser et ne pas le perdre, il servira plus tard pour l’accès à LDAP et pour certaines configurations ;

• on tape une deuxième fois le mot de passe pour l’administrateur, ainsi on est sûr de ne pas se tromper : dans notre cas on retape « route » ;

• module de base de données à utiliser : on choisi le module BDB ;

• faut il supprimer la base données à la purge de paquet ? : on répond NON.

Ainsi, si on désinstalle le paquet slapd, on ne supprime pas sa base d’utilisateurs. Cela évite la suppression malencontreuse des données ;

• faut il déplacer l'ancienne base de données ? : on répond NON ;

• faut il autoriser le protocole LDAPv2 : on répond NON, nous utiliserons uniquement le protocole v3.

apt-get update

apt-get install slapd ldap-utils db4.4-util

(4)

Le service LDAP est maintenant installé et en partie configuré. Nous allons passer à l’installation du service Samba.

2. Samba

Le service Samba va nous permettre de monter automatiquement le répertoire personnel de l’utilisateur, et va nous fournir le schéma adapté pour la déclaration dans LDAP.

Pour cela il faut installer le paquet samba-doc.

Si le logiciel gzip n’est pas installé, ajouter le paquet gzip à la ligne de commande ci- dessus. Il sera utile pour décompresser le schéma. On récupère le schéma LDAP de samba que l’on copie avec ceux de LDAP par la commande suivante :

On ajoute l’utilisation du schéma 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…).

On recherche dans le fichier l’endroit où sont faites les inclusions des schémas, donc les lignes commençant par « include », et on ajoute la ligne suivante :

On vérifie que la génération du fichier a été réalisée selon la configuration saisie dans Debconf. On vérifie principalement l’option « suffix » qui doit être de la forme suivante :

Cela correspond au nom de domaine LDAP. Chaque ‘dc’ est une partie du nom de domaine, séparé selon le caractère « . ». 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 qu’administrateur, il faut déclarer dans ce fichier l’utilisateur « admin » ainsi que le mot de passe précédemment configuré lors de l’installation 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 réversible.

L’utilitaire permettant de réaliser cette opération est inclus dans le paquet slapd. On crypte le mot de passe administrateur déclaré lors de la configuration de slapd, dans notre cas « route ».

Le mot de passe doit être saisi deux fois.

On sauvegarde la chaîne de caractères renvoyée par la commande. On va ajouter les deux lignes suivantes dans le fichier /etc/ldap/slapd.conf :

apt-get install samba-doc

gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > \ /etc/ldap/schema/samba.schema

vi /etc/ldap/slapd.conf

include /etc/ldap/schema/samba.schema

suffix "dc=lo51,dc=utbm"

slappasswd

(5)

Adaptez dans la première ligne les ‘dc’ selon votre domaine. En principe, les lignes sont déjà dans le fichier, commentées. Il suffit de les décommenter et de les adapter.

La configuration du service LDAP est terminée, on peut redémarrer le service.

Nous procédons maintenant à l’installation du service Samba en lui-même, et des outils clients.

On répond aux questions posées en laissant toutes les réponses par défaut, la configuration va s’effectuer 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 problème.

Il faut éditer le fichier /etc/samba/smb.conf. Ce fichier de configuration se découpe 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 réseau, par exemple 192.168. pour avoir tous les réseaux de ce type

a. Section Global

Les paramètres définis dans la section « global » sont valables pour l'ensemble des sections de la configuration de SAMBA.

On définit par ces 3 paramètres le nom du groupe de travail (workgroup), le nom netbios de la machine pour les réseaux Windows (netbios name), ainsi que le libellé dans le voisinage réseau vu à partir d'un poste client Windows (server string).

rootdn "cn=admin,dc=lo51,dc=utbm"

rootpw Ligne obtenue avec slappasswd

/etc/init.d/slapd restart

apt-get install samba smbclient smbfs

cp /etc/samba/smb.conf /etc/samba/smb.conf.old

[global]

workgroup = lo51 netbios name = server

server string = Samba-LDAP PDC Server

domain master = Yes local master = Yes domain logons = Yes os level = 40

(6)

Ces options activent samba comme serveur maître du domaine. Samba gère également les contrôles de connexions pour le domaine. Pour terminer, « os level » définit le niveau du système d'exploitation pour indiquer quel est le maître élu du domaine.

Grâce à ces lignes, nous définissons :

• ldap passwd sync : l’activation de la synchronisation des mots de passe UNIX et SAMBA ;

• passdb backend : la méthode d'accès 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 unités d'organisation de groupes, d'utilisateurs et de machines.

• ldap delete dn : l’autorisation de la suppression d'un compte.

On indique à samba la localisation des scripts pour l'ajout, la modification ou la suppression d'utilisateurs et de groupes. Le paramètre « %u » représente l'utilisateur, et

« %g » le groupe.

Pour les clients Windows, on indique la lettre de montage pour les clients Windows avec l'option « logon drive ». De plus, on définit le chemin d'accès pour les répertoires personnels par l'option « logn path »; "%L" correspond au nom netbios du serveur, et "%U"

indique l'utilisateur Unix courant.

Grâce à cette ligne, on affine Samba en faisant en sorte qu'il réagisse plus vite.

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

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"

logon path =

\\%L\profile\%U logon drive = P:

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

(7)

L'ensemble des lignes précédentes concerne les touches. Tout d'abord, on définit que notre serveur Samba est insensible à la casse des touches. Par défaut, on choisit les minuscules. De plus « preserve case » et « short preserve case » permettent de garder la casse des noms de fichiers.

Notre serveur Samba ne se charge pas de la gestion des noms de domaines mais sera en charge de gérer la résolution des noms netbios du réseau.

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 d’IP ne pourront pas communiquer avec le serveur Samba.

La première option, permet de ne plus spécifier le domaine lors de la connexion sur le domaine par défaut. La seconde, si elle est définie à « Yes », indiquera à Samba qu’il faut tenter de gérer les droits d'accès avec les attributs étendus de Windows.

On définit à 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 distribués sur différents serveurs. La disponibilité est possible grâce aux liens symboliques.

Sur un serveur, il est toujours intéressant de pouvoir cacher certains répertoires. « hide files » contient la liste des répertoires qui ne sont pas visibles mais accessibles.

b. Section des Partages

Dans la suite de la configuration, on déclare l'ensemble des partages du serveur Samba. Pour l'ensemble des partages qui suivent, on utilise un ensemble d'options :

• « path » : chemin d'accès sur le serveur Samba ;

• browseable : le répertoire est il explorable ;

• writeable : peut-on écrire dans ce répertoire ;

• profile acls : activation des profils acls pour la gestion des droits étendus ;

• create mask : masque des droits par défaut pour les fichiers créés ;

• directory mask : masque des droits par défaut des répertoires créés.

case sensitive = No default case = lower preserve case = yes short preserve case = Yes

dns proxy = No wins support = Yes

hosts allow = 10. 127.

winbind use default domain = Yes nt acl support = Yes

msdfs root = Yes

hide files = /desktop.ini/ntuser.ini/NTUSER.*/

(8)

Tout d'abord, on déclare le partage des répertoires pour le profil itinérant des clients Windows.

Le second partage est le profil de chaque utilisateur pour les clients Windows.

Le dernier partage, correspond désormais aux répertoires personnels des utilisateurs, le chemin d'accès sur le serveur possède un paramètre « %u » qui représente le nom d'utilisateur qui se connecte sur le serveur.

Suite à la configuration du serveur samba, il est nécessaire de créer les différents répertoires et de donner les droits sur chaque répertoire pour tout le monde en écriture

« a+w ».

Nous allons installer un outil permettant de manipuler des comptes et des groupes d’utilisateurs dans une base LDAP : le paquet smbldap-tools.

Il faut éditer (ou créer) le fichier /etc/smbldap-tools/smbldap_bind.conf et en remplacer le contenu par les lignes suivantes :

[netlogon]

path = /home/netlogon writable = No

browseable = No

write list = Administrateur

[profile]

path = /home/export/profile browseable = No

writeable = Yes profile acls = yes create mask = 0700 directory mask = 0700

[homes]

path = /home/export/profile/%u comment = Repertoire Personnel browseable = No

writeable = Yes

mkdir -p /home/netlogon mkdir -p /home/export/profile chmod a+w /home/export

chmod a+w /home/export/profile

apt-get install smbldap-tools

slaveDN="cn=admin,dc=lo51,dc=utbm"

slavePw=MotDePasse

masterDN="cn=admin,dc=lo51,dc=utbm"

masterPw=MotDePasse

(9)

Il faut bien sûr adapter le chemin de l’administrateur LDAP à votre configuration. Le mot de passe est celui de l’administrateur LDAP qui a été saisi au début de l’installation. Il doit être noté en clair dans cette configuration. Pour éviter qu’il puisse être lu par n’importe qui, on modifie les droits d’accès au fichier ; seul le compte « root » pourra le lire.

On édite (ou on crée) le fichier /etc/smbldap-tools/smbldap.conf et on en remplace le contenu par les lignes suivantes :

Ce fichier sert à déclarer le serveur LDAP, l’arborescence LDAP pour la gestion des comptes utilisateurs, le format des mots de passe stockés, la configuration par défaut des comptes que l’on crée (répertoire home, shell,…). Il faut adapter le suffixe à la configuration LDAP mise en place. Comme on travaille sur le même serveur que celui qui héberge LDAP, l’adresse IP est l’adresse locale donc « 127.0.0.1 ». Pour faciliter la gestion des répertoires

« home » des utilisateurs, on les range dans un sous répertoire de /home, /home/ldap par exemple. Cela sera utile pour monter en local le répertoire de l’utilisateur stocké sur le serveur.

Il faut maintenant déclarer le mot de passe de l’administrateur qui fera les requêtes dans LDAP. Pour cela on arrête le serveur Samba.

chmod 600 /etc/smbldap-tools/smbldap_bind.conf

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"

(10)

On déclare le mot de passe administrateur dans samba, dans notre cas « route ».

On démarre le serveur Samba.

La configuration de Samba est achevée. Si tout s’est bien déroulé, la commande suivante ne doit renvoyer aucune erreur ni aucun warning.

La configuration de samba et de LDAP est terminée, mais rien n’est déclaré dans l’arbre LDAP. La commande smbldap-populate va créer automatiquement l’arbre selon la configuration précédemment établie de smbldap-tools. Le mot de passe administrateur de LDAP est demandé deux fois normalement.

Cette commande effectuée, on peut déclarer nos utilisateurs avec l’utilitaire smbldap- useradd. Il faut utiliser l’option -a pour déclarer un utilisateur, et l’option -P pour saisir son mot de passe à la création.

On saisit son mot de passe, pour l’exemple on peut prendre le nom de l’utilisateur. Ce mot de passe peut être modifié à tout moment avec la commande smbldap-passwd.

Il est préférable de gérer soi-même les numéros UID des utilisateurs pour éviter des conflits avec les utilisateurs locaux des machines (option « -u » de smbldap-useradd). Sinon la numérotation commence à 1000, comme les comptes locaux. Le système mélange alors les deux comptes et les droits ne sont plus respectés. Il est aussi possible, voire même préférable de supprimer les comptes locaux des machines sauf les utilisateurs root («étant donné que l'aspect réseau est mis en avant). Cela permet d'avoir la gestion automatiuqe de l'incrémentation des UID. Dans notre exemple, on supprime tous les utilisateurs locaux et on laisse faire Samba (userdel -r nom_utilisateur).

Les informations sur l’utilisateur peuvent aussi être modifiées avec la commande smbldap-userinfo. Utilisez la commande smbldap-userdel pour supprimer un utilisateur. La commande smbladp-usershow permet de visualiser les informations d’un utilisateur. Il est aussi possible d’ajouter et de retirer des groupes. Ne pas hésiter à lire le man d’une commande pour affiner son utilisation. Voici quelques exemples illustrant la liste de commandes énoncées.

/etc/init.d/samba stop

smbpasswd -w route

/etc/init.d/samba start

net getlocalsid

smbldap-populate

smbldap-useradd -a -P user1

smbldap-passwd user1 smbladp-userinfo user1 smbldap-usershow user1 smbldap-userdel user1

Références

Documents relatifs

En cliquant sur cet onglet « Espace privé » ou « Article (n° d’article) » vous ouvrirez directement la partie administration du site, dans laquelle vous pourrez créer une notice,

Rechercher dans la liste des fichiers du paquet slapd la commande relative à l'indexation des entrées d'un annuaire. # dpkg -L slapd | grep

–Domaine LDAP : authentification sur machines unix récentes et annuaires divers (mail, …).. –Domaine NIS: authentification sur machines Unix qui ne supportent pas

 Describes what operations can be performed on the information stored in an LDAP directory..

LDAP (Lightweight Directory Access Protocol, traduisez Protocole d'accès aux annuaires léger et prononcez "èl-dap") est un protocole standard permettant de gérer des

 Chaque entrée de l’annuaire fait obligatoirement référence à une classe d’objet du schéma..  Une classe d’objet est

❑ Le modèle d’information définit le type de données pouvant être stockées dans l’annuaire.. L’entrée (Entry) = élement de base

CRU-UREC ■ Tutorial LDAP ■ Journées LDAP-27-28/9/00-Paris- 7.. Concepts : qu’est-ce