10c. Bouclier BunkerWeb WAF
L'activation de BunkerWeb (via le script enable-bunkerweb.sh) transforme l'infrastructure locale
en une plateforme sécurisée exposable sur Internet. BunkerWeb agit comme un Web Application Firewall (WAF) de type Reverse Proxy, placé en frontal devant Open WebUI et l'Admin Manager.
Protection Périmétrique et ModSecurity
La stack ECHO implémente une stratégie SPA (Single Page Application) de limitation de débit (rate limiting) granulaire :
- 1000 requêtes/s pour les assets statiques.
- 50 requêtes/s pour la navigation et les appels front-end.
- 20 requêtes/s pour l'API backend.
Le moteur ModSecurity intégré est spécifiquement paramétré pour exclure Open WebUI des vérifications strictes de mauvais comportement (notamment le contournement des erreurs 400 CORS légitimes des SPA), évitant ainsi les faux positifs bloquants lors de l'utilisation normale de l'interface.
La configuration persistante de BunkerWeb est stockée de manière sécurisée dans /opt/ECHO/bunkerweb/.
Kill-Switch Service Worker (PWA)
Le WAF intègre un mécanisme de "poisoning" non-destructif pour purger le cache agressif du Service Worker de la PWA Open WebUI.
Lorsqu'une mise à jour de l'interface ou une modification de sécurité nécessite un rafraîchissement des clients, BunkerWeb intercepte les requêtes vers /_app/version.json et les surcharge avec un cache-busting dynamique.
Cette méthode force le rechargement des assets SvelteKit sans utiliser l'en-tête destructif Clear-Site-Data. Cela garantit la préservation absolue du cookie JWT de session, évitant ainsi l'erreur 401 sur les flux audio en cours de lecture.
Routage Edge WebGPU
Le WAF est spécifiquement configuré pour router le trafic d'inférence distante vers le Worker d'Embedding. La directive Nginx location = /ws/edge-embed garantit que ce flux WebSocket (wss://) bénéficie d'un accès direct et prioritaire. En court-circuitant le backend Open WebUI standard, le WAF supprime le goulet d'étranglement HTTP classique et maintient la connexion persistante requise pour la communication asynchrone bidirectionnelle avec le payload WASM du client, tout en bloquant nativement les tentatives d'inondation (flood).
⚠️ Exposition réseau et sécurité
Sans BunkerWeb, ECHO n'écoute que sur le réseau Docker interne ou l'interface réseau locale. N'exposez jamais les ports 3000 (Open WebUI) ou 8080 (Admin Manager) directement sur le WAN sans activer ce pare-feu applicatif au préalable. L'activation de BunkerWeb lance également automatiquement le module ECHO Auth (SSO IdP).