mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 05:34:43 +02:00
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>
This commit is contained in:
parent
bc0e1dd53e
commit
cf09e404ef
5 changed files with 42 additions and 16 deletions
|
|
@ -85,20 +85,37 @@ kubectl -n auth create secret generic guacamole-secret \
|
|||
3. Settings → Users : les comptes Authentik apparaissent après leur **premier login**
|
||||
(`POSTGRESQL_AUTO_CREATE_ACCOUNTS=true`) → leur assigner les connexions (READ).
|
||||
|
||||
## Accès externe (Internet) — `kaya.freeboxos.fr:9080`
|
||||
|
||||
Le portail est joignable depuis Internet **sans VPN** (choix assumé 2026-07-07,
|
||||
simplicité d'abord — le VPN WireGuard reste dispo, cf. `admin/infra/wireguard.md`) :
|
||||
|
||||
- **Chaîne** : `kaya.freeboxos.fr:9080` → redirection Freebox `9080/tcp → funk-s01`
|
||||
→ DNAT nftables `→ 192.168.10.200:80` (Traefik) → IngressRoute (host
|
||||
`kaya.freeboxos.fr` accepté) → Guacamole
|
||||
- **Auth externe = comptes locaux Guacamole** (Settings → Users → New user + mot de
|
||||
passe fort + cocher ses connexions). **Authentik n'est PAS exposé** : le SSO ne
|
||||
fonctionne que du LAN (le lien « OpenID » échoue depuis Internet — normal).
|
||||
- **Garde-fous** : rate-limit nftables (30 connexions neuves/min) + anti-bruteforce
|
||||
Guacamole (5 échecs → ~5 min) + mots de passe forts obligatoires. ⚠️ HTTP **non
|
||||
chiffré** : mots de passe des comptes locaux interceptables en théorie — ne pas
|
||||
réutiliser un mot de passe important, et envisager TLS (vrai domaine + Let's
|
||||
Encrypt) ou l'option TOTP de Guacamole si l'usage s'installe.
|
||||
|
||||
## Pièges / notes
|
||||
|
||||
1. **Tout est en HTTP** (pas de TLS sur `*.lab.local`) — OK pour un LAN privé, mais ne
|
||||
**jamais** exposer le portail sur Internet en l'état.
|
||||
1. **Tout est en HTTP** (pas de TLS) — accepté y compris pour l'accès Internet
|
||||
(cf. section ci-dessus), avec garde-fous réseau + mots de passe dédiés.
|
||||
2. **JWKS via le Service interne** (`authentik.auth.svc.cluster.local:9000`) : l'appel
|
||||
serveur→serveur de Guacamole ne dépend pas de la résolution `lab.local` des pods.
|
||||
L'issuer, lui, reste `http://auth.lab.local/...` (doit matcher le claim `iss` des
|
||||
tokens émis via le navigateur).
|
||||
3. **`EXTENSION_PRIORITY="openid, *"`** : arrivée sur le portail = **redirection
|
||||
immédiate vers Authentik** (pas de formulaire local). Conséquence : `guacadmin` est
|
||||
inaccessible — l'admin Guacamole passe par un compte SSO auquel on a coché
|
||||
**« Administer system »** (fait pour `Alkatrazz`). Prérequis absolu avant d'activer :
|
||||
avoir donné ce droit, sinon plus d'admin. Dépannage si Authentik est HS : remettre
|
||||
`"*, openid"` dans `k8s/apps/guacamole/deployment.yaml` (le formulaire local revient).
|
||||
3. **`EXTENSION_PRIORITY="*, openid"`** : formulaire local affiché en premier (requis
|
||||
pour les comptes locaux de l'accès Internet), lien « OpenID » en dessous pour le SSO
|
||||
LAN. La variante `"openid, *"` (redirection SSO immédiate, testée puis abandonnée
|
||||
le 2026-07-07) est incompatible avec l'accès externe sans exposer Authentik.
|
||||
NB : le compte SSO `Alkatrazz` a « Administer system » — admin possible par les
|
||||
deux chemins.
|
||||
4. **Le slug de l'application Authentik doit être exactement `guacamole`** : Authentik
|
||||
le génère depuis le nom (« Portail consoles » → `portail-consoles`) et l'issuer/JWKS
|
||||
deviennent faux → log Guacamole `Non 200 status code (404) ... /o/guacamole/jwks/`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue