LDAP
LDAP (en anglais Lightweight Directory Access Protocol) : protocole normalisé (RFC 4511) d'accès à un annuaire, c'est-à-dire une base organisée en arbre où chaque entrée (une personne, un groupe, une machine) est désignée par un nom distinctif, son DN (uid=camille,ou=personnes,dc=lyneko,dc=fr), et décrite par des attributs (uid, uidNumber, memberOf, sshPublicKey...). Il écoute sur le port TCP 389, et sur 636 pour LDAPS (LDAP dans TLS).
Pour une machine Linux, un annuaire LDAP centralise ce que /etc/passwd, /etc/group et les clés SSH dispersent : un départ se traite une fois dans l'annuaire, et non machine par machine. Serveurs courants : OpenLDAP, 389 Directory Server, FreeIPA (qui y ajoute Kerberos et une autorité de certification), Active Directory. Côté machine, SSSD interroge l'annuaire, met les réponses en cache et les présente à NSS (qui existe ?) et à PAM (qui prouve son identité ?) ; getent -s sss passwd camille montre qu'un compte vient de l'annuaire.
Deux règles de sécurité, que reprend le guide BP-028 de l'ANSSI : le canal doit être chiffré et le serveur authentifié (ldaps:// ou StartTLS, ldap_tls_reqcert = demand dans SSSD), car un faux annuaire pourrait répondre avec un compte d'UID 0 ; et les machines s'y connectent (opération bind) avec un compte de service dédié en lecture seule, jamais avec un compte d'administration de l'annuaire.
Dans les cours
- Linux : administration système, leçon 13 : Authentification : PAM, NSS et annuaires
- Linux : premiers pas, leçon 8 : Utilisateurs, groupes et sudo