IMT Mines Alès | Maison des Élèves — Direction des Systèmes d'Information
Documentation Technique | Diffusion Restreinte
FunAccess
FunAccess Documentation Technique Réseau
Documentation technique — diffusion restreinte

Architecture
Réseau & Systèmes

Dossier d'architecture technique (DAT) de l'infrastructure réseau, systèmes et sécurité de l'application FunAccess — gestion des accès et badges au sein de la Maison des Élèves (MDE) d'IMT Mines Alès.

Référence DAT-MDE-2026-003
Version 1.0
Classification ⚠ Diffusion Restreinte
Dernière révision 18 mars 2026
🖧
Réseau MDE
DAT-MDE-2026-003 — v1.0 — DIFFUSION RESTREINTE

Documentation Technique Réseau — FunAccess

⚠ Classification : Diffusion Restreinte — Le présent document constitue le Dossier d'Architecture Technique (DAT) de l'infrastructure FunAccess. Il contient des informations sensibles relatives à l'architecture réseau, aux adressages IP, aux règles de filtrage et aux configurations de sécurité. Sa diffusion est strictement limitée aux équipes DSI, au service Hébergement MDE et aux prestataires habilités sous accord de confidentialité.

01 Synoptique général de l'architecture

L'architecture de FunAccess repose sur un modèle 3-tier segmenté avec séparation physique et logique des zones de sécurité. Le schéma ci-dessous présente la topologie logique de l'ensemble du système :

INTERNET / WAN Réseau IMT Mines Alès 🛡 FIREWALL pfSense / OPNsense SWITCH CORE L3 Trunk 802.1Q — Inter-VLAN DMZ Reverse Proxy WAF / Nginx VLAN SERVEURS API Back-end BDD PostgreSQL Auth CAS / SSO VLAN IoT / BADGE Lecteurs NFC UTL / Contrôleurs VLAN UTILISATEURS Postes Agents MDE Wi-Fi Résidents VLAN MANAGEMENT Supervision SNMP / Syslog LÉGENDE : WAN Firewall DMZ Serveurs IoT/Badges Users Management
02 Zones de sécurité réseau

L'infrastructure FunAccess est découpée en six zones de sécurité avec des niveaux de confiance distincts, conformément aux recommandations de l'ANSSI (guide de segmentation réseau) :

🌐 Zone WAN
Réseau extérieur non maîtrisé. Interface avec le réseau campus IMT Mines Alès et Internet.
Niveau de confiance : AUCUN
🛡 Zone DMZ
Zone tampon hébergeant le reverse proxy et le WAF. Point d'entrée unique pour les flux web entrants.
Niveau de confiance : FAIBLE
🖥 Zone Serveurs
Héberge l'API back-end, la base de données PostgreSQL et le serveur d'authentification CAS/SSO.
Niveau de confiance : ÉLEVÉ
📡 Zone IoT / Badges
Réseau isolé dédié aux lecteurs de badges NFC, contrôleurs UTL et équipements de contrôle d'accès physique.
Niveau de confiance : CONTRÔLÉ
💻 Zone Utilisateurs
Postes des agents du service Hébergement MDE et réseau Wi-Fi résidents (accès restreint à l'UI web).
Niveau de confiance : MOYEN
🔧 Zone Management
Administration réseau, supervision SNMP/Syslog, accès SSH aux équipements. Isolée de la production.
Niveau de confiance : MAXIMAL
03 Plan d'adressage IP & VLANs

L'adressage IP repose sur le bloc privé 10.30.0.0/16 attribué à la MDE, subdivisé en VLANs dédiés avec segmentation 802.1Q :

VLAN ID Nom Sous-réseau Passerelle Masque Zone DHCP
10 VLAN_DMZ 10.30.10.0/28 10.30.10.1 /28 (14 hôtes) DMZ Statique
20 VLAN_SRV 10.30.20.0/26 10.30.20.1 /26 (62 hôtes) Serveurs Statique
30 VLAN_IOT 10.30.30.0/24 10.30.30.1 /24 (254 hôtes) IoT/Badges DHCP + réservation
40 VLAN_USERS 10.30.40.0/24 10.30.40.1 /24 (254 hôtes) Utilisateurs DHCP
50 VLAN_WIFI 10.30.50.0/23 10.30.50.1 /23 (510 hôtes) Wi-Fi Résidents DHCP + portail captif
99 VLAN_MGMT 10.30.99.0/28 10.30.99.1 /28 (14 hôtes) Management Statique
switch-core-mde # show running-config (extrait)
! ── Configuration VLANs Switch Core L3 ── vlan 10 name VLAN_DMZ vlan 20 name VLAN_SRV vlan 30 name VLAN_IOT_BADGES vlan 40 name VLAN_USERS_MDE vlan 50 name VLAN_WIFI_RESIDENTS vlan 99 name VLAN_MANAGEMENT ! interface Vlan20 description Gateway VLAN Serveurs FunAccess ip address 10.30.20.1 255.255.255.192 no shutdown ! interface Vlan30 description Gateway VLAN IoT Lecteurs NFC ip address 10.30.30.1 255.255.255.0 ip access-group ACL_IOT_IN in no shutdown
04 Matrice de flux réseau

La matrice ci-dessous définit l'ensemble des flux autorisés entre les zones de sécurité. Tout flux non explicitement autorisé est implicitement refusé (deny all par défaut) :

Source Destination Protocole Port(s) Description Action
WAN DMZ TCP 443 HTTPS → Reverse Proxy (accès web FunAccess) ALLOW
DMZ SRV TCP 8443 Reverse Proxy → API Back-end (HTTPS interne) ALLOW
SRV SRV TCP 5432 API Back-end → PostgreSQL (loopback réseau) ALLOW
SRV IoT TCP 4070 API → Contrôleurs UTL (commandes d'accès) ALLOW
IoT SRV TCP 8443 Contrôleurs UTL → API (remontée événements badge) ALLOW
Users DMZ TCP 443 Postes agents → Interface web FunAccess ALLOW
Mgmt Toutes TCP 22, 161, 514 SSH, SNMP, Syslog (supervision & administration) ALLOW
IoT WAN * * Isolation stricte — aucun accès Internet pour l'IoT DENY
Tout Tout * * Règle implicite — Deny All DENY
05 Politique de filtrage firewall

Le pare-feu périmétrique (pfSense/OPNsense) applique une politique de filtrage stateful avec inspection des paquets. La philosophie de filtrage est deny all, permit by exception :

  • Filtrage L3/L4 stateful : inspection des états de connexion TCP (SYN, ESTABLISHED, RELATED)
  • Deep Packet Inspection (DPI) : inspection applicative sur les flux HTTP/HTTPS via le WAF Nginx/ModSecurity en DMZ
  • Anti-spoofing : vérification BCP38/uRPF sur toutes les interfaces — rejet des paquets avec IP source illégitime
  • Rate limiting : limitation du nombre de connexions simultanées par source (protection anti-DDoS L4)
  • GeoIP filtering : restriction géographique optionnelle (France/UE uniquement si activée)
  • Journalisation : log de toutes les règles deny, log sélectif des allow critiques, export Syslog vers VLAN_MGMT
firewall-mde # /etc/pf.conf (extrait simplifié)
# ── FunAccess Firewall Rules (simplifié) ── # Macro définitions ext_if = "em0" # Interface WAN dmz_if = "em1" # Interface DMZ srv_if = "em2" # Interface Serveurs iot_if = "em3" # Interface IoT Badges srv_api = "10.30.20.10" # API Back-end srv_db = "10.30.20.20" # PostgreSQL dmz_rp = "10.30.10.10" # Reverse Proxy # Default deny block log all # Anti-spoofing antispoof quick for { $ext_if $dmz_if $srv_if $iot_if } # WAN → DMZ : HTTPS uniquement pass in on $ext_if proto tcp to $dmz_rp port 443 # DMZ → SRV : Reverse Proxy → API pass in on $dmz_if proto tcp from $dmz_rp to $srv_api port 8443 # IoT → SRV : Événements badges pass in on $iot_if proto tcp to $srv_api port 8443 # IoT isolation : DENY Internet block log quick on $iot_if to !10.30.0.0/16
06 Contrôleurs d'accès physiques & lecteurs NFC

Le réseau de contrôle d'accès physique est constitué de lecteurs NFC déployés aux points d'entrée de la MDE, reliés à des contrôleurs UTL (Unités de Traitement Local) :

Équipement Modèle Emplacement IP (VLAN 30) Protocole
UTL-01 Contrôleur 2 portes Local technique Bâtiment A — RDC 10.30.30.10 TCP/4070 (OSDP)
UTL-02 Contrôleur 2 portes Local technique Bâtiment B — RDC 10.30.30.11 TCP/4070 (OSDP)
UTL-03 Contrôleur 4 portes Local technique bâtiment principal — SS1 10.30.30.12 TCP/4070 (OSDP)
NFC-01 à NFC-08 Lecteur MIFARE DESFire EV3 Points d'entrée (halls, parkings, locaux communs) Via UTL (Wiegand/OSDP) OSDP v2 (chiffré)
🔐 Protocole OSDP v2 Les lecteurs communiquent avec les contrôleurs via le protocole OSDP v2 (Open Supervised Device Protocol) avec chiffrement AES-128, remplaçant le protocole Wiegand non chiffré. L'OSDP v2 assure l'intégrité et la confidentialité des échanges lecteur–contrôleur.
07 Infrastructure serveur

L'ensemble des composants serveur de FunAccess est virtualisé sur l'infrastructure de virtualisation de la DSI (Proxmox VE / VMware) :

VM Rôle OS vCPU RAM Stockage IP
fa-proxy-01 Reverse Proxy + WAF Debian 12 2 2 Go 20 Go SSD 10.30.10.10
fa-api-01 API Back-end (Node.js / Python) Debian 12 4 4 Go 40 Go SSD 10.30.20.10
fa-db-01 Base de données PostgreSQL 16 Debian 12 4 8 Go 100 Go SSD 10.30.20.20
fa-auth-01 CAS Server / SSO (Apereo CAS) Debian 12 2 2 Go 20 Go SSD 10.30.20.30
fa-mon-01 Supervision (Prometheus + Grafana) Debian 12 2 4 Go 80 Go SSD 10.30.99.10
08 Architecture applicative

FunAccess suit une architecture 3-tier classique avec séparation des responsabilités :

COUCHE PRÉSENTATION SPA React / Vue.js Nginx (static assets) TLS 1.3 termination fa-proxy-01 10.30.10.10 HTTPS :8443 COUCHE MÉTIER REST API (Express/FastAPI) Auth middleware (JWT) Badge controller svc Purge scheduler SQL :5432 COUCHE DONNÉES PostgreSQL 16 Chiffrement AES-256 (TDE) Backup pgBackRest fa-db-01 10.30.20.20
09 Modèle de données (schéma simplifié)

Le schéma relationnel de la base PostgreSQL de FunAccess est structuré autour des entités suivantes :

Table Description Clés / Relations Données sensibles
users Résidents, agents, visiteurs temporaires PK: user_id (UUID v4) Nom, prénom, email
badges Badges physiques (numéro série, statut) PK: badge_id / FK: user_id N° série
access_zones Zones d'accès (bâtiments, étages, locaux) PK: zone_id
access_rights Droits d'accès (user × zone × plage horaire) FK: user_id, zone_id
access_logs Journaux de passage (horodatage, résultat) FK: badge_id, zone_id Horodatage passage
audit_trail Actions d'administration (CRUD sur l'app) FK: user_id (agent) IP, action
✓ Sécurisation de la base Accès restreint à fa-api-01 uniquement (filtrage IP + authentification scram-sha-256). Chiffrement au repos via TDE (Transparent Data Encryption). Sauvegardes chiffrées AES-256 via pgBackRest.
10 Supervision, monitoring & alerting

La supervision de l'infrastructure FunAccess repose sur une stack Prometheus / Grafana / Loki centralisée dans le VLAN Management :

ComposantRôleMétriques collectées
Prometheus Collecte et stockage des métriques (TSDB) CPU, RAM, disque, réseau, latence API, requêtes/s
Grafana Dashboards de visualisation et alerting Tableaux de bord temps réel, alertes Slack/email
Loki + Promtail Agrégation centralisée des logs applicatifs Logs Nginx, API, PostgreSQL, firewall, UTL
Node Exporter Agent système sur chaque VM Métriques OS (cpu, mem, disk, net)
SNMP Exporter Collecte SNMP des équipements réseau Interfaces, trafic, erreurs, état des ports
⚠ Alertes critiques configurées Serveur API down > 30s · Base de données unreachable · Espace disque < 10% · Certificat TLS expire < 14j · Échecs d'authentification > 10/min · Contrôleur UTL offline > 2 min · Taux d'erreur API > 5%
11 Sauvegarde, restauration & PRA
ÉlémentFréquenceRétentionMéthodeChiffrement
Base PostgreSQL Quotidienne (incrémentale) + Hebdo (full) 30 jours pgBackRest (PITR) AES-256-CBC
Configurations serveurs À chaque modification (Git) Illimitée (historique Git) Ansible + GitLab GPG
Snapshots VM Hebdomadaire 4 semaines Proxmox Backup Server AES-256-GCM
Configs réseau (switchs, FW) À chaque modification Illimitée RANCID / Oxidized + Git GPG

Objectifs de reprise :

  • RPO (Recovery Point Objective) : < 1 heure (grâce au WAL archiving continu PostgreSQL)
  • RTO (Recovery Time Objective) : < 4 heures (restauration VM + base + reconfiguration réseau)
  • Tests de restauration : trimestriels avec rapport documenté (dernière restauration testée : T4 2025)
12 Durcissement & hardening système

Conformément au Guide de durcissement Linux de l'ANSSI et aux benchmarks CIS (Center for Internet Security), les mesures suivantes sont appliquées sur l'ensemble des VM :

  • SSH hardening : clés ED25519 uniquement, désactivation root login, port non standard, fail2ban (5 tentatives / 10 min)
  • Mises à jour automatiques : unattended-upgrades pour les patchs de sécurité Debian, reboot planifié si nécessaire (fenêtre 03h–05h)
  • Firewall local : nftables sur chaque VM, règles restrictives limitées aux ports de service
  • Désactivation services inutiles : suppression de tout démon non requis (avahi, cups, bluetooth…)
  • Audit système : auditd activé avec règles de surveillance (exécutions, modifications /etc, élévations de privilèges)
  • Partitionnement sécurisé : /tmp et /var montés avec noexec,nosuid,nodev
  • TLS durci : TLS 1.3 uniquement en exposition, suites cipher modernes (AEAD), HSTS activé, OCSP stapling
  • Content Security Policy : headers HTTP sécurisés (CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy)
13 Procédures d'exploitation

Les procédures opérationnelles suivantes sont documentées et maintenues à jour :

Réf.ProcédureDéclencheurResponsable
PROC-01Provisionnement d'un nouveau badge résidentArrivée résidentService Hébergement
PROC-02Révocation et dépersonnalisation d'un badgeDépart résidentService Hébergement
PROC-03Attribution d'un accès temporaire (visiteur)Demande ponctuelleService Hébergement
PROC-04Restauration de la base de donnéesIncident / corruptionDSI
PROC-05Remplacement / ajout d'un lecteur NFCPanne / extensionDSI + prestataire
PROC-06Mise à jour applicative (déploiement)Nouvelle versionDSI
PROC-07Rotation des certificats TLSExpiration < 30jDSI
PROC-08Réponse à incident de sécuritéAlerte monitoring / SIEMDSI + DPO
PROC-09Revue trimestrielle des habilitationsCalendaireService Hébergement + DSI
PROC-10Test de restauration PRACalendaire (trimestriel)DSI
VersionDateAuteurNature des modifications
1.0 18/03/2026 DSI / Service Hébergement MDE Rédaction initiale du DAT FunAccess

Direction des Systèmes d'Information

Responsable Infrastructure & Sécurité

DSI — IMT Mines Alès

Date et signature

Service Hébergement MDE

Responsable Exploitation

Maison des Élèves — IMT Mines Alès

Date et signature