# Spécification technique – WebUI Passerelle Réseau (V1) ## 1. Objet du document Ce document décrit **la spécification technique détaillée** de la WebUI de passerelle réseau basée sur **Debian 13 (Trixie)**. Il sert de référence pour le développement, l’architecture logicielle et les choix techniques. --- ## 2. Contexte et périmètre ### 2.1 Rôle de la VM - Passerelle réseau LAN → Internet - Serveur DHCP principal du réseau local - Serveur DNS local - Pare-feu et traduction d’adresses (NAT) - Point central de supervision réseau ### 2.2 Contraintes - Debian 13 Trixie uniquement - Dépôts officiels Debian uniquement - Aucun conteneur - WebUI accessible uniquement depuis le réseau local - Architecture modulaire - Pas d’automatisation dangereuse --- ## 3. Architecture générale ### 3.1 Vue d’ensemble Navigateur → HTTPS → Nginx → API Backend → Scripts système → Services Debian ### 3.2 Composants - Frontend : HTML / CSS / JavaScript (léger) - Serveur Web : Nginx - Backend : Python (API REST) - Services système : systemd - Journalisation : journald --- ## 4. Machine virtuelle (Proxmox) ### 4.1 Ressources - CPU : 2 à 4 cœurs (type host) - RAM : 4 Go (ballooning désactivé) - Disque : 32 Go (VirtIO SCSI) - Réseau : - 1 interface WAN - 1 interface LAN ### 4.2 Règles importantes - Pare-feu Proxmox désactivé - Pare-feu unique géré dans la VM --- ## 5. Gestion réseau Debian ### 5.1 Outils retenus - systemd-networkd : configuration des interfaces - nftables : pare-feu et NAT - conntrack : suivi des connexions ### 5.2 Fonctions réseau - Routage IPv4 - Traduction d’adresses (NAT) - Séparation WAN / LAN --- ## 6. Services réseau (V1) ### 6.1 DHCP - Service : kea-dhcp4-server - Fonctions : - plages dynamiques - réservations fixes - options DHCP (routeur, DNS, serveur de temps) ### 6.2 DNS - Service : unbound - Fonctions : - cache DNS - serveurs amont configurables - entrées statiques nom → adresse ### 6.3 Pare-feu - Service : nftables - Fonctions : - protection de la VM - autorisation LAN → Internet - blocage administration depuis Internet ### 6.4 Services annexes - chrony : synchronisation de l’heure --- ## 7. Backend API ### 7.1 Principes - Backend non exécuté en root - Utilisateur système dédié - Appels système via sudo (phase V1 permissive) ### 7.2 Responsabilités - Lecture / écriture de la configuration centrale - Génération des fichiers de configuration système - Validation avant application - Application contrôlée des changements --- ## 8. Configuration centrale ### 8.1 Source de vérité - Fichier unique : /etc/netui/config.yaml ### 8.2 Contenu - paramètres réseau WAN / LAN - configuration DHCP - configuration DNS - état des services --- ## 9. WebUI ### 9.1 Organisation - Onglets - Formulaires simples - Textes explicatifs sous chaque champ - Info-bulles détaillées ### 9.2 Pages V1 - Tableau de bord - Réseau - Pare-feu / Partage de connexion - Attribution d’adresses (DHCP) - Noms (DNS) - Services - Journaux - Activité réseau --- ## 10. Import des adresses existantes ### 10.1 Objectif - Conserver les adresses IP existantes lors du remplacement DHCP ### 10.2 Sources supportées - OPNsense CSV - OPNsense XML - Fichier JSON ### 10.3 Format interne - Normalisation vers un format JSON canonique --- ## 11. Sécurité - Accès WebUI limité au LAN - Authentification locale - Validation stricte des données - Aucune application automatique --- ## 12. Évolutions prévues (hors V1) - VPN WireGuard - QoS / limitation de débit - Découverte réseau (mDNS) - Historique et rollback avancé --- Fin de la spécification technique