Files
netui/specification_technique.md

3.7 KiB
Raw Permalink Blame History

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, larchitecture 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 dadresses (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 dautomatisation dangereuse

3. Architecture générale

3.1 Vue densemble

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 dadresses (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 lheure

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 dadresses (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