Aller au contenu

Post-mortems

Chaque incident resolu est documente selon le format : Contexte → Symptome → Investigation → Root Cause → Fix → Lecon.

Pourquoi documenter les incidents ?

Les post-mortems sont la meilleure preuve de competence technique. Ils montrent la capacite a diagnostiquer, resoudre et surtout apprendre de chaque probleme.

WiFi 802.1X — Access-Reject

Date 31/03/2026
Composant FreeRADIUS + Authentik LDAP
Symptome radtest retourne Access-Reject, erreur LDAP bind 49
Investigation Le bind LDAP utilisait le compte auto-genere ak-outpost-* dont le mot de passe est regenere a chaque restart du container Authentik LDAP Outpost
Root cause Authentik regenere le mot de passe du service account ak-outpost-* a chaque recreation du container
Fix Creation d'un service account dedie ldapservice avec mot de passe manuel fixe
Lecon Ne jamais utiliser les comptes auto-generes ak-outpost-* pour des binds LDAP externes. Toujours creer un service account dedie.

Vaultwarden — Variables SSO ignorees

Date 02/04/2026
Composant Vaultwarden
Symptome Le SSO ne s'active pas malgre les variables d'environnement
Investigation Les logs affichent "config.json is overriding environment variables"
Root cause Le fichier /data/config.json (cree par le panel admin) a priorite sur les variables d'environnement Docker
Fix Modifier directement le config.json : sso_only: true
Lecon Vaultwarden : config.json ecrase les env vars. Toujours verifier les logs au demarrage.

Vaultwarden — Coffre ne deverrouille pas

Date 02/04/2026
Composant Vaultwarden SSO
Symptome Apres login SSO, le coffre demande le mot de passe principal mais ne deverrouille pas
Investigation Logs : "Access token is close to expiration but we have no refresh token"
Root cause Le scope offline_access n'etait pas demande — Authentik ne fournissait pas de refresh token
Fix Ajouter offline_access dans sso_scopes
Lecon Le scope offline_access est obligatoire pour tout service qui a besoin de sessions longues via OIDC.

Nextcloud Quotas OIDC — Non appliques

Date 02/04/2026
Composant Authentik → Nextcloud
Symptome Le quota n'apparait pas dans le token OIDC malgre le scope mapping
Investigation Le scope mapping retournait une string "5 GB" au lieu d'un dictionnaire
Root cause Les scope mappings Authentik doivent retourner un dictionnaire {"cle": "valeur"} pour que le claim soit inclus dans le token
Fix return {"quota": "20 GB"} au lieu de return "20 GB"
Lecon Regle universelle Authentik : scope mapping = toujours retourner un dictionnaire.

CrowdSec — Ban IP legitime post-reboot

Date 31/03/2026
Composant CrowdSec
Symptome IP WAN personnelle bannie apres reboot des VMs
Investigation Le burst de requetes HTTP lors du redemarrage simultane des services a declenche http-probing (seuil 10 non-200 en 10s)
Root cause Seuil trop bas pour un usage avec redirections SSO Authentik (401/403 pendant le flow)
Fix Whitelist reseaux internes (Tailscale + VLANs) + seuil releve a 30
Lecon Anticiper les bursts de restart. Whitelist Tailscale = acces de secours si IP WAN bannie.

SMTP — STARTTLS refuse

Date 22/03/2026
Composant Postfix relay
Symptome Les clients refusent la connexion SMTP
Root cause Certificat auto-signe au lieu de Let's Encrypt
Fix certbot --dns-cloudflare pour obtenir un certificat valide
Lecon STARTTLS avec certificat invalide = rejete par tous les clients modernes.

nftables — Regles en double

Date 21/03/2026
Composant nftables sur fw-gw
Symptome Regles dupliquees apres rechargement
Root cause nft -f ajoute les regles sans vider les existantes
Fix Toujours commencer le fichier par flush ruleset
Lecon nftables : flush ruleset obligatoire en debut de fichier de config.