Plateforme Low-Code CLS — Option A : Hebergement LAN + Reverse Proxy DMZ

Document : Matrice de flux — Exposition Internet via reverse proxy
Auteur : Christophe Kersuzan — Digital Manager — DSI CLS
Date : Avril 2026  |  Version : 1.0  |  Classification : Interne
Destinataires : Equipe Securite SI / RSSI

⚠ Ce document presente l'Option A (LAN). L'Option B (Azure) est presentee dans un document separe et constitue l'option recommandee.

1. Principe

Cette option consiste a exposer les services de la plateforme low-code, heberges sur le LAN CLS, via un reverse proxy en DMZ. Seuls les endpoints webhooks et les interfaces utilisateur sont exposes. L'interface d'administration reste accessible VPN uniquement.

Cette option necessite :

2. Architecture

2.1 Architecture globale

graph LR subgraph Internet["🌐 Internet"] ZC["Zoho Creator"] SWA["Azure Static Web Apps"] MOB["Navigateurs mobile"] end subgraph DMZ["🛡️ DMZ (nouvelle zone)"] RP["Reverse Proxy
Traefik / Nginx
+ WAF ModSecurity
+ Rate Limiting
+ TLS Termination"] end subgraph LAN["🏢 LAN CLS"] subgraph SRV["Serveur aiops-qo-1"] N8N["n8n
Workflows"] TB["Typebot
Chatbots"] OF["OpnForms
Formulaires"] NC["NocoDB
Tableur"] end SUP[("Supabase
PostgreSQL")] JIRA["Jira Server"] end subgraph SaaS["☁️ Services externes"] SMTP["SMTP O365"] AI["Azure AI Foundry"] COSMOS["Cosmos DB"] end ZC -->|"HTTPS 443"| RP SWA -->|"HTTPS 443"| RP MOB -->|"HTTPS 443"| RP RP -->|"/webhook/*"| N8N RP -->|"/typebot/*"| TB RP -->|"/forms/*"| OF RP -->|"/nocodb/*"| NC N8N --> SUP N8N --> JIRA NC --> SUP N8N --> SMTP N8N --> AI SWA --> COSMOS style Internet fill:#f0fdf4,stroke:#22c55e style DMZ fill:#fef3c7,stroke:#f59e0b,stroke-width:3px style LAN fill:#fef2f2,stroke:#ef4444,stroke-width:2px style SaaS fill:#eff6ff,stroke:#2563eb style RP fill:#fbbf24,stroke:#92400e,stroke-width:2px,color:#000

2.2 Zones de securite et flux inter-zones

graph TB subgraph Z1["ZONE 1 — Internet (non fiable)"] SRC1["Sources :
Zoho Creator
Azure SWA
Navigateurs"] end subgraph Z2["ZONE 2 — DMZ (semi-fiable)"] FW1[["🔥 Firewall 1
Internet → DMZ
Port 443 uniquement"]] RP2["Reverse Proxy
+ WAF + TLS"] FW2[["🔥 Firewall 2
DMZ → LAN
Ports specifiques"]] end subgraph Z3["ZONE 3 — LAN CLS (fiable)"] SERVICES["n8n / Typebot / OpnForms / NocoDB
Supabase / Jira"] end SRC1 -->|"TCP 443
HTTPS"| FW1 FW1 -->|"Autorise"| RP2 RP2 -->|"Proxy pass
/webhook/* /typebot/*
/forms/* /nocodb/*"| FW2 FW2 -->|"TCP 5678 (n8n)
TCP 3001 (Typebot)
TCP 8025 (OpnForms)
TCP 8080 (NocoDB)"| SERVICES style Z1 fill:#f0fdf4,stroke:#22c55e style Z2 fill:#fef3c7,stroke:#f59e0b,stroke-width:3px style Z3 fill:#fef2f2,stroke:#ef4444,stroke-width:2px style FW1 fill:#ef4444,stroke:#991b1b,color:#fff style FW2 fill:#ef4444,stroke:#991b1b,color:#fff

3. Matrice de flux — Firewall 1 (Internet → DMZ)

IDSourceDestinationProtoPortDirectionDescriptionRisque
FW1-01 0.0.0.0/0 (Internet)
ou whitelist Azure + Zoho
IP reverse proxy DMZ HTTPS 443 ENTRANT Unique port ouvert depuis Internet. Tout le trafic passe par le reverse proxy. Moyen

4. Matrice de flux — Firewall 2 (DMZ → LAN)

Attention : Ces flux traversent la frontiere DMZ → LAN. Chaque regle ouvre un chemin depuis la DMZ (potentiellement compromise) vers le reseau interne.
IDSourceDestinationProtoPortDescriptionRisque
FW2-01 Reverse proxy (DMZ) aiops-qo-1 (n8n) HTTP 5678 Proxy pass vers n8n (webhooks + dashboards) Moyen
FW2-02 Reverse proxy (DMZ) aiops-qo-1 (Typebot) HTTP 3001 Proxy pass vers Typebot (chatbots) Moyen
FW2-03 Reverse proxy (DMZ) aiops-qo-1 (OpnForms) HTTP 8025 Proxy pass vers OpnForms (formulaires) Moyen
FW2-04 Reverse proxy (DMZ) aiops-qo-1 (NocoDB) HTTP 8080 Proxy pass vers NocoDB (tableur) Moyen

5. Matrice de flux — LAN → Externe (sortants, existants)

IDSourceDestinationProtoPortDescriptionStatut
OUT-01n8n (LAN)smtp.office365.comSMTP/TLS587Envoi emails clsworkflow@Existant
OUT-02n8n (LAN)Azure AI FoundryHTTPS443Appels LLMExistant
OUT-03n8n (LAN)desk.zoho.euHTTPS443API Zoho DeskExistant
OUT-04n8n (LAN)RSS publicsHTTPS443Veille automatiseeExistant
OUT-05n8n (LAN)Azure Cosmos DBHTTPS443Polling notifications webappsExistant

6. Matrice de flux — LAN interne

IDSourceDestinationProtoPortDescriptionStatut
INT-01n8nSupabase (supabase-kong)HTTP8000API REST PostgRESTExistant
INT-02n8nJira ServerHTTPS443Synchro Jira / ZohoExistant
INT-03NocoDBSupabase PostgreSQLPostgreSQL5432Interface tableur sur la base existanteNouveau

7. Flux complet — Diagramme de sequence

7.1 Webhook entrant (ex: PauseCafe → n8n)

sequenceDiagram participant U as Hotesse (Internet) participant FW1 as Firewall 1 participant RP as Reverse Proxy DMZ participant WAF as WAF ModSecurity participant FW2 as Firewall 2 participant N8N as n8n (LAN) participant SMTP as SMTP O365 U->>FW1: HTTPS 443 FW1->>RP: TCP 443 autorise RP->>WAF: Inspection HTTP WAF->>WAF: Regles OWASP (SQL injection, XSS, SSRF) alt Requete bloquee WAF-->>U: 403 Forbidden else Requete autorisee WAF->>RP: OK RP->>FW2: Proxy pass /webhook/pausecafe-notify FW2->>N8N: TCP 5678 N8N->>SMTP: Envoi email N8N-->>RP: 200 OK RP-->>U: 200 OK (HTTPS) end

7.2 Acces dashboard mobile (ex: VMS Indonesie)

sequenceDiagram participant U as Utilisateur mobile participant FW1 as Firewall 1 participant RP as Reverse Proxy DMZ participant WAF as WAF participant FW2 as Firewall 2 participant N8N as n8n (LAN) participant PG as Supabase (LAN) U->>FW1: HTTPS 443 /webhook/vms-dashboard FW1->>RP: Autorise RP->>WAF: Inspection WAF->>RP: OK RP->>FW2: Proxy pass FW2->>N8N: TCP 5678 N8N->>PG: SELECT * FROM vms_v_dashboard PG-->>N8N: Donnees N8N->>N8N: Build HTML dashboard N8N-->>RP: HTML (1 Mo) RP-->>U: HTTPS response Note over FW1,FW2: 4 traversees de frontiere pour une seule page

8. Composants a deployer

ComposantDetailResponsableEffort
VM ou conteneur reverse proxyTraefik ou Nginx en DMZ. OS a durcir (CIS benchmark). Certificat TLS.Equipe infra / securite1-2 jours
WAF ModSecurityRegles OWASP CRS. Configuration whitelist/blacklist par chemin.Equipe securite1 jour
Regles firewall DMZFW1 : Internet → DMZ (443). FW2 : DMZ → LAN (5678, 3001, 8025, 8080).Equipe reseauValidation + deploiement
DNS externen8n-labs.groupcls.com → IP publique reverse proxyEquipe infra1h
MonitoringSurveillance reverse proxy + alertes sur tentatives d'intrusionEquipe securiteRecurrent
PatchingMise a jour OS, Traefik/Nginx, WAF rules, n8n, conteneursEquipe infraRecurrent (mensuel)

9. Analyse des risques

RisqueProbabiliteImpactMitigation
Compromission du reverse proxy Faible Eleve Acces au LAN via FW2. Mitigation : WAF, patching, monitoring, segmentation stricte.
Mouvement lateral depuis la DMZ Faible Eleve Si le proxy est compromis, les regles FW2 permettent d'atteindre n8n, Typebot, NocoDB sur le LAN. Mitigation : micro-segmentation, IDS.
Exploitation d'une vulnerabilite n8n/Typebot/NocoDB Moyen Moyen Service open source expose. Mitigation : mise a jour rapide, WAF, conteneurisation.
DDoS sur le reverse proxy Moyen Moyen Rate limiting (100 req/min/IP). Pas de protection DDoS enterprise sans solution dediee.
Indisponibilite du reverse proxy Moyen Moyen Point unique de defaillance. Haute dispo = 2x VM + load balancer (cout supplementaire).

10. Couts

ComposantDetailCout initialCout recurrent/mois
VM reverse proxy (DMZ)VM Linux dediee ou conteneur sur infra existante0-500 EUR0 EUR (infra existante) ou ~15 EUR (Azure VM)
WAFModSecurity (gratuit) ou Azure WAF0 EUR0-25 EUR
Certificat TLSLet's Encrypt ou certificat CLS0 EUR0 EUR
n8n + Typebot + OpnForms + NocoDBConteneurs sur aiops-qo-1 (existant)0 EUR0 EUR
PostgreSQL / SupabaseExistant0 EUR0 EUR
Total infrastructure0-500 EUR0-40 EUR/mois
Couts non chiffres (mais reels) :

11. Comparaison avec l'Option B (Azure)

graph LR subgraph OPA["Option A — LAN + Reverse Proxy"] A1["4 regles firewall"] A2["1 VM DMZ a maintenir"] A3["WAF a configurer"] A4["2-3 jours equipe infra"] A5["Risque mouvement lateral"] A6["0-40 EUR/mois"] end subgraph OPB["Option B — Azure (recommandee)"] B1["0 regles firewall"] B2["0 VM a maintenir"] B3["Protection Azure native"] B4["1 jour deploiement"] B5["Zero acces au LAN"] B6["~31 EUR/mois"] end style OPA fill:#fef2f2,stroke:#ef4444,stroke-width:2px style OPB fill:#f0fdf4,stroke:#22c55e,stroke-width:2px
CritereOption A — LANOption B — Azure
Flux entrant LANOUI — 4 ports DMZ→LANAUCUN
Regles firewallFW1 (1 regle) + FW2 (4 regles) = 5 regles0 regles
Composants a deployerVM DMZ + reverse proxy + WAF + monitoringAzure Container Apps (PaaS gere)
Surface d'attaque LANAugmentee (DMZ → LAN)Inchangee
Mouvement lateralPossible si reverse proxy compromisImpossible (pas de lien reseau)
MaintenanceEquipe infra + securite (recurrent)Image Docker a jour (1 commande)
Haute disponibiliteA configurer (2 VM + LB)Native Azure (SLA 99.95%)
SauvegardeA configurer manuellementAutomatique (Azure backup 7j)
Delai mise en oeuvre2-6 semaines (validation secu)1 journee
Cout mensuel0-40 EUR + couts humains~31 EUR (tout compris)
Dependance homelabPartielle (VMS Indo a migrer)Supprimee
Acces Jira interneDirect (meme LAN)Necessite VPN site-to-site ou reste sur n8n interne
Conformite ISO 27001Audit surface d'attaque elargieAzure certifie ISO 27001, SOC 2
Avantage unique de l'Option A : l'acces direct a Jira Server et Supabase interne (pas besoin de VPN site-to-site). Tous les autres criteres favorisent l'Option B.

Recommandation : Si l'acces Jira est indispensable, garder le workflow de synchro Jira/Zoho sur l'instance n8n interne existante (deja en place) et deployer le reste sur Azure (Option B). C'est l'approche hybride recommandee.
CLS — Collecte Localisation Satellites — Document interne — Avril 2026