====== 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". {{:auth_ldap_sme_cos5_1.png|Sélection du menu de configuration de l'authentification}} {{:auth_ldap_sme_cos5_2.png|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: * l'URI ldap, à savoir ldap://sme.domain.tld/ * la base de recherche dc=domain,dc=tld {{:auth_ldap_sme_cos5_3.png|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.