Table des matières

Authentifier un serveur CentOS 5 sur la base LDAP de SME

Configurer l'authentification via le menu setup

La première chose à faire est de taper (en tant que root) la commande “setup”, qui ouvre le menu de configuration basique de CentOS (comme après le premier démarrage). Là, il faut activer LDAP comme source d'information pour les utilisateur, ainsi que pour l'authentification. Il est conseillé de cocher également la case “Une autorisation locale est suffisante”.

Sélection du menu de configuration de l'authentification

Activation de l'annuaire LDAP comme source

La page suivante permet de configurer notre annuaire LDAP. Attention, la case TLS doit être cochée, sans quoi le serveur SME refusera l'authentification.

Les paramètres à entrer sont:

Configuration basique de la source LDAP

Affiner la configuration de nss_ldap

Le menu précédent a créé une configuration de base presque fonctionnelle, mais pas tout à fait. Notamment parce que nss_ldap utilise un accès anonymes pour se connecter sur le serveur LDAP de notre SME. Et les ACL sur SME par défaut interdisent l'accès aux attributs posix pour les connexions anonymes (pour des raisons de confidentialité). Nous allons donc devoir créé un utilisateur sur le serveur SME qui sera dédié à l'authentification. Par exemple, on crée un utilisateur nommé “auth”.

Retour sur notre serveur CentOS, il faut éditer le fichier /etc/ldap.conf

vim /etc/ldap.conf

Dans ce fichier, on peut modifier pleins de paramètres selon notre convenance, mais les seuls necéssaires à ajouter sont les suivants:

binddn uid=auth,ou=Users,dc=lapiole,dc=org
bindpw verysecret

En remplaçant bien sûre verysecret par le mot de passe de l'utilisateur “auth” sur SME

Placer le certificat du serveur SME dans /etc/openldap/cacerts

Il faut copier le certificat de notre SME (ou la CA qui l'a signé si on utilise un certificat officiel ou une PKI privée) dans le répertoire /etc/openldap/cacerts sur notre serveur CentOS, pour qu'il puisse établir une connexion TLS vers l'annuaire LDAP de SME.

Configurer PAM pour créer automatiquement les répertoires personnels

Il faut également configurer PAM pour créer automatiquement les répertoires personnels lors de la première connexion des utilisateurs. Pour cela, il faut éditer le fichier /etc/pam.d/system-auth

vim /etc/pam.d/system-auth

Puis ajouter la ligne suivante dans la section session, juste après la ligne pam_limits.so

session     optional      pam_mkhomedir.so skel=/etc/skel umask=0077

Pour avoir au final quelque chose comme ça:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     optional      pam_mkhomedir.so skel=/etc/skel umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so

Vérifier que tout fonctionne

Il ne reste plus qu'à vérifier que tout fonctionne (même pas besoin de redémarrer la machine):

getent passwd

Cette commande devrait lister tout les utilisateurs, locaux, et LDAP (SME). De même

getent group

devrait faire la même chose pour les groupes.