Configurer le client backend LDAP de SSSD pour exiger un certificat valide du serveur
Configure le backend LDAP de SSSD avec ldap_tls_reqcert = demand (ou hard), de sorte qu'il refuse de se connecter à moins que le serveur LDAP ne présente un certificat TLS valide et vérifié.
Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.
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
SSSD authentifie les utilisateurs auprès d'un annuaire LDAP. Si la validation du certificat est désactivée ou réglée sur allow/never, SSSD fera confiance à n'importe quel serveur se présentant comme l'annuaire, permettant à un attaquant en position d'homme du milieu d'usurper le serveur LDAP, de récolter des identifiants et de forger des décisions d'authentification. Exiger demand/hard force SSSD à rejeter les connexions dont le certificat est absent, non approuvé ou invalide, préservant l'intégrité et la confidentialité du canal d'authentification.
Ce que vérifie Pavois
Pavois recherche dans l'arborescence de configuration SSSD sous /etc/sssd/ (y compris les drop-ins conf.d/) un ldap_tls_reqcert réglé sur demand ou hard. SSSD ne fournit pas de vidage d'exécution simple pour cette valeur ; la directive sur disque, à travers tous les fragments inclus, est donc la source faisant autorité pour la politique que le démon charge au démarrage.
only_if { command('test -f /etc/sssd/sssd.conf').exit_status.zero? }
describe command('grep -qriE \'^[[:space:]]*ldap_tls_reqcert[[:space:]]*=[[:space:]]*(demand|hard)\' /etc/sssd/ 2>/dev/null && echo ok || echo ko') do
its('stdout.strip') { should eq 'ok' }
endComment vérifier qu’elle est appliquée
Exécutez grep -riE 'ldap_tls_reqcert\s*=\s*(demand|hard)' /etc/sssd/. La sortie attendue est une ligne correspondante telle que ldap_tls_reqcert = demand. Après tout changement, redémarrez avec systemctl restart sssd et confirmez que l'authentification fonctionne toujours.
Inspecter et investiguer
SSSD journalise le résultat de sa négociation LDAP/TLS via journalctl -u sssd et, avec le débogage augmenté, dans /var/log/sssd/sssd_*.log. Un certificat rejeté y apparaît comme un échec de vérification TLS ; les événements d'authentification apparaissent aussi dans /var/log/secure (RHEL) ou /var/log/auth.log (Debian/Ubuntu).
Remédiation
Aucun plan de durcissement automatisé n'est défini ; cela doit donc être appliqué manuellement : dans la section [domain/...] de /etc/sssd/sssd.conf, définissez ldap_tls_reqcert = demand et assurez-vous que ldap_tls_cacert (ou ldap_tls_cacertdir) pointe vers l'AC signant le certificat du serveur LDAP, puis systemctl restart sssd.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | # If SSSD with LDAP is configured, require certificate validation in /etc/sssd/sssd.conf: # ldap_tls_reqcert = demand # then: systemctl restart sssd |
|---|---|
| reason | only applies if SSSD/LDAP is in use, set tls_reqcert in sssd.conf deliberately |
| resource | manual |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Si le certificat du serveur LDAP est auto-signé, expiré ou signé par une AC absente du magasin de confiance système / ldap_tls_cacert, le passage à demand/hard bloquera toute authentification LDAP, pouvant verrouiller tous les utilisateurs de l'annuaire. Avant d'appliquer, vérifiez que la chaîne du certificat serveur est valide (par ex. openssl s_client -connect ldap.example.com:636) et que l'AC est configurée. Conservez un compte administrateur local, et redémarrez SSSD durant une fenêtre de maintenance avec une connexion de secours testée.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R67 | direct | 2.0 | haute |
| NIST | CM-6(a), SC-12(3) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
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.