# Rôle `wireguard` Serveur **WireGuard** sur storage-01 : accès distant au lab (portail Guacamole, voire tout le LAN cluster) via `kaya.freeboxos.fr:51820/udp` (redirection Freebox → funk-s01). ## Variables | Variable | Défaut | Rôle | |---|---|---| | `wireguard_port` | `51820` | Port UDP d'écoute (= redirection Freebox) | | `wireguard_subnet` / `wireguard_server_ip` | `10.99.0.0/24` / `10.99.0.1` | Réseau du tunnel | | `wireguard_endpoint` | `kaya.freeboxos.fr:51820` | Endpoint public côté clients | | `wireguard_client_allowed_ips` | `192.168.10.0/24, 10.99.0.0/24` | Split tunnel (lab uniquement) | | `wireguard_peers` | `[]` (host_vars) | Pairs : `{name, ip, public_key, access}` | `access` : `full` (tout le lab — admin) ou `portal` (uniquement Traefik :80 → portail Guacamole). Le filtrage est fait **par nftables** (rôle `gateway`), pas par WireGuard. Secrets vault : `vault_wireguard_server_private_key`, `vault_wireguard_peer_private_keys` (dict `name: clé`). ## Ajouter un pair Procédure complète (clés openssl, vault, host_vars, QR code) : **`admin/infra/wireguard.md`**. Résumé : générer une paire X25519, clé privée dans le vault, entrée dans `wireguard_peers` (host_vars storage-01), ré-appliquer `--tags wireguard,gateway`, distribuer `/etc/wireguard/clients/.conf`. ## Caveats - Les profils clients dans `/etc/wireguard/clients/` contiennent la **clé privée du client** — à transmettre par canal raisonnable, jamais commités. - Le DNS du tunnel = dnsmasq s01 (`10.99.0.1`) : nécessite `bind-dynamic` + `interface=wg0` dans le rôle `dnsmasq`, et l'ouverture 53 depuis `10.99.0.0/24` dans `gateway`. - Retirer un pair : le supprimer de `wireguard_peers` + du vault → re-apply `--tags wireguard,gateway` (la règle nftables et le [Peer] disparaissent).