# Architecture – Homelab Proxmox VE ## Vue d'ensemble L'infrastructure repose sur un unique hôte physique (GMKtec K12) faisant tourner Proxmox VE. Elle combine des conteneurs LXC pour les services légers et permanents, et des VMs complètes pour les environnements nécessitant une isolation forte ou un système d'exploitation complet. L'accès aux services depuis l'extérieur est assuré par deux mécanismes complémentaires : - **WireGuard VPN** pour l'administration personnelle (accès complet au homelab) - **Cloudflare Tunnel** pour les accès partagés (Guacamole, TPs), sans aucun port ouvert sur la box --- ## Topologie physique ``` Internet │ ├─── [UDP 51820] ──────────────────────────────────► WireGuard LXC │ (192.168.1.x) │ └─── [HTTPS / Cloudflare Tunnel] ─────────────────► TrueNAS Scale (192.168.1.x) │ └─ Agent Cloudflare (expose Guacamole) ┌─────────────────────────────────────────────────────────────────┐ │ Freebox (192.168.1.x/24) │ │ │ │ GMKtec K12 – Proxmox VE TrueNAS Scale │ │ (192.168.1.x) (192.168.1.x) │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## Réseaux virtuels dans Proxmox Proxmox expose deux bridges réseau principaux : | Bridge | Réseau | Rôle | |--------|--------|------| | `vmbr0` | 192.168.1.x/24 | Accès au réseau Freebox (WAN-side d'OPNsense, WireGuard, services directs) | | `vmbr1` | 10.1.1.x/24 | Réseau interne isolé (LAN-side d'OPNsense, VMs nécessitant isolation) | OPNsense est l'élément charnière : il a une interface sur `vmbr0` (côté Freebox) et une sur `vmbr1` (côté VMs isolées). Il assure le NAT et le filtrage entre les deux segments. --- ## Placement des services ``` vmbr0 – 192.168.1.x/24 (réseau Freebox) ├── OPNsense WAN interface ├── WireGuard LXC → administration personnelle └── Guacamole LXC → accès distant web (exposé via Cloudflare Tunnel) vmbr1 – 10.1.1.x/24 (réseau interne isolé) ├── OPNsense LAN interface → passerelle des VMs isolées ├── VMs de TP → ont internet via NAT OPNsense, isolées du réseau Freebox ├── VMs Windows Server / AD └── VMs CTF / Pentest ``` --- ## Logique d'isolation Trois niveaux de confiance coexistent : **Niveau 1 – Réseau Freebox (192.168.1.x)** Services directement sur le réseau de la box : WireGuard, Guacamole, TrueNAS. Ces services sont maîtrisés et ne sont pas accessibles publiquement directement (Cloudflare Tunnel pour Guacamole, VPN pour le reste). **Niveau 2 – Réseau interne OPNsense (10.1.1.x)** VMs nécessitant internet mais devant être cloisonnées du réseau Freebox. OPNsense fait le NAT sortant et bloque tout accès entrant vers ce segment depuis le réseau Freebox. **Niveau 3 – VMs éphémères sans réseau** Environnements CTF/malware potentiellement dangereux, déployés sans interface réseau ou sur un réseau host-only isolé dans Proxmox. --- ## Choix techniques **Pourquoi LXC pour WireGuard et Guacamole ?** Ces services sont bien connus, maintenus, et ne nécessitent pas d'isolation kernel complète. LXC offre une empreinte mémoire réduite et un démarrage quasi-instantané, adapté à des services permanents. **Pourquoi une VM pour OPNsense ?** OPNsense requiert son propre kernel et un accès direct aux interfaces réseau. La virtualisation complète garantit l'isolation et permet à OPNsense de gérer ses propres drivers réseau sans interférence avec l'hôte Proxmox. **Pourquoi Cloudflare Tunnel plutôt qu'un reverse proxy exposé ?** Zéro port ouvert sur la box (hormis le UDP WireGuard). Le tunnel initie une connexion sortante vers Cloudflare, ce qui élimine toute exposition directe de l'infrastructure. L'authentification Cloudflare Access (email) s'ajoute avant même d'atteindre Guacamole. **Pourquoi héberger l'agent Cloudflare sur TrueNAS et non sur Proxmox ?** Séparation des responsabilités : TrueNAS est un service permanent et stable, indépendant de l'état de Proxmox. Si Proxmox redémarre pour maintenance, le tunnel reste actif.