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é.
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 :
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) :
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 |
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 |
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
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é) |
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 |
FunAccess suit une architecture 3-tier classique avec séparation des responsabilités :
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 |
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.
La supervision de l'infrastructure FunAccess repose sur une stack Prometheus / Grafana / Loki centralisée dans le VLAN Management :
| Composant | Rôle | Mé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 |
| Élément | Fréquence | Rétention | Méthode | Chiffrement |
|---|---|---|---|---|
| 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)
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)
Les procédures opérationnelles suivantes sont documentées et maintenues à jour :
| Réf. | Procédure | Déclencheur | Responsable |
|---|---|---|---|
PROC-01 | Provisionnement d'un nouveau badge résident | Arrivée résident | Service Hébergement |
PROC-02 | Révocation et dépersonnalisation d'un badge | Départ résident | Service Hébergement |
PROC-03 | Attribution d'un accès temporaire (visiteur) | Demande ponctuelle | Service Hébergement |
PROC-04 | Restauration de la base de données | Incident / corruption | DSI |
PROC-05 | Remplacement / ajout d'un lecteur NFC | Panne / extension | DSI + prestataire |
PROC-06 | Mise à jour applicative (déploiement) | Nouvelle version | DSI |
PROC-07 | Rotation des certificats TLS | Expiration < 30j | DSI |
PROC-08 | Réponse à incident de sécurité | Alerte monitoring / SIEM | DSI + DPO |
PROC-09 | Revue trimestrielle des habilitations | Calendaire | Service Hébergement + DSI |
PROC-10 | Test de restauration PRA | Calendaire (trimestriel) | DSI |
| Version | Date | Auteur | Nature 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
Service Hébergement MDE
Responsable Exploitation
Maison des Élèves — IMT Mines Alès