Commit graph

5 commits

Author SHA1 Message Date
fe0aa89ffa
feat(security): durcissement edge funklab.online (vraie IP client + rate-limit + TLS/headers) (#95)
- 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>
2026-07-07 22:58:24 +02:00
c51fa2dfb4
feat(auth): hub sur le domaine HTTPS — routes publiques + SSO Guacamole (#89)
(Commits restés orphelins après le squash-merge de #88, poussés trop tard.)
- IngressRoutes websecure+TLS : auth./portail.funklab.online
- Guacamole : endpoints OIDC basculés sur https://auth./portail.funklab.online
  (les ports 9080/9081 restent un chemin réseau valide)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 16:31:44 +02:00
5a4190faaa
feat(auth): Authentik en hub utilisateur public — SSO de bout en bout (#82)
L'entrée unique devient la page « My applications » d'Authentik
(kaya.freeboxos.fr:9081) : login → tuiles des apps autorisées → SSO
vers Guacamole (:9080). Plus de comptes locaux Guacamole.

- Services LoadBalancer dédiés (MetalLB .201 Authentik / .202 Guacamole) :
  le DNAT par port ne peut pas router par Host derrière Traefik :80
- gateway : DNAT 9081→.201:9000 et 9080→.202:8080 + rate-limit par VIP
- Guacamole : endpoints OIDC sur l'URL publique canonique (LAN inclus,
  hairpin Freebox) + retour au SSO direct (openid prioritaire)
- doc : section « Accès externe » réécrite (hub, chaîne, config provider)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:25:56 +02:00
5ecaadd100
fix(authentik): startupProbe — les migrations du 1er boot dépassent la liveness (#77)
Le premier démarrage exécute les migrations de schéma (plusieurs minutes) ;
la livenessProbe (60 s) tuait le pod en boucle avant qu'il ne soit prêt.
La startupProbe accorde jusqu'à 10 min avant d'armer liveness/readiness.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 21:33:01 +02:00
87b786eb57
feat(auth): annuaire Authentik + portail consoles Guacamole (#76)
- k8s/apps/authentik : IdP OIDC (auth.lab.local), namespace auth —
  server + worker 2026.5.3, Redis in-cluster, PG sur storage-01, PVC media
- k8s/apps/guacamole : portail consoles SSH web s01/g01 (portail.lab.local) —
  guacd + webapp 1.6.0, SSO OIDC vers Authentik, Job initdb idempotent
- ansible : rôle console_user (user sans sudo pour les consoles, s01 + g01),
  bases PG authentik/guacamole, secrets vault (mdp PG + clé SSH console)
- doc : admin/k8s/auth-portal.md (déploiement, config initiale, pièges)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 21:24:46 +02:00