Désactiver le serveur LDAP (slapd)
Garantit que le service slapd.service (serveur d'annuaire OpenLDAP) n'est ni activé au démarrage ni en cours d'exécution, sauf si l'hôte est volontairement un serveur LDAP.
Vérifié sur l’état résolu en cours d’exécution (ex. sshd -T, sysctl, systemctl show), attrape les drop-ins et Include qu’une lecture de fichier raterait. Réserve : runtime ≠ persistance ; une valeur correcte maintenant peut ne pas survivre à un redémarrage.
Pavois vérifie la configuration effective, l’état résolu et réellement appliqué, pas un fichier. Les scanners basés fichier (OVAL/SCAP, Lynis) ratent les Include, drop-ins et défauts runtime ; ce check voit ce qui est réellement en vigueur.
Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.
Pourquoi cette règle
slapd est le démon d'annuaire OpenLDAP, en écoute sur les ports 389 (LDAP) et 636 (LDAPS). Un annuaire LDAP contient généralement des comptes utilisateurs, des appartenances de groupes et des empreintes d'identifiants, ce qui en fait une cible de grande valeur. L'exposer là où aucun rôle d'annuaire n'est requis élargit la surface d'attaque et risque de divulguer les données d'identité même que recherchent les attaquants ; un slapd mal configuré peut autoriser des binds anonymes ou des lectures non authentifiées de tout l'arbre. Si l'hôte n'a pas vocation à servir un annuaire, le démon doit être arrêté et désactivé.
Ce que vérifie Pavois
Pavois lit l'état effectif de slapd.service depuis systemd, en vérifiant qu'il n'est ni enabled ni running. Cela reflète ce qui écoute réellement sur les ports 389/636, indépendamment de l'existence de fragments de configuration dans /etc/ldap/slapd.d/. Une vérification basée sur les fichiers pourrait être trompée par une configuration résiduelle d'un rôle supprimé, ou manquer un démon démarré par une surcharge drop-in.
describe service('slapd.service') do
it { should_not be_enabled }
it { should_not be_running }
endComment vérifier qu’elle est appliquée
Exécutez systemctl is-enabled slapd.service et systemctl is-active slapd.service ; attendez disabled/masked et inactive. Confirmez qu'aucun service n'écoute avec ss -tlnp | grep -E ':389|:636'.
Inspecter et investiguer
Inspectez journalctl -u slapd.service pour le démarrage/arrêt et l'activité de bind. systemctl show slapd.service -p ActiveState -p UnitFileState donne l'état lisible par machine que Pavois vérifie. Confirmez la fermeture des ports avec ss -tlnp | grep -E ':389|:636'.
Remédiation
Le plan de durcissement de Pavois agit sur la ressource service nommée slapd avec les actions disable puis stop : il supprime l'activation au démarrage et arrête le démon d'annuaire en cours. Appliqué avec pavois harden apply. Les données d'annuaire sur disque restent intactes, seul l'état du service change.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| action | disable, stop |
|---|---|
| name | slapd |
| resource | service |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Désactiver slapd fera cesser à cet hôte de servir LDAP : tout client (PAM/sssd, applications, autres serveurs) qui s'authentifie ou résout des identités auprès de cet annuaire perdra l'accès. Cette règle cible le rôle serveur, pas les clients LDAP, un hôte qui se contente de consommer un annuaire distant n'est pas affecté. Avant d'appliquer : confirmez qu'aucun client ne dépend de ce serveur (ss -tnp | grep -E ':389|:636' pour les connexions actives) et qu'il n'est pas réplica/fournisseur dans une topologie de réplication LDAP. S'il s'agit d'un serveur d'annuaire, excluez cette règle.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 2.1.7 | direct | per OS, see the benchmark table | haute |
Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.