GDM-LDAP-Ubuntu
Baptiste SIMON (aka BeTa)
Copyright © 2006 Baptiste SIMON <baptiste.simon @ e-glop.net>
Ce tutoriel (Howto) va présenter comment se sortir d'un problème apparemment insoluble avec GDM et une authentification basée sur un annuaire LDAP (ici : OpenLDAP). Ce problème s'est présenté à moi avec un parc de serveurs sous Debian GNU/Linux (Sarge) et un poste client sous Ubuntu GNU/Linux (5.10 - Breezy Badger).
Sommaire
Pré-requis
il faut avoir installé (à la date d'écriture de ce document) :
$ dpkg -l 'lib*ldap' gdm Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder | État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé |/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais) ||/ Nom Version Description +++-=================================-=================================-======================================================== ii gdm 2.8.0.5-0ubuntu1 GNOME Display Manager ii libnss-ldap 238-1ubuntu1 NSS module for using LDAP as a naming service ii libpam-ldap 178-1ubuntu2 Pluggable Authentication Module allowing LDAP interfaces
Configuration
PAM (authentification)
Pour faire fonctionner GDM, voici comment j'ai dû paramétrer mon authentification PAM (notez que cela n'a rien d'extraordinaire) :
$ cat /etc/pam.d/common-account account sufficient pam_ldap.so account required pam_unix.so
$ cat /etc/pam.d/common-auth auth sufficient pam_ldap.so auth required pam_unix.so use_first_pass nullok_secure
$ cat /etc/pam.d/common-password password sufficient pam_ldap.so md5 password required pam_unix.so nullok obscure min=4 max=8 md5
$ cat /etc/pam.d/common-session session sufficient pam_ldap.so session required pam_unix.so
nsswitch
Ensuite, il m'a été nécessaire de mettre dans le bon ordre les options de mon fichier /etc/nsswitch.conf sous peine de continuer à voir GDM bloquer sur le processus d'authentification de manière incompréhensible (attention donc à l'ordre des éléments sur chaque ligne) :
$ grep ldap /etc/nsswitch.conf passwd: files ldap group: files ldap shadow: files ldap
OpenLDAP
Sans avoir fait de test sans passer par SSL/TLS, il est possible que cette étape soit aussi nécessaire pour réussir son authentification avec GDM. Notez que dans tous les cas, crypter ses échanges OpenLDAP est, je pense, aujourd'hui une nécessité.
Voici donc comment paramétrer son client pour fonctionner sur SSL/TLS :
$ grep ssl /etc/ldap.conf ssl start_tls ssl on
Pour paramétrer votre serveur, je vous conseille de suivre des documentations très bien faites à ce sujet... Je ne pense pas avoir besoin de réécrire ce qui a déjà été dit de bonne manière ailleurs. Voici quelques liens que j'ai trouvés après une rapide recherche sur la toile :
- En anglais : http://www.openldap.org/pub/ksoper/OpenLDAP_TLS_howto.html
- En français (plus généraliste) : http://www.gentoo.org/doc/fr/ldap-howto.xml
Conclusion
Alors que, par défaut, GDM bloquait sans raison apparente, que mes logs restaient muets, ... cette configuration m'a permis de fonctionner proprement, avec une authentification sécurisée, et toutes les fonctionnalités offertes par GDM (dont le changement d'utilisateur "à la volée" en combinaison avec xscreensaver et la configuration très appropriée de Ubuntu GNU/Linux).
Je n'ai jamais trouvé cette solution complète sur Internet et j'ai dû croiser de multiples conseils piochés un peu partout pour réussir à arriver à mes fins. C'est la raison pour laquelle je me suis lancé dans l'écriture de ce petit guide qui vous a, je l'espère, permi de réussir à utiliser GDM avec votre authentification LDAP sans vous casser les dents.
Pour toute remarque, question ou contribution supplémentaire, vous trouverez mon mail dans la partie réservée à cet effet, n'hésitez pas... Ce document est Libre et doit s'utiliser en tant que tel :c).
Annexes
L'auteur
Baptiste SIMON <baptiste.simon AT e-glop.net>
Administrateur systemes GNU/Linux, Unix, IPv6 | http://www.e-glop.net/
Disponible | Logiciel Libre (dev/sysadmin, agriculture, environnement..)
Licence de publication
Ce document issu de e-glop.net est soumis à la licence qui régit déjà l'ensemble du site (cf. en bas de cette page par exemple). Permission vous est donnée de distribuer, modifier des copies de ce document (traduction, modifications, adaptation, etc...) tant que vous respectez la licence sus-citée.