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. |