CORRECTION DE COMPTE D ABORD. J avais annonce cinq groupes sans sonde. La mesure en donne VINGT-SEPT : j avais compte ceux que j avais en tete, pas ceux que le depot contient. Il en reste vingt-deux. LES CINQ, PAR ORDRE DE DEGAT SILENCIEUX. autorite (step_ca) — la plus urgente : nos certificats vivent 24 h, une AC muette ne casse rien aujourd hui et casse TOUT demain, d un coup, sur les 21 machines. Elle surveille aussi l expiration de la RACINE, que personne ne regarde parce qu elle vit des annees (relevee a 3642 jours). base (postgresql) — une VRAIE requete, pas pg_isready : celui-ci dit que le port repond, pas que la base sert. Plus le compte des connexions : a saturation, chaque application tombe sans que la base ait l air morte. annuaire (openldap) — elle COMPTE les entrees. Un annuaire vide repond success a tout : le mensonge des sauvegardes vides, vert et sans contenu. zones (powerdns) — un autoritatif sans zone repond NXDOMAIN a tout, ce qui se lit comme « ce nom n existe pas ». edge (nginx) — elle valide la configuration SUR DISQUE : nginx sert la derniere valide, et une configuration cassee ne se voit qu au prochain demarrage, souvent des mois plus tard. Les cinq eprouvees vertes sur le sain puis rouges PAR PARAMETRE, sans toucher a un service. Etat : 20 sondes sur 19 roles, 23 services distincts, 70 instances, 67 au vert. Les trois autres sont connues : deux sauvegardes sans donnee a emporter, et Loki en delai de stabilisation apres redeploiement. make prouver : CONFORME, 64 OK, 0 echec, 0 saute. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
68 lines
3.5 KiB
YAML
68 lines
3.5 KiB
YAML
---
|
|
serveur_openldap_paquets:
|
|
- slapd
|
|
- ldap-utils
|
|
- python3-ldap # requis par community.general.ldap_entry sur la cible
|
|
|
|
serveur_openldap_service: "slapd"
|
|
|
|
# Identite de l'annuaire.
|
|
serveur_openldap_domaine: "{{ domaine_interne }}"
|
|
serveur_openldap_organisation: "{{ organisation | default('Organisation') }}"
|
|
# Base DN derivee du domaine interne (ex. acme.local -> dc=acme,dc=local).
|
|
serveur_openldap_base_dn: "dc={{ serveur_openldap_domaine.split('.') | join(',dc=') }}"
|
|
serveur_openldap_admin_dn: "cn=admin,{{ serveur_openldap_base_dn }}"
|
|
|
|
# Secret OBLIGATOIRE (Ansible Vault).
|
|
serveur_openldap_admin_password: "{{ vault_openldap_admin | default('') }}" # rempli depuis la voute (vault_openldap_admin)
|
|
|
|
# Unites organisationnelles de base.
|
|
serveur_openldap_ou:
|
|
- people
|
|
- groups
|
|
|
|
# --- TLS (LDAPS + STARTTLS) via le certificat d'hote step_ca ---
|
|
# Requiert l'integration client_pki sur le noeud (fournit le cert + le renouvellement).
|
|
serveur_openldap_tls_actif: true
|
|
# Certificat SOURCE depose par client_pki (root:root 600, illisible par openldap).
|
|
serveur_openldap_tls_source_cert: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.crt"
|
|
serveur_openldap_tls_source_cle: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.key"
|
|
serveur_openldap_tls_source_ca: "/etc/step/certs/root_ca.crt"
|
|
# Emplacement PONT, lisible par openldap ; resynchronise a chaque renouvellement.
|
|
serveur_openldap_tls_dir: "/etc/ldap/tls"
|
|
# Services slapd exposes (ldaps ajoute pour le TLS ; ldapi pour l'admin local).
|
|
serveur_openldap_services: "ldap:/// ldaps:/// ldapi:///"
|
|
|
|
# --- Politique de mot de passe (overlay ppolicy) ------------------------------
|
|
# Sans cet overlay, `pwdReset` n'existe pas dans le schema : le changement force a
|
|
# la premiere ouverture est impossible, et rien ne contraint la qualite ni ne
|
|
# verrouille apres des echecs repetes. Mesure le 2026-08-07 : seul `back_mdb`
|
|
# etait charge. Voir docs/autorisation.md §3.
|
|
#
|
|
# Depuis OpenLDAP 2.5, le schema ppolicy est INTEGRE au module : aucun fichier
|
|
# `.ldif` a charger, contrairement a 2.4.
|
|
serveur_openldap_ppolicy_actif: true
|
|
|
|
# `pwdMustChange` est ce qui donne son effet a `pwdReset` : sans lui, marquer une
|
|
# entree n'oblige a rien. Les deux vont ensemble.
|
|
# Les REGLES elles-memes ne sont plus declarees ici : elles vivent dans
|
|
# `resoudre_politique_mdp`, qui les traduit AUSSI pour Keycloak. Tant qu'elles
|
|
# n'existaient que de ce cote, Keycloak n'en validait aucune et le chemin que
|
|
# prend un vrai utilisateur ne verifiait rien (mesure du 2026-08-08).
|
|
# Laisser vide ; ne surcharger que pour ajouter un attribut pwd* hors politique.
|
|
serveur_openldap_ppolicy_extra: {}
|
|
|
|
# Reglages de l'OVERLAY lui-meme (pas de la politique). `HashCleartext` hache un
|
|
# mot de passe recu en clair au lieu de le stocker tel quel : filet de securite si
|
|
# un client oublie de hacher.
|
|
# `UseLockout` laisse volontairement a FALSE : dire « ce compte est verrouille »
|
|
# renseigne un attaquant sur l'existence du compte. L'utilisateur legitime voit
|
|
# « identifiants invalides » et attend la duree de verrouillage.
|
|
serveur_openldap_ppolicy_hash_cleartext: true
|
|
serveur_openldap_ppolicy_use_lockout: false
|
|
|
|
# --- Sonde de supervision -----------------------------------------------------------
|
|
serveur_openldap_sonde_base: "{{ serveur_openldap_base_dn | default('dc=chezlepro,dc=internal') }}"
|
|
# UN MINIMUM, PAS UNE EGALITE : l'annuaire grandit. Ce chiffre dit « il reste peuple »,
|
|
# pas « il contient exactement ceci ». Trop haut, il crierait a chaque menage.
|
|
serveur_openldap_sonde_minimum: 5
|