Contrôleur de domaine avec NSS + PAM + LDAP
Il est joli de consulter un annuaire LDAP et voir les infos stockées, mais il serait plus intéressant de comprendre qu'un annuaire LDAP peut mieux faire !
Le but de ce TP est de mettre en place un contrôleur de domaine avec l'outil NSS et le module PAM autour d'un annuaire LDAP.
1 - Mise en place de l'annuaire LDAP
# apt install slapd ldap-utils -y
# cp /usr/share/slapd/slapd.conf /etc/ldap/
# cd /etc/ldap/
# mv slapd.d slapd.d.old
# nano slapd.conf
/image%2F3625927%2F20201119%2Fob_a78ebc_0.png)
/image%2F3625927%2F20201119%2Fob_f72ac4_1.png)
/image%2F3625927%2F20201119%2Fob_3997f6_2.png)
/image%2F3625927%2F20201119%2Fob_cdecaf_8.png)
/image%2F3625927%2F20201119%2Fob_109ac6_5.png)
/image%2F3625927%2F20201119%2Fob_19b389_6.png)
/image%2F3625927%2F20201119%2Fob_21b08f_7.png)
-
Configuration du client
# nano /etc/ldap/ldap.conf
/image%2F3625927%2F20201119%2Fob_d6baab_9.png)
-
Ajout de la racine et une unité organisationnelle
# nano /etc/ldap/racine.ldif
dn: dc=telecoms,dc=sn
objectclass: organization
objectclass: dcObject
dc: telecoms
o: telecoms
dn: ou=users,dc=telecoms,dc=sn
objectclass: organizationalUnit
ou: users
on alimente l'annuaire
/image%2F3625927%2F20201119%2Fob_228c31_10.png)
-
Ajout d'un utilisateur
# nano users.ldif
dn: uid=amadou,ou=users,dc=telecoms,dc=sn
objectclass: inetOrgPerson
objectclass: posixAccount
uid: amadou
homeDirectory: /home/amadou
cn: Amadou Diallo
uidNumber: 3000
gidNumber: 3000
loginShell: /bin/bash
sn: diallo
userPassword: passer
mail: amadou@telecoms.sn
dn: cn=amadou,dc=telecoms,dc=sn
objectclass: posixGroup
gidNumber: 3000
memberUid: amadou
On alimente l'annuaire
/image%2F3625927%2F20201119%2Fob_f442d2_11.png)
2 - NSS
NSS est le sigle de Name Service Switch, ou multiplexeur de service de noms en français. c'est un système modulaire pour définir ou récupérer les informations des annuaires.
Par défaut NSS ne tient compte que des comptes systèmes, pour lui permettre d'exploiter les informations de l'annuaire, il faudra installer le paquet libnss-ldap
# apt install libnss-ldap
/image%2F3625927%2F20201119%2Fob_868c2b_13.png)
/image%2F3625927%2F20201119%2Fob_1303ee_14.png)
/image%2F3625927%2F20201119%2Fob_85af82_15.png)
Puis saisir le mot de passe de l'administrateur de l'annuaire !
# nano /etc/nsswitch.conf
/image%2F3625927%2F20201119%2Fob_0a896b_16.png)
# nano /etc/ldap.conf pour donner les valeurs suivantes aux paramètres suivants :
/image%2F3625927%2F20201119%2Fob_909675_20.png)
# service libnss-ldap restart
Test de fonctionnement
/image%2F3625927%2F20201119%2Fob_373310_21.png)
Nous voyons clairement que le user amadou ne figure pas parmi les comptes systèmes, mais il existe quand même ! (dans l'annuaire).
A ce stade, le user amadou possède un compte, mais ne dispose pas de répertoire personnel. Il existe une bibliothèque qui s'occupe de ça !
3 - PAM
PAM est le sigle de Pluggable Authentification Module ou Module d'authentification enfichable en français. C'est une bibliothèque modulaire centralisant les mécanismes d'authentification, d'initialisation des sessions et de gestion des mots de passe.
# apt install libpam-ldap
# nano /etc/pam.d/common-session pour y ajouter la ligne suivante vers la fin du fichier :
/image%2F3625927%2F20201119%2Fob_cbdd1a_22.png)
Cette ligne permet de créer un répertoire personnel à un utilisateur nouvellement connecté.
Test de fonctionnement
/image%2F3625927%2F20201119%2Fob_83ee5c_23.png)
Nous avons découvert à travers ce TP que le fichier /etc/passwd n'a pas le monopole absolu de stockage des comptes utilisateurs, qu'un annuaire est aussi capable de jouer ce rôle à travers le module NSS et la bibliothèque PAM !