feat(wireguard): accès distant au lab via VPN (Freebox 51820/udp → s01) (#80)

- 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>
This commit is contained in:
ALI YESILKAYA 2026-07-07 11:11:43 +02:00 committed by GitHub
parent fbec998c21
commit bc0e1dd53e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 388 additions and 123 deletions

View file

@ -22,6 +22,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
- ✅ Ghostfolio opérationnel — `ghostfolio.lab.local`, namespace `ai`, suivi de portefeuille (PostgreSQL s01 + Redis in-cluster)
- ✅ hermes-auto-improve — analyse quotidienne de `admin/` par Hermes à 22h (n8n → trigger :9095), PR sur `hermes/daily-work`
- 🆕 Annuaire + portail consoles (2026-07-06) — **Authentik** (`auth.lab.local`, IdP OIDC) + **Guacamole** (`portail.lab.local`, consoles SSH web vers s01/g01 via user `console` sans sudo), namespace `auth`. Config initiale (admin Authentik, provider OIDC, connexions) : voir `admin/k8s/auth-portal.md`
- 🆕 WireGuard (2026-07-06) — accès distant au lab via `kaya.freeboxos.fr:51820/udp` (Freebox → s01), pairs `full` (admin) / `portal` (invités = portail Guacamole seul, filtrage nftables). Voir `admin/infra/wireguard.md`
- ⏳ WOL compute nodes non configuré (BIOS) — allumage manuel requis
Journal de progression : `PROGRESS.md``progress/YYYY-MM-DD.md`
@ -91,7 +92,7 @@ Les tags correspondent aux noms de rôles. Tous les rôles sont idempotents.
### Rôles — storage-01
`hermes_user`, `common`, `gateway` (nftables + NAT), `dnsmasq`, `nfs_server`, `qdrant`, `postgresql`, `minio` (⚠️ rôle vide, service non déployé), `litellm`, `hermes_agent`, `rag`, `node_exporter`, `alertmanager_webhook`, `postfix_relay`, `hermes_auto_improve` (worker doc Hermes + trigger server :9095), `hermes_exec` (exécuteur d'actions vocales `hermes -z --yolo` derrière jeton, :9096), `console_user` (user `console` sans sudo pour le portail Guacamole)
`hermes_user`, `common`, `gateway` (nftables + NAT), `dnsmasq`, `nfs_server`, `qdrant`, `postgresql`, `minio` (⚠️ rôle vide, service non déployé), `litellm`, `hermes_agent`, `rag`, `node_exporter`, `alertmanager_webhook`, `postfix_relay`, `hermes_auto_improve` (worker doc Hermes + trigger server :9095), `hermes_exec` (exécuteur d'actions vocales `hermes -z --yolo` derrière jeton, :9096), `console_user` (user `console` sans sudo pour le portail Guacamole), `wireguard` (accès distant `51820/udp`, pairs full/portal — voir `admin/infra/wireguard.md`)
### Rôles — gpu-01
@ -123,6 +124,8 @@ Variables chiffrées dans `ansible/group_vars/all/vault.yml` :
- `vault_hermes_exec_token` — jeton d'auth de `hermes-exec` (actions vocales via Hermes ; même valeur dans le secret k8s `stt-server-secrets/hermes-exec-token`)
- `vault_pg_authentik_password`, `vault_pg_guacamole_password` — bases PG du portail (mêmes valeurs dans les secrets k8s `auth/authentik-secret` et `auth/guacamole-secret`)
- `vault_console_ssh_private_key` — clé privée SSH des connexions Guacamole (user `console` sur s01/g01)
- `vault_authentik_secret_key`, `vault_authentik_redis_password` — copies de sûreté des valeurs du secret k8s `auth/authentik-secret`
- `vault_wireguard_server_private_key`, `vault_wireguard_peer_private_keys` — clés WireGuard (serveur + dict par pair)
---