🔬 Prototype GSB Frais et DMZ
📋 Contexte
Dans la continuité des travaux d'hébergement interne déjà menés, le laboratoire GSB souhaitait renforcer son architecture réseau et moderniser son application de gestion des frais. L'objectif était double : mettre en place une DMZ sécurisée avec un accès Wi-Fi contrôlé et conforme à la CNIL, et développer un prototype moderne de l'application GSB-Frais accessible depuis ordinateur, tablette et smartphone.
Le projet a été conduit en approche AGILE avec des stand-up meetings hebdomadaires, un suivi via Kanboard et une communication via Discord et Google Drive.
🎯 Périmètre du projet
🖥️ Mission SISR — Infrastructure réseau
- Schéma réseau : DMZ, LAN, Wi-Fi visiteurs, pare-feu
- Configuration routeur Cisco21 : VLANs, routing inter-VLAN
- Configuration switch HP21 : ports access/trunk, isolation
- Préparation du serveur : Python 3, pip, déploiement Django
- Wi-Fi sécurisé : SSID, WPA2/WPA3, séparation réseau
- Pare-feu pfSense : règles de filtrage LAN ↔ DMZ ↔ Internet
- Portail captif et journalisation (conformité CNIL)
- Hébergement de l'application dans la DMZ
💻 Mission SLAM — Application web
- Choix du framework Django (Python)
- Mise en place GitHub, Kanboard, Discord
- Modèles Django + ORM (Visiteur, FicheFrais, FraisForfait…)
- Authentification sécurisée (PBKDF2-SHA256)
- Vues : connexion, saisie des frais, consultation historique
- Interface responsive (Bootstrap)
- Migration MySQL → SQLite, nettoyage des dépendances
- Déploiement sur serveur SISR via SSH
- Rédaction du guide technique pour futurs développeurs
👤 Ma contribution personnelle
J'ai assuré le pilotage de l'équipe SLAM (30 % de contribution sur le projet global) et pris en charge les développements les plus critiques :
- Pilotage SLAM et choix technologiques Proposition et argumentation du choix de Django comme framework, mise en place de l'environnement collaboratif (GitHub, Kanboard, Discord, Google Drive), organisation de l'équipe et coordination avec les SISR tout au long du projet.
-
Développement de l'application
Création du projet Django, configuration de
settings.py, développement des modèles ORM (Visiteur, FicheFrais, FraisForfait, LigneFrais…), développement des 3 vues principales :connexion(),gerer_frais()etetat_frais(), et résolution du problème de connexion MySQL (mysqlclientmanquant). -
Sécurisation complète de l'authentification
Audit et refonte du système d'auth : abandon de la comparaison en clair au profit de
check_password(PBKDF2-SHA256), correction du champmdplimité à 20 caractères (insuffisant pour le hash ~88 caractères), développement du scriptmigration_passwords.pypour hacher automatiquement tous les mots de passe existants en base. À l'issue : 100 % des comptes conformes OWASP. -
Nettoyage de la stack et déploiement
Suppression des dépendances MySQL obsolètes, migration vers SQLite, configuration de
ALLOWED_HOSTS, déploiement sur le serveur SISR via SSH (installation Python 3, pip, transfert du code,requirements.txt), et accompagnement technique pour la configuration Apache. - Rédaction du guide technique Rédaction d'un guide complet à destination des futurs développeurs : contexte, choix techniques, architecture MVT, ORM, sécurité implémentée, procédure de déploiement (dev et production avec Gunicorn/Nginx).
🏗️ Architecture de l'application (MVT)
L'application respecte le pattern Modèle-Vue-Template de Django :
connexion() pour l'auth sécurisée, gerer_frais() pour la saisie du mois courant, etat_frais() pour la consultation de l'historique.
L'application est entièrement accessible depuis swiss-galaxyc.com et fonctionne sur ordinateur, tablette et smartphone.
🔒 Sécurité applicative
mdp était limité à 20 caractères, tronquant le hash (~88 caractères) et rendant l'authentification impossible après sécurisation.
Autres protections en place : protection CSRF sur tous les formulaires ({% csrf_token %}), contrôle de session via est_connecte(), protection contre les injections SQL via l'ORM Django.
⚖️ Partie juridique — CEJM
Le projet incluait une analyse juridique approfondie des implications liées à l'hébergement interne des intranets par le laboratoire GSB :
🛠️ Environnement technique
💻 Code Source du Projet
assadakh/gsb_frais Public
Prototype Django développé en AP6 — Application de gestion des frais GSB avec authentification sécurisée (PBKDF2), interface responsive et déploiement en DMZ.
📊 Bilan
Le prototype est entièrement fonctionnel et accessible depuis swiss-galaxyc.com. Il répond à tous les objectifs du cahier des charges : authentification sécurisée, saisie et consultation des fiches de frais, interface responsive, déploiement dans une DMZ sécurisée.
Ce projet m'a permis de monter en compétence sur la sécurité applicative (PBKDF2, OWASP, RGPD), la gestion de projet AGILE en condition réelle, et le déploiement d'une application Django en production dans une infrastructure réseau sécurisée. Ma contribution s'est élevée à 30 % du travail total de l'équipe.