Intégration des comptes LDAP au système¶
- Contenu
- Intégration des comptes LDAP au système
- libnss-ldapd et libpam-ldapd
- Création automatique des home
- Restriction d'accès par hôte: pam_authz_search
- Sudoers dans des groupes LDAP
- Exemples d'utilisateurs et de groupes
- provisionnement de passwd, shadow et group depuis le LDAP: installation des nouveaux paquets libpam-ldapd et libnss-ldapd. Les comptes du LDAP viennent s'ajouter aux comptes locaux, avec une plage d'uid/gid à réserver (Note: j'ai pris 2000-2999). Les hachages de shadow ne sont pas exposés. Leur vérification de fait par un bind ldap.
- restriction d'accès par hôte: pour chaque machine, un groupe (loginrigel, loginkim, etc) contient les users autorisés à se connecter. Un groupe loginall permet de se connecter à toutes les machines.
- sudoers: pour chaque machine, un groupe (sudorigel, sudokim, etc) contient les users autorisés à utiliser sudo. Un groupe sudoall permet d'utiliser sudo sur toutes les machines.
Les mécanismes d'authentification classiques sont préservés: en cas de défaillance du LDAP, il reste toujours possible de se logger avec un compte local.
Ces notes concernent debian wheezy et ont été prises dans le cas d'une installation sur un système hébergeant une copie locale du ldap (=> ldap://127.0.0.1/). Si ce n'est pas le cas, il faut ajouter authentification et chiffrement (avec starttls) entre la machine et le serveur ldap.
libnss-ldapd et libpam-ldapd¶
Ces paquets remplacent les anciens libnss-ldap et libpam-ldap, et sont plus faciles à configurer (pas - ou presque - de configuration manuelle des fichiers de pam.d).
apt-get install libnss-ldapd libpam-ldapd nscdDebconf:
- ldap://127.0.0.1
- base de recherche ou=unix,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR
- gérer passwd, group et shadow
Note sur les ACL LDAP: les installations par défaut d'openldap restreignent l'accès à l'attribut shadowLastChange. Le système voit alors tous les comptes comme expirés.
=> autoriser la lecture de shadowLastChange
Tests: les commandes suivantes doivent retourner les données du ldap et des bases d'authentification locales.
getent passwd getent shadow getent group
FIXME: getent shadow ne retourne pas les données du ldap, mais c'est peut être normal.
Création automatique des home¶
Modifier manuellement /etc/pam.d/common-session pour ajouter la ligne suivante.
session required pam_mkhomedir.so skel=/etc/skel umask=0022
Les home des users seront maintenant créés automatiquement au premier login.
Note: lors des mises à jour, accepter l'installation des versions standard des fichiers de pam.d, et ajouter cette ligne à la main.
Restriction d'accès par hôte: pam_authz_search¶
Ajouter la ligne suivante dans /etc/nslcd.conf.
pam_authz_search (&(objectClass=posixGroup)(memberUid=$username)(|(cn=login$hostname)(cn=sudo$hostname)(cn=loginall)(cn=sudoall)))
service nslcd restart
Pour pouvoir se logger, il faut appartenir au groupe login[HOSTNAME], au groupe loginall, au groupe sudo[HOSTNAME] ou au groupe sudoall.
Sudoers dans des groupes LDAP¶
Utiliser visudo pour ajouter des groupes ldap aux sudoers:
# Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL %sudorigel ALL=(ALL:ALL) ALL %sudoall ALL=(ALL:ALL) ALL
Ici, sudorigel et sudoall sont des groupes définis sur le LDAP. Une fois l'intégration nss/pam/ldap effectuée, ça ne fait aucune différence pour sudo.
Exemples d'utilisateurs et de groupes¶
ldif:
version: 1 dn: cn=papoudret,ou=users,ou=unix,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top objectClass: posixAccount objectClass: ldapPublicKey cn: papoudret gidNumber: 2000 homeDirectory: /home/papoudret sn: Poudret uid: papoudret uidNumber: 2000 displayName: Pierre-Arnaud Poudret gecos: papoudret givenName: Pierre-Arnaud loginShell: /bin/bash mail: papoudret@illyse.org sshPublicKey:: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBQkl3QUFBUUVBMEt5bWxqSUFqc Eh6Vk5mU2tOTlZNSEc5OStKenRNeDBTZm0vUlBKTm1pUys5ZXJDdnpYK216Uk96THdUMzFZRzZP MTEwOVhhazBVTGdVbEZnSWlld2czOXJuamxIa0Z3eFB6eVJBMk03TXlxOTNRcW9FUXRud3VxaEt oN2RPbEFrWmtiTDg5M2RhSFF4aTJodDkxNVpLeTFvUmgyM2ltRDcrS1RKZnFUM2IzQXlhOFVQc2 9HRXU0ckpkbEVmUjBHZnVxWDNBei9pNDdRM0NyYnlrUkVYY3dOR25VZ3BPdU01L3NuME9taGYzT G0xZ3c1OHBYSnNWVWg1QUc3UjBBU1ljd0JVWTBqLzY2b0RSZ3hBbXRkSWR0OFBlL2JFWGp6dHdH bm4xWFZTWHdwSDY5NlBWWHRGRHExSmFlcEZHanBGMTJrclZJcTBjVXVFM3ZOVWFPQStRPT0gc2F tbG93cnlAdmFsaXM= userPassword:: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
Mis à jour par Pierre-Arnaud Poudret il y a plus de 11 ans · 1 révisions