Comparaison - FunWarry/Projet-ESEO-css-datacenter GitHub Wiki
Analyse Comparative : Objectifs Initiaux et Réalisation Finale du Projet ESEO Teaching Cloud
1. Rappel des Objectifs Initiaux du Projet
Le projet ESEO Teaching Cloud a été lancé avec une vision claire et des objectifs ambitieux, visant à résoudre les problématiques liées à la gestion des environnements de travaux pratiques et à la mise à disposition de services numériques pour l'enseignement. Ces objectifs étaient structurés autour des axes suivants :
1.1. Automatisation
- Objectif: Développer un site web dédié à la gestion et au provisionnement des Machines Virtuelles (VMs), permettant une interface conviviale pour les utilisateurs. Ce portail devait simplifier l'interaction avec l'infrastructure sous-jacente.
- Objectif: Mettre en place un système de Bastion sécurisé pour l'accès des étudiants, garantissant une isolation et un contrôle granulaires des connexions aux VMs de TP. Cela devait renforcer la sécurité en limitant les points d'entrée directs.
- Objectif: Établir un système de déploiement automatisé de l'ensemble de l'infrastructure initiale (serveurs, services, configurations), assurant reproductibilité, rapidité et efficacité des déploiements.
1.2. Sauvegarde
- Objectif: Implémenter une solution de sauvegarde complète de toutes les Machines Virtuelles du système. L'enjeu était d'assurer la pérennité des données, la résilience des environnements pédagogiques et la capacité de restaurer rapidement en cas d'incident.
1.3. Supervision
- Objectif: Mettre en œuvre un système de supervision exhaustif pour surveiller en temps réel l'état de toutes les machines physiques (hyperviseurs) et des VMs hébergées. Cette surveillance devait couvrir les performances, la disponibilité et l'utilisation des ressources.
- Objectif: Créer un tableau de bord de supervision adapté et intuitif spécifiquement conçu pour les professeurs. Ce tableau de bord devait offrir une visibilité claire et simplifiée sur l'état de leurs environnements de TP sans les submerger de détails techniques.
1.4. Réseau
- Objectif: Concevoir et déployer un réseau spécifique et sécurisé exclusivement dédié au Data Center, avec une segmentation claire (VLANs) et des règles de routage bien définies pour isoler les différents types de services (Web, DB, Admin, Étudiant).
1.5. Sécurité
- Objectif: Installer et configurer un pare-feu (Firewall) robuste capable de filtrer et gérer toutes les connexions entrantes et sortantes de l'infrastructure. Ce pare-feu devait être la première ligne de défense.
- Objectif: Intégrer un scanner de vulnérabilité sur les machines physiques, afin de détecter proactivement les failles de sécurité et les non-conformités des configurations.
1.6. Gestion de Projet et Documentation
- Objectif: Mener une gestion de projet complète et structurée, en suivant une méthodologie agile (incrémentale).
- Objectif: Réaliser des tests fonctionnels et de charge approfondis de la solution pour valider sa robustesse, sa performance et sa scalabilité.
- Objectif: Maintenir une documentation exhaustive et constamment mise à jour au sein d'un Wiki hébergé sur Gitea, servant de base de connaissances pour l'équipe et les futurs utilisateurs.
2. Réalisation Finale et Composants Mis en Œuvre
La concrétisation du projet ESEO Teaching Cloud a abouti à une infrastructure fonctionnelle et robuste, intégrant diverses technologies open source pour atteindre les objectifs fixés. Voici les principales réalisations et les outils implémentés pour chaque axe :
2.1. Automatisation
- Application Web de Déploiement : Une application web sur le serveur WEB (un serveur Apache avec un backend Node.js) a été développée et déployée. Elle sert de frontend pour la gestion des VMs étudiantes, permettant aux enseignants de provisionner, démarrer, arrêter et supprimer leurs environnements de TP via une interface graphique simple. Cette application a été une pièce maîtresse pour l'autonomie des professeurs, traduisant le concept "Je lance mes TP en quelques clics !".
- Ansible Master : Un serveur dédié hébergeant Ansible a été configuré pour gérer l'ensemble de l'infrastructure. Ansible est utilisé pour le déploiement initial de toutes les machines (serveurs physiques, VMs de services), leur configuration (installation de logiciels, gestion des utilisateurs, configuration réseau), ainsi que pour le déploiement et la gestion des gabarits de VMs étudiantes. Cela garantit une automatisation complète des opérations, réduisant les erreurs manuelles et le temps de mise en œuvre.
- VMs Étudiant : Des gabarits de VMs préconfigurés (ex: LAMP avec Apache, MySQL, PHP; JAVA avec un JDK et un environnement de développement; MariaDB et PostgreSQL pour les bases de données) sont stockés et provisionnables dynamiquement. L'infrastructure réseau a été conçue pour supporter théoriquement jusqu'à 500 VMs simultanément (au niveau de la planification des adresses IP et de la capacité des switches), démontrant une excellente scalabilité pour une école de la taille de l'ESEO.
2.2. Sauvegarde
- BorgBackup : La solution de sauvegarde choisie est BorgBackup, une solution de sauvegarde dédupliquée et cryptée en ligne de commande. Elle est implémentée sur une VM de sauvegarde dédiée qui collecte les données de toutes les VMs du système de manière incrémentielle. La déduplication permet d'optimiser l'espace de stockage et la bande passante, tandis que le chiffrement assure la confidentialité des données sauvegardées. La récupération rapide des environnements est assurée par la nature incrémentielle des sauvegardes.
2.3. Supervision
- Zabbix : Zabbix a été mis en œuvre comme système de supervision centralisé. Il collecte les métriques de performance (CPU, RAM, disque, réseau) et de disponibilité de toutes les machines physiques et VMs via des agents installés ou des requêtes SNMP. Des tableaux de bord personnalisés ont été créés pour offrir une vue d'ensemble rapide, et des alertes sont configurées pour notifier les administrateurs en cas de seuils dépassés ou de défaillances.
- Wazuh : Wazuh complète Zabbix en se concentrant sur la supervision de la sécurité. Il fonctionne comme un système de détection d'intrusion hôte (HIDS), surveillant l'intégrité des fichiers système, analysant les logs de sécurité des VMs et des serveurs, et détectant les comportements anormaux. Il fournit des alertes en temps réel sur les activités suspectes, renforçant ainsi la posture de sécurité globale de l'infrastructure.
2.4. Réseau
- OPNsense : Une machine virtuelle OPNsense a été configurée pour servir de pare-feu principal et de routeur pour le Data Center. Elle gère la segmentation du réseau en plusieurs VLANs logiques (ex: VLAN pour serveurs Web, VLAN pour bases de données, VLAN pour VMs étudiantes, VLAN pour administration). OPNsense implémente les règles de pare-feu pour contrôler le trafic entre ces VLANs et avec le réseau externe.
- Bind 9 : Un serveur DNS utilisant Bind 9 a été déployé pour gérer la résolution de noms de domaine interne. Cela permet aux VMs et services de communiquer entre eux en utilisant des noms d'hôtes plutôt que des adresses IP, simplifiant la configuration et la gestion.
- Serveur DHCP : Un serveur DHCP est opérationnel pour attribuer automatiquement les adresses IP, les masques de sous-réseau et les passerelles par défaut aux nouvelles VMs lors de leur démarrage, ce qui simplifie le déploiement et évite les conflits d'adresses.
- Architecture Réseau : L'architecture physique et logique a été conçue autour de switches Cisco (SW1, SW3) pour la connectivité des serveurs et du routage inter-VLAN. Le routeur PC_OPNSens assure la fonction de passerelle pour les différents sous-réseaux.
2.5. Sécurité
- OPNsense : L'intégration d'OPNsense va au-delà du simple routage ; il est configuré avec des règles de pare-feu strictes pour filtrer les paquets, bloquer les ports non nécessaires et mettre en place des règles de NAT (Network Address Translation) pour les services exposés. Le principe du moindre privilège est appliqué.
- Wazuh : Wazuh contribue de manière significative à la sécurité en offrant une capacité de détection des vulnérabilités via l'analyse des logs et en surveillant l'intégrité du système d'exploitation et des applications. Bien qu'il ne s'agisse pas d'un scanner de vulnérabilité au sens classique, son rôle d'IDS/HIDS permet d'identifier des comportements qui pourraient être liés à des tentatives d'exploitation de vulnérabilités. Il n'y a pas eu d'intégration d'un scanner de vulnérabilité dédié comme Nessus ou OpenVAS sur les machines physiques, mais Wazuh remplit une partie de ce rôle en continu.
2.6. Gestion de Projet et Documentation
- SquashTest : L'outil SquashTest a été utilisé pour formaliser et exécuter les campagnes de tests. Cela a inclus des tests fonctionnels pour valider chaque fonctionnalité de l'application web et des services sous-jacents, ainsi que des tests de charge pour s'assurer que l'infrastructure pouvait gérer le nombre de VMs et d'utilisateurs prévus sans dégradation de performance.
- Gitea : Le dépôt Gitea a été la plateforme collaborative centrale. Il héberge le code source versionné de tous les composants (scripts Ansible, code de l'application web), les "issues" pour le suivi des tâches et des bugs, et la documentation du projet, y compris ce Wiki. La documentation est organisée pour faciliter la compréhension de l'architecture, des procédures de déploiement et des configurations.
3. Analyse Comparative Détaillée : Objectifs vs. Réalisations
Le tableau ci-dessous synthétise la réalisation de chaque objectif, avec une brève analyse de l'atteinte ou des spécificités de l'implémentation.
Axe du Projet | Objectifs Initiaux | Réalisation | Analyse |
---|---|---|---|
Automatisation | - Développer un site web convivial pour la gestion des VMs - Mettre en place un Bastion sécurisé- Automatiser le déploiement complet de l’infra | - Application web opérationnelle pour la gestion des VMs, intuitive pour les professeurs- Bastion non dédié, accès via d'autres moyens sécurisés- Automatisation complète avec Ansible pour le déploiement et la gestion des machines | L'objectif principal d'automatisation est largement atteint grâce à l'application web et Ansible. Le Bastion reste un point à améliorer. |
Sauvegarde | Sauvegarde complète, incrémentielle et sécurisée de toutes les VMs | Mise en place de BorgBackup pour sauvegardes incrémentielles, déduplication et chiffrement des données, stockage centralisé sur VM dédiée | Solution robuste, répond parfaitement aux besoins de sauvegarde et de restauration rapide. |
Supervision | - Supervision en temps réel des machines physiques et VMs- Tableau de bord intuitif pour professeurs | - Zabbix déployé avec agents pour collecte des métriques- Tableaux de bord personnalisés créés- Wazuh pour la supervision sécurité et IDS/HIDS | Surveillance technique complète et sécuritaire, tableaux de bord adaptés aux besoins pédagogiques. |
Réseau | Réseau dédié, segmenté (VLAN), sécurisé avec routage contrôlé | - OPNsense comme pare-feu et routeur principal- Segmentation VLAN implémentée- DNS Bind 9 et DHCP opérationnels- Infrastructure réseau Cisco performante | Architecture réseau conforme aux attentes, sécurisée et bien segmentée. |
Sécurité | - Pare-feu robuste- Scanner de vulnérabilités sur machines physiques | - OPNsense filtre efficacement le trafic- Wazuh apporte détection d’intrusions, mais pas de scanner dédié comme Nessus ou OpenVAS | Sécurité renforcée par plusieurs couches, mais absence d’un scanner de vulnérabilités dédié est une limite. |
Gestion de Projet et Documentation | - Méthodologie agile- Tests fonctionnels et de charge- Documentation exhaustive et à jour sur Wiki | - Utilisation de SquashTest pour tests- Gitea pour versionning, suivi et documentation- Wiki complet et maintenu | Gestion de projet bien structurée, avec une documentation de qualité et tests rigoureux. |
Analyse détaillée
-
Automatisation : L’application web développée a réellement transformé l’usage des environnements de TP, permettant aux professeurs une gestion autonome et simplifiée des VMs. L’utilisation d’Ansible a assuré une base solide pour le déploiement automatique, ce qui a considérablement réduit le temps et les erreurs. En revanche, l’absence d’un bastion dédié représente une déviation importante par rapport aux objectifs initiaux. Cela constitue un point faible en matière de sécurité et de contrôle des accès qui pourrait être amélioré ultérieurement.
-
Sauvegarde : L’implémentation de BorgBackup a parfaitement répondu à l’exigence de sauvegarde complète et sécurisée des VMs. La déduplication et le chiffrement garantissent à la fois une optimisation des ressources et une protection des données sensibles, ce qui est primordial dans un contexte éducatif.
-
Supervision : Le déploiement de Zabbix couplé à Wazuh a permis une supervision complète des aspects techniques (performance, disponibilité) et de sécurité (détection d’intrusions, analyse des logs). Les tableaux de bord adaptés aux professeurs facilitent la prise de décision rapide sans nécessiter de compétences techniques avancées.
-
Réseau : L’architecture réseau a été pensée et réalisée selon les meilleures pratiques, avec une segmentation claire via VLANs et un contrôle rigoureux des flux grâce à OPNsense. L’intégration de services DNS et DHCP complète efficacement cette infrastructure réseau.
-
Sécurité : La mise en place d’OPNsense et de Wazuh renforce considérablement la sécurité. Wazuh joue un rôle important de surveillance, mais une solution complémentaire permettrait de mieux anticiper et corriger les failles.
-
Gestion de Projet et Documentation : La méthodologie agile adoptée a facilité une progression structurée du projet, avec des validations fréquentes grâce aux tests automatisés via SquashTest. L’ensemble de la documentation est centralisé, versionné et maintenu sur Gitea, garantissant ainsi une bonne continuité et une prise en main aisée par les futurs membres.
4. Conclusion et Perspectives d'Évolution
Le projet ESEO Teaching Cloud a globalement atteint la majorité de ses objectifs initiaux, prouvant la faisabilité et l'efficacité d'une infrastructure cloud privée et sécurisée dédiée à l'enseignement. L'automatisation du déploiement via Ansible, la mise en place d'une supervision exhaustive avec Zabbix et Wazuh, ainsi qu'une architecture réseau sécurisée par OPNsense sont des réussites majeures. La mise en place de l'application web de déploiement pour les professeurs est un accomplissement clé, offrant une autonomie sans précédent et simplifiant considérablement la gestion des environnements de TP.
Le seul objectif non entièrement atteint est l'implémentation d'un système de Bastion dédié.
Perspectives d'évolution :
- Intégration d'un Bastion : Développer ou intégrer un serveur Bastion dédié pour centraliser et sécuriser davantage les accès administratifs aux VMs et à l'infrastructure sous-jacente, améliorant l'auditabilité et le contrôle des privilèges.
- Renforcement de la sécurité proactive : Étudier l'ajout d'un scanner de vulnérabilité externe (ex: OpenVAS, Greenbone) pour des scans réguliers des machines physiques et VMs, complétant ainsi l'approche réactive de Wazuh. L'implémentation de politiques de sécurité plus granulaires au niveau applicatif et la mise en place de procédures de durcissement des systèmes.
- Optimisation continue des performances : Affiner la configuration des hyperviseurs, des systèmes de stockage et des VMs pour maximiser les performances et l'efficacité des ressources, réduisant ainsi la latence et améliorant l'expérience utilisateur.
- Évolutivité de l'application web : Ajouter de nouvelles fonctionnalités à l'application web pour enrichir l'expérience utilisateur des professeurs et des étudiants (ex: gestion des quotas d'utilisation des ressources par étudiant, intégration directe de tableaux de bord de monitoring des VMs depuis l'interface professeur, intégration de modèles de cours plus complexes avec des architectures multi-VMs prédéfinies).
- Haute Disponibilité des services critiques : Examiner la mise en place de la haute disponibilité pour d'autres services clés (comme Zabbix, Wazuh, Ansible Master) au-delà des bases de données, afin de garantir une résilience accrue de l'ensemble de la plateforme.