Architecture - FunWarry/Projet-ESEO-css-datacenter GitHub Wiki

Architecture et Infrastructure - ESEO Teaching Cloud

1. Introduction

L'infrastructure du projet ESEO Teaching Cloud (ETC) repose sur une architecture robuste et évolutive, conçue pour répondre aux besoins des activités pédagogiques de l'ESEO. Elle est composée d'une combinaison d'équipements physiques et de ressources logicielles, organisées de manière à assurer la performance, la fiabilité, la sécurité et la facilité d'administration.

2. Architecture Matérielle

L'architecture matérielle du projet ETC comprend les éléments suivants :

2.1 Serveurs

Le projet utilise 6 PC serveurs. Ces serveurs sont équipés de processeurs Intel Core i5, de 24 Go de mémoire RAM et de disques SSD de 500 Go pour le système d'exploitation et les applications, ainsi que de disques durs de 500 Go pour le stockage des données. Ce choix de matériel offre un bon compromis entre performance, consommation énergétique et coût.

2.2 Stockage

Le stockage est assuré par les disques SSD et HDD présents dans les serveurs. Les SSD sont utilisés pour l'installation du système d'exploitation et des applications, ce qui permet d'améliorer les performances et la réactivité du système. Les HDD sont utilisés pour le stockage des données, offrant une capacité de stockage plus importante à moindre coût.

2.3 Équipements Réseau

L'infrastructure réseau comprend les équipements suivants :

  • Switch Cisco Catalyst 3560 : Ce switch de niveau 3 assure la connectivité entre les différents serveurs et permet la segmentation du réseau en VLANs. Il offre des fonctionnalités avancées telles que le routage inter-VLANs, la qualité de service (QoS) et la sécurité.
  • Routeur Cisco 2800 : Ce routeur assure la connectivité entre le réseau local du projet ETC et les réseaux externes, notamment le réseau de l'ESEO et l'Internet. Il offre des fonctionnalités de routage avancées, de sécurité (pare-feu, VPN) et de qualité de service.
  • Pare-feu OPNsense : Ce pare-feu open source assure la sécurité périmétrique du réseau. Il filtre le trafic entrant et sortant en fonction de règles de sécurité définies, protégeant ainsi l'infrastructure contre les menaces externes. Il offre des fonctionnalités avancées telles que la prévention d'intrusion, le VPN et le filtrage web.

3. Architecture Logicielle

L'architecture logicielle du projet ETC comprend les éléments suivants :

3.1 Système d'Exploitation

Le système d'exploitation utilisé pour les serveurs est Linux Ubuntu. Cette distribution Linux est adaptée à notre cas d'utilisation et nous évite de devoir changer les OSs des machines physiques de la salle.

3.2 Hyperviseur

L'hyperviseur VirtualBox est utilisé pour la virtualisation des serveurs. Il permet d'exécuter plusieurs machines virtuelles (VMs) sur un même serveur physique, ce qui optimise l'utilisation des ressources matérielles et facilite la gestion des services.

3.3 Outils d'Automatisation

Les outils d'automatisation Vagrant et Ansible sont utilisés pour automatiser le déploiement et la configuration des VMs et des services. Vagrant permet de créer et de configurer rapidement des environnements de développement reproductibles, tandis qu'Ansible permet d'automatiser les tâches d'administration système, telles que l'installation de logiciels, la configuration de services et la gestion des mises à jour.

3.4 Services Déployés

Les services suivants doivent pouvoir être déployés sur l'infrastructure ETC :

  • Gitea : Plateforme de gestion de versions Git, utilisée pour la gestion collaborative du code source et de la documentation du projet.
  • LAMP (Linux, Apache, MySQL, PHP) : Stack logicielle utilisée pour l'hébergement d'applications web dynamiques.
  • Tomcat : Serveur d'applications Java, utilisé pour le déploiement et l'exécution d'applications Java.
  • Zabbix : Outil de supervision utilisés pour surveiller l'état de l'infrastructure et des services, et pour détecter les problèmes éventuels.
  • DNS interne : Serveur DNS utilisé pour la résolution de noms au sein du réseau local du projet ETC.

4. Architecture Réseau

Plan d'architecture réseau.

Plan de branchement.

L'architecture réseau du projet ETC est conçue pour assurer la connectivité, la sécurité et l'isolation des différents services. Elle est basée sur les principes suivants :

4.1 Segmentation en VLANs

Le réseau est segmenté en VLANs (Virtual Local Area Networks) pour isoler les différents services et améliorer la sécurité. Chaque VLAN correspond à un réseau logique distinct, avec son propre espace d'adressage IP. Les VLANs permettent de limiter la propagation des problèmes et d'appliquer des politiques de sécurité spécifiques à chaque service. Le projet ETC utilise les VLANs suivants :

  • VLAN 10 : Infrastructure
    • Plage d'adresses IP : 192.168.239.248/29
    • Utilisé pour les équipements réseau (routeur, pare-feu, switchs).
    • Objectif : Isolation du trafic de gestion du reste du réseau.
  • VLAN 20 : Web
    • Plage d'adresses IP : 192.168.232.0/23
    • Utilisé pour les serveurs web.
    • Objectif : Hébergement des applications web et des sites web.
  • VLAN 30 : BDD
    • Plage d'adresses IP : 192.168.234.0/23
    • Utilisé pour les serveurs de bases de données.
    • Objectif : Isolation des serveurs de données pour des raisons de sécurité et de performance.
  • VLAN 40 : Sauvegarde
    • Plage d'adresses IP : 192.168.236.0/23
    • Utilisé pour les serveurs de sauvegarde et de stockage des données de sauvegarde.
    • Objectif : Séparation du trafic de sauvegarde du trafic de production.
  • VLAN 50 : Supervision
    • Plage d'adresses IP : 192.168.238.0/29
    • Utilisé pour les serveurs de supervision et de monitoring.
    • Objectif : Isolation du trafic de supervision pour garantir sa disponibilité et sa performance.
  • VLAN 60 : DNS
    • Plage d'adresses IP : 192.168.238.8/29
    • Utilisé pour les serveurs DNS.
    • Objectif : Fournir un service de résolution de noms local.

4.2 Routage Inter-VLANs

Le routage entre les VLANs est assuré par le switch Cisco Catalyst 3560. Il permet aux services hébergés dans différents VLANs de communiquer entre eux de manière contrôlée. Le switch utilise des interfaces virtuelles (SVI) pour assurer le routage entre les VLANs. Le protocole de routage utilisé est OSPF (Open Shortest Path First).

4.3 Pare-feu Périmétrique

Le pare-feu OPNsense est placé en périphérie du réseau pour protéger l'infrastructure contre les menaces externes. Il filtre le trafic entrant et sortant en fonction de règles de sécurité définies, et offre des fonctionnalités avancées telles que la prévention d'intrusion et le VPN. Le pare-feu est configuré pour autoriser uniquement le trafic nécessaire aux services déployés et pour bloquer tout le reste.

4.4 Adressage IP

Plan d'adressage IP.

Un plan d'adressage IP est défini pour organiser l'attribution des adresses IP aux différents équipements et services du réseau. Ce plan prend en compte la segmentation en VLANs et permet une gestion efficace des adresses IP. Le schéma d'adressage IP utilisé est le suivant :

  • Plage d'adresses principale : 192.168.232.0/21
  • Les sous-réseaux sont créés à partir de cette plage principale, comme indiqué dans la section "Segmentation en VLANs".
  • Chaque VLAN se voit attribuer une plage d'adresses IP spécifique, avec un masque de sous-réseau approprié (/23 ou /29).
  • Des adresses IP statiques sont attribuées aux équipements d'infrastructure (routeur, pare-feu, switchs, serveurs).
  • Des adresses IP dynamiques sont attribuées aux autres équipements (postes de travail, etc.) via DHCP.

4.5 Sécurité Réseau

La sécurité du réseau est assurée par plusieurs mécanismes :

  • Pare-feu : Le pare-feu OPNsense filtre le trafic en fonction de règles de sécurité définies.
  • VLANs : La segmentation en VLANs permet d'isoler les différents services et de limiter la propagation des problèmes de sécurité.
  • Listes de contrôle d'accès (ACL) : Des ACL sont configurées sur le routeur pour contrôler le trafic entre les VLANs.
  • Matrice de flux : Lien ici.