Vous êtes sur la page 1sur 18

 

Authentification 
centralisée : LDAP 
IATIC 5 

Nom ​:​ SAMENE TIAH Pavel 


Date :​ 11/12/2020 
 
Rappels sur LDAP 2 

Exercice 5.1: Objectif du protocole LDAP 2 

Exercice 5.2: Principale utilisation 2 

Exercice 5.3: Autre usage de LDAP 2 

Exercice 5.4: Attention aux données renseignées 2 

Exercice 5.5: Mysql VS LDAP 3 

Mise en place du serveur 3 

Exercice 5.6: Installation serveur LDAP 3 


Téléchargement et configuration 3 
Téléchargement 3 
Le fichier de configuration 3 

Exercice 5.7: Création de la base de données 4 

Exercice 5.8: Création du schéma de l’annuaire 4 


création du fichier LDIF 4 

 
TP 5 - Authentification centralisée : LDAP 1 
 

Exercice 5.9: Ajout d’un utilisateur dans ‘people’ 5 

Exercice 5.10: Ajoutez un groupe (user) et ajoutez-y l’utilisateur précédent 6 

Exercice 5.11: Vérification 7 

Exercice 5.12: changement de mot de passe 8 

Gestion graphique : phpldapadmin 8 

Exercice 5.13: Interface graphique phpmyadmin 8 


Installation 8 
Configuration de la redirection de port 8 

Exercice 5.14: Fichier de configuration 8 

Exercice 5.15: Création d’un nouvel utilisateur 9 

Intégration à PAM 11 

Exercice 5.16: Interface graphique phpmyadmin 11 

Exercice 5.17: /etc/pam.d et dans /etc/nslcd.conf. 11 

Exercice 5.18: Création automatique des dossiers utilisateur 12 

Exercice 5.19: Vérification 12 

Exercice 5.20: Vérification avec ssh 13 

Intégration à divers services 13 

Exercice 5.21: Intégration de LDAP dans jenkins 13 

Exercice 5.22: Gestion des noms d’hôte locaux 15 

Exercice 5.23: LDAP et Redmine 16 


Création de la base de données Redmine 16 
Configuration de la base de données 16 
Intégration LDAP 16 

Exercice 5.24: Filtrage par groupe dans PAM 17 

 
 

SAMENE TIAH Pavel - IATIC 5 1 


TP 5 - Authentification centralisée : LDAP 2 
 

Rappels sur LDAP 

Exercice 5.1: Objectif du protocole LDAP 


LDAP  est  l'acronyme  de  Lightweight  Directory  Access  Protocol,  c'est-à-dire  un 
protocole  d'annuaire  standard  et  extensible.  Il  permet de gérer les identités et les accès 
en  définissant  des  critères  pour  établir  la  communication  entre  le  serveur  et  le  client, 
(règles  de  nommage  de  l'information  dans  l'annuaire,  règles  de  sécurité,  règles  de 
dialogue et des règles d'informations).

Exercice 5.2: Principale utilisation 


Les applications les plus fréquentes de ce protocole concernent les annuaires de 
personnes, notamment pour répondre à un objectif de gestion des identités et des 
accès. Il est en effet très facile, dans le cadre d'applications Web d'appeler à distance 
un annuaire LDAP et de demander à l'utilisateur de s'authentifie 

Exercice 5.3: Autre usage de LDAP 


On retrouve également le protocole LDAP sur des annuaires de personnes 
internes dans une société, pour maintenir un organigramme des différents 
collaborateurs. Cela permet de notifier très rapidement tout changement de téléphone, 
d'adresse email ou tout autre donnée. Le protocole LDAP gère aussi facilement les 
droits utilisateurs, et la modification de ses droits dans le temps. 

Exercice 5.4: Attention aux données renseignées 


Certaines informations privées (telles qu’un numéro de téléphone personnel, ou 
bien l’adresse du domicile d’un collaborateur, etc.) ne doivent pas être accessibles à 
l’extérieur du réseau d’entreprise. Toutes ces données sensibles doivent donc être 
protégées contre des agressions extérieures. Les risques encourus vont du simple 

SAMENE TIAH Pavel - IATIC 5 2 


TP 5 - Authentification centralisée : LDAP 3 
 
espionnage des données échangées à l’intrusion dans le système d’annuaire par des 
personnes ou programmes malveillants. 

Exercice 5.5: Mysql VS LDAP 


 
LDAP   MySQL 

Parfait pour des informations qui sont  Parfait pour des données qui sont très 
difficilement mises à jour  fréquemment mis à jour 

Fournit une méthode de consultation  Chaque SGBD a sa propre couche de 


standardisée  connexion et ses propres fonctions. 

La norme LDAP définit le modèle de  Un SGBD varie ( quoi, où et comment) 


données 

Organisation Hiérarchique  Base de donnée relationnelle 

Mise en place du serveur 

Exercice 5.6: Installation serveur LDAP 


1. Téléchargement et configuration 
a. Téléchargement 

sudo apt install slapd ldap-utils 

b. Le fichier de configuration 
Nous allons maintenant préciser le nom de domain (dc): istycorp et fr: 

sudo vim ​/usr/local/etc/openldap/slapd.conf

SAMENE TIAH Pavel - IATIC 5 3 


TP 5 - Authentification centralisée : LDAP 4 
 

Exercice 5.7: Création de la base de données 


sudo /usr/local/libexec/slapd 

sudo dpkg-reconfigure -plow slapd 

sudo slapcat 

slapcat ​: le Directory Interchange Format LDAP (LDIF) est utilisé pour représenter les 
entrées LDAP dans un format de texte simple, cette commande génère une sortie LDAP 
basée sur le contenu d'une base de données. Ainsi on aperçoit entre autres: 

● Le nom de l’organisation 
● L’identifiant du fichier de base de données: UUID 
● La date de création des entrées 
● les valeurs du DN: cd, cn  

Exercice 5.8: Création du schéma de l’annuaire 

1. création du fichier LDIF 


sudo vim annuaire.ldif 

SAMENE TIAH Pavel - IATIC 5 4 


TP 5 - Authentification centralisée : LDAP 5 
 

 
ldapadd -x -D "cn=admin,dc=istycorp,dc=fr" -f annuaire.ldiff -W 

Exercice 5.9: Ajout d’un utilisateur dans ‘people’ 


Nous allons créer le fichier ​ldif​ correspondant à cet utilisateur: 

vim pavel.ldif 

Ensuite, nous écrivons le contenu suivant dans ce fichier: 

dn: cn=pavel,uid=pavel,ou=people,dc=istycorp,dc=fr 

objectClass: top 

objectClass: account 

objectClass: posixAccount 

objectClass: shadowAccount 

uid: pavel 

uidNumber: 16859 

SAMENE TIAH Pavel - IATIC 5 5 


TP 5 - Authentification centralisée : LDAP 6 
 

gidNumber: 100 

userPassword: {crypt}@Pavel2378ze 

gecos: SAMENE_TIAH_Pavel 

loginShell: /bin/bash 

homeDirectory: /home/pavel 

Ensuite, nous utilisons la commande ​ldapadd​ pour ajouter cet utilisateur: 

ldapadd -x -W -D "cn=amin,dc=istycorp,dc=fr" -f pavel.ldif 

Exercice  5.10:  Ajoutez  un  groupe  (user)  et  ajoutez-y 


l’utilisateur précédent 
Nous allons créer le fichier d’ajout (user.ldif): 

vim user.ldif 

ensuite nous ajoutons le contenu suivant: 

dn: cn=pavel,ou=people,dc=istycorp,dc=fr 

objectClass: top 

objectClass: posixGroup 

cn: pavel 

memberUid: 16859 

gidNumber: 1000 

Ensuite nous créons ce groupe avec la commande suivante: 

ldapadd -x -W -D "cn=ramesh,dc=tgs,dc=com" -f group1.ldif 

SAMENE TIAH Pavel - IATIC 5 6 


TP 5 - Authentification centralisée : LDAP 7 
 

Exercice 5.11: Vérification 


ldapsearch -x -D "cn=admin,dc=istycorp,dc=fr" -W 
-b"cn=pavel,uid=pavel,ou=people,dc=istycorp,dc=fr" “(objectclass=*)” 

Enter LDAP Password:

# extended LDIF

# LDAPv3

# base <uid=pavel,ou=people,dc=istycorp,dc=fr> with scope subtree

# filter: (objectclass=*)

# requesting: ALL

# pavel, people, istycorp.fr

dn: uid=pavel,ou=people,dc=istycorp,dc=fr

objectClass: top

objectClass: account

objectClass: posixAccount

objectClass: shadowAccount

cn: pavel

uid: pavel

uidNumber: 16859

gidNumber: 100

homeDirectory: /home/pavel

loginShell: /bin/bash

SAMENE TIAH Pavel - IATIC 5 7 


TP 5 - Authentification centralisée : LDAP 8 
 

gecos: adam

# search result

search: 2

result: 0 Success

# numResponses: 2
# numEntries: 1

Exercice 5.12: changement de mot de passe 


Nous allons utiliser la commande suivante pour changer le mot de passe: 

ldappasswd -s @log234dmin -W -D "cn=admin,dc=istycorp,dc=fr" -x 


"uid=pavel,ou=people,dc=istycorp,dc=fr" 

Gestion graphique : phpldapadmin 

Exercice 5.13: Interface graphique phpmyadmin 


1. Installation 
sudo​ ​apt-get​ ​install​ phpldapadmin

2. Configuration de la redirection de port 


sudo​ ufw allow ldap

Exercice 5.14: Fichier de configuration 


sudo​ ​vim​ /etc/phpldapadmin/config.php

La ligne suivante nous permet de configurer notre dc, nous le remplissons avec les 
valeurs istycorp et fr. 

SAMENE TIAH Pavel - IATIC 5 8 


TP 5 - Authentification centralisée : LDAP 9 
 

$servers->setValue('server','base', array(​'dc=istycorp,dc=fr’​)); 

Ensuite nous allons à l’adresse: ​http://istycorp.fr/phpldapadmin 

Exercice 5.15: Création d’un nouvel utilisateur 

SAMENE TIAH Pavel - IATIC 5 9 


TP 5 - Authentification centralisée : LDAP 10 
 

Ajout de l’utilisateur au groupe: 

SAMENE TIAH Pavel - IATIC 5 10 


TP 5 - Authentification centralisée : LDAP 11 
 

Intégration à PAM 

Exercice 5.16: Interface graphique phpmyadmin


sudo apt-get install libnss-ldapd libpam-smbpass libpam-mount

Exercice 5.17: /etc/pam.d et dans /etc/nslcd.conf. 


Nous modifions le fichier ​/etc/nslcd.conf​ en décommentant plusieurs lignes comme 
suit: 

SAMENE TIAH Pavel - IATIC 5 11 


TP 5 - Authentification centralisée : LDAP 12 
 

Nous vérifions aussi les fichiers de configuration suivants: 

● /etc/pam.d/common-auth
● /etc/pam.d/common-password
● /etc/pam.d/common-session

Exercice  5.18:  Création  automatique  des  dossiers 


utilisateur 

Exercice 5.19: Vérification 


sudo getent passwd

sudo getent shadow

SAMENE TIAH Pavel - IATIC 5 12 


TP 5 - Authentification centralisée : LDAP 13 
 

Exercice 5.20: Vérification avec ssh 


Nous devons configurer le fichier ​sshd​ correspondant: 

sudo vim /etc/pam.d/ssh

Ensuite nous ajoutons le les lignes suivantes: 

auth required pam_listfile.so item=user sense=deny


file=/etc/sshd/sshd.deny

onerr=succeed

Intégration à divers services 

Exercice 5.21: Intégration de LDAP dans jenkins 


Premièrement nous installons le plugin LDAP à l’aide de l’interface graphique de jenkins: 

SAMENE TIAH Pavel - IATIC 5 13 


TP 5 - Authentification centralisée : LDAP 14 
 

Ensuite nous allons dans ​Jenkins > Configure Global Security: 

Nous pouvons utiliser m


​ emberOf pour limiter l’accès aux membre d’un groupe

SAMENE TIAH Pavel - IATIC 5 14 


TP 5 - Authentification centralisée : LDAP 15 
 

Exercice 5.22: Gestion des noms d’hôte locaux 


Nous ouvrons le fichier /etc/hosts, il conient: 

127.0.0.1 localhost 

192.168.0.2 istycorp.fr istycorp 

Ensuite, nous créons un fichier LDIF: 

sudo vim local.ldif 

ldapadd -x -W -D 'cn=ldapadmin,dc=istycorp,dc=fr -h 192.168.0.2 -p 389 -f hosts.ldif 

SAMENE TIAH Pavel - IATIC 5 15 


TP 5 - Authentification centralisée : LDAP 16 
 

Exercice 5.23: LDAP et Redmine 


wget ​https://www.redmine.org/releases/redmine-4.1.1.tar.gz 

1. Création de la base de données Redmine


CREATE DATABASE redmine CHARACTER SET utf8; 

GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'​@'​ localhost' IDENTIFIED BY “237Pavel”; 

2. Configuration de la base de données 

production: 

adapter: mysql2 

database: redmine 

host: localhost 

username: redmine 

password: "237Pavel" 

3. Intégration LDAP 
Redmine prend en charge l'authentification LDAP en utilisant un ou plusieurs annuaires 
LDAP. 

Déclaration du LDAP 

Dans l’administration graphique, nous cliquons sur Authentification LDAP dans le menu. 

SAMENE TIAH Pavel - IATIC 5 16 


TP 5 - Authentification centralisée : LDAP 17 
 

Ensuite nous entrons: 

Nom: rep1 

Hôte: ldapadmin 

Port: 389 

LDAPS: coché 

Compte: admin 

Mot de passe: Pavel123 

DN de base: cn=admin,dc=istycorp,dc=fr 

Exercice 5.24: Filtrage par groupe dans PAM 


Nous allons utiliser le mot AllowGroups: 
dn: cn=admin,ou=people,dc=istycorp,dc=fr cn: admin objectClass: groupOfNames
labeledURI:
ldap:///ou=groups,dc=istycorp,dc=fr?memberUid?one?(|(cn=people)(cn=fr))

Webographie: 

● LDAP/OpenLDAPSetup 
● How  To  Install  and  Configure  OpenLDAP  and  phpLDAPadmin  on 
Ubuntu 16.04 
● How to Add LDAP Users and Groups in OpenLDAP on Linux 
● Linux:Configuration  de  NSS/PAM  pour  une  authentification  via  un 
LDAP 

SAMENE TIAH Pavel - IATIC 5 17 

Vous aimerez peut-être aussi