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
cf09e404ef
feat(portal): accès Internet direct au portail (kaya.freeboxos.fr:9080) ( #81 )
...
* feat(wireguard): accès distant au lab via VPN (Freebox 51820/udp → s01)
- rôle wireguard : serveur wg0 (10.99.0.0/24) sur storage-01, profils
clients générés dans /etc/wireguard/clients/ (fichier .conf / QR code)
- gateway : filtrage nftables par pair — full (tout le lab) / portal
(uniquement Traefik :80 = portail Guacamole), masquerade VPN→cluster
- dnsmasq : bind-dynamic + écoute wg0 → *.lab.local résolu dans le tunnel
- pairs initiaux : alkatrazz (full), invite-01 (portal)
- vault : clés WireGuard + reprise de l'archive Authentik (remplace #78 )
- doc : admin/infra/wireguard.md (onboarding pair, pièges, exploitation)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat(portal): accès Internet direct — kaya.freeboxos.fr:9080
Choix simplicité (2026-07-07) : exposition directe du portail plutôt que
le VPN (WireGuard reste déployé mais dormant, sans redirection Freebox).
- gateway : DNAT 9080/tcp → Traefik (192.168.10.200:80) + rate-limit
30 connexions neuves/min sur le trafic Internet (LAN non concerné)
- IngressRoute guacamole : host kaya.freeboxos.fr accepté
- Guacamole : formulaire local en premier ("*, openid") — l'accès externe
passe par des comptes locaux, Authentik n'est pas exposé (SSO = LAN)
- doc : section « Accès externe » dans admin/k8s/auth-portal.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:13:45 +02:00
fbec998c21
feat(guacamole): SSO direct — redirection immédiate vers Authentik ( #79 )
...
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>
2026-07-06 22:48:37 +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