- Traefik externalTrafficPolicy: Local → IP client réelle (fin du SNAT kube-proxy)
- middleware ratelimit par IP (100/min, burst 200) sur les 6 routes publiques
- middleware security-headers (HSTS, nosniff, X-Frame SAMEORIGIN, Referrer-Policy)
- TLSOption globale : plancher TLS 1.2 + ciphers modernes
- Guacamole REMOTE_IP_VALVE → ban anti-bruteforce par IP (fin du piège n°5)
- nftables : fermeture des ports Internet legacy 9080/9081 (HTTP clair redondant)
- allowCrossNamespace pour mutualiser les middlewares depuis infra
- docs : section Durcissement (public-domain.md) + CAA OVH + pièges à jour
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
- admin/k8s/auth-portal-admin.md : exploitation au quotidien — cycle de
vie utilisateur (créer/groupe guacamole/assigner/révoquer), gestion des
machines et des apps du hub, durcissement (MFA), table de débogage
- docs/portail-guide-utilisateur.md : guide grand public à envoyer aux
utilisateurs (connexion, console, presse-papiers, règles, dépannage)
- renvois croisés depuis auth-portal.md et CLAUDE.md
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
EXTENSION_PRIORITY "openid, *" : plus de formulaire local, l'arrivée sur
portail.lab.local redirige directement vers Authentik. L'admin passe par
un compte SSO avec « Administer system » (guacadmin devient inaccessible ;
retour arrière = remettre "*, openid").
Doc : pièges slug d'application (≠ guacamole → JWKS 404) et anti-bruteforce
(IP Traefik bloquée pour tous après 5 échecs) découverts pendant la mise
en route.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>