Académique Documents
Professionnel Documents
Culture Documents
Pfsense HA Architecture Collapsed Core Guide 1710570010
Pfsense HA Architecture Collapsed Core Guide 1710570010
Maximisation de la Résilience
Réseau :
Réalisé par :
Khalid AMATOCH
1
Khalid-AMATOCH
Table of Contents
CHAPITRE 1- SIMULATION DU RÉSEAU DE L'ORGANISATION .................................................................................. 3
2
Khalid-AMATOCH
1.1 Aperçu
Dans cette topologie, j'ai essayé de simuler l'environnement d'une organisation, en commençant par implémentation l'architecture CollapsedCore
préconisée par Cisco, implémentation d’une topologie hautement disponible et redondante, centraliser les tâches d'administration, sécuriser le réseau
à l'aide d'une solution open-source (pfSense), et en utilisant le protocole intégré lié à la haute disponibilité qui accompagne cette solution,
implémentant le concept de virtualisation dans l'environnement, et enfin en conteneurisant le travail en utilisant l'environnement docker.
3
Khalid-AMATOCH
4
Khalid-AMATOCH
Le modèle à trois niveaux est nécessaire pour les campus complexes qui nécessitent un accès par plusieurs sites,
appareils et utilisateurs. Il en résulte un réseau évolutif, rentable et fiable pour les grandes entreprises.
Cependant, les campus plus petits peuvent récolter des avantages similaires avec un modèle plus simple, réduit
pour améliorer les coûts et la surveillance.
• Réduction des coûts : les réseaux centraux effondrés peuvent faire économiser de l'argent à l'entreprise
en réduisant la quantité de matériel nécessaire pour construire et faire fonctionner le réseau. En
combinant les couches centrales et de distribution, ce modèle élimine le besoin d'appareils séparés. Cela
offre aux entreprises la possibilité d'utiliser la plupart des avantages offerts par le modèle à trois niveaux
dans une option économique.
• Protocoles réseau simplifiés : les protocoles nécessaires pour faire fonctionner un réseau central
effondré sont moins complexes. Avec seulement deux couches nécessitant une communication, il y a
moins de possibilités de problèmes de protocole réseau.
• Conçu pour les petits campus : étant donné que le modèle de base réduit était dérivé du modèle à trois
niveaux, le modèle a été conçu pour répondre aux besoins des campus de petite et moyenne taille. Cela
garantit que ces campus peuvent utiliser les avantages pertinents du modèle à trois niveaux sans avoir à
se soucier d'un équipement ou d'une surveillance inutile.
5
Khalid-AMATOCH
En plus d'avoir un réseau élevé et redondant et avec l'aide des fonctionnalités de pfSense, j'ai pu trouver une
telle solution. Le logiciel pfSense est l'une des rares solutions open source offrant des capacités de haute
disponibilité de niveau entreprise avec basculement dynamique, permettant l'élimination du pare-feu en tant
que point de défaillance unique. La haute disponibilité est obtenue grâce à une combinaison de fonctionnalités :
Avec cette configuration, les nœuds agissent comme un cluster « actif/passif », le nœud principal jouant le rôle
de nœud maître et le nœud secondaire jouant un rôle de secours, prenant le relais si nécessaire en cas de
défaillance du nœud principal.
6
Khalid-AMATOCH
Une interface sur chaque nœud de cluster sera dédiée aux tâches de synchronisation. Ceci est généralement
appelé l'interface "Sync", et il est utilisé pour la synchronisation de la configuration et la synchronisation de l'état
pfsync. Toute interface disponible peut être utilisée.
Une adresse IP virtuelle (VIP) de type CARP est partagée entre les nœuds d'un cluster. Un nœud est maître et
reçoit le trafic pour l'adresse IP, et les autres nœuds maintiennent l'état de sauvegarde et surveillent les
battements de cœur pour voir s'ils doivent assumer le rôle de maître si le maître précédent échoue. Étant donné
qu'un seul membre du cluster à la fois utilise l'adresse IP, il n'y a pas de conflit d'adresse IP pour les VIP CARP.
1.3.2.1 La redondance
Afin d'atteindre une redondance dans nos zones (exemple de LAN), j'ai créé une interface LAGG, qui combine
les deux interfaces physiques en une seule interface logique. Vous avez la possibilité d'utiliser différentes
technologies, mais j'ai choisi de simplifier le processus.
7
Khalid-AMATOCH
J'ai rencontré plusieurs obstacles pour accéder à l'interface LAN depuis les pare-feu, car pfSense ne permet plus
qu'une seule route statique vers une destination spécifique. Dans cette situation, j'ai choisi d'activer HSRP dans
le commutateur Layer3 pour une redondance inversée. Je n'ai pas souhaité utiliser le package de routage
dynamique (FRR Package) pour cette configuration, mais je laisse cette option ouverte pour un futur
lab.Toutefois, si cela vous intéresse, vous pouvez utiliser le routage dynamique.
8
Khalid-AMATOCH
Tout d'abord, nous devons configurer les interfaces des deux côtés, en leur donnant une adresse afin qu'ils
puissent communiquer entre eux.
Après avoir configuré l'interface, il est temps d'activer le mécanisme pfSync sur les deux entités, en fournissant
l'adresse IP de l'interface de synchronisation de l'autre.
9
Khalid-AMATOCH
Pour la synchronisation de la configuration , il ne doit être configurée que sur le nœud principal. Nous ne devons
jamais activer les options de cette section sur le nœud secondaire d'un cluster à deux membres.
10
Khalid-AMATOCH
Nous devons entrer le nom d'utilisateur et le mot de passe de l'autre pfSense, les cases de chaque zone à
synchroniser avec le nœud secondaire. Comme pour la plupart des configurations, toutes les cases sont cochées
pour choisir quoi synchroniser.
Les deux nœuds sont maintenant liés pour la synchronisation de la configuration ! Les modifications apportées
au nœud principal dans les zones prises en charge seront synchronisées avec le nœud secondaire chaque fois
qu'une modification est apportée.
11
Khalid-AMATOCH
Pour la boîte d'interface, elle définit l'interface sur laquelle le VIP résidera, la boîte d'adresse est l'endroit où les
valeurs d'adresse IP sont entrées pour le VIP. Un masque de sous-réseau doit également être sélectionné et il
doit correspondre au masque de sous-réseau sur l'adresse IP de l'interface. Nous devons également définir le
mot de passe pour le CARP VIP. Cela doit uniquement correspondre entre les deux nœuds, ce qui sera géré par
synchronisation.
Après avoir entré les adresses IP virtuelles pour les interfaces LAN, DMZ et WAN, voici à quoi cela ressemble.
Il est maintenant temps de vérifier l'état du protocole CARP sur les deux firewalls.
12
Khalid-AMATOCH
Le premier pare-feu a le statut de Master, ce qui signifie qu'il possède l'adresse IP virtuelle et qu'il est la passerelle
active par défaut.
Pour le second Firewall, il a un statut Backup, ce qui signifie qu'en cas de panne, il deviendrait le routeur
principal.
À des fins de test, j'ai envoyé un ping à Google à partir du commutateur de couche 3 pour vérifier sur quel pare-
feu le paquet est passé.
Après avoir implémenté la solution de haute disponibilité dans notre topologie, il est temps de mettre à jour à
la fois le proxy Squid et les interfaces VPN pour correspondre à l'adresse IP virtuelle que nous avons créée.
Figure 19: Modifier les paramètres de Squid pour écouter sur l'interface CARP
13
Khalid-AMATOCH
Figure 20: Modifier les paramètres VPN pour écouter sur l'interface CARP
L'un des grands avantages de l'approche des ressources centralisées est qu'elle est facile à administrer. Avec tous
les actifs basés sur un seul emplacement, les administrateurs ont tous les systèmes à portée de main. Chaque fois
qu'une mise à jour de sécurité ou un correctif système doit être appliqué, les systèmes sont à proximité. Étant
donné que tous les systèmes sont géographiquement proches les uns des autres, les problèmes de
communication ne sont généralement pas un problème. Dans un réseau local, les systèmes doivent disposer
d'une large bande passante disponible pour communiquer et partager des données.
14
Khalid-AMATOCH
Le serveur Windows est promu en tant que contrôleur de domaine, qui est un serveur qui répond aux demandes
d'authentification et vérifie les utilisateurs sur le réseau.
AD DS permet une intégration facile de l'espace de noms Active Directory dans un espace de noms DNS existant.
Des fonctionnalités telles que les zones DNS intégrées à Active Directory facilitent le déploiement du DNS en
éliminant le besoin de configurer des zones secondaires, puis de configurer les transferts de zone.
15
Khalid-AMATOCH
De plus, en ce qui concerne les requêtes Internet, j'ai promu le serveur DNS en tant que redirecteur DNS, qui est
le processus par lequel des ensembles particuliers de requêtes DNS sont transmis à un serveur désigné pour une
résolution en fonction du nom de domaine DNS dans la requête plutôt que d'être géré par le serveur initial qui
a été contacté par le client.
Dans le cas de cette topologie, NPS était censé être utilisé comme proxy RADIUS (Remote Authentication Dial-
In User Service) pour transférer les demandes de connexion à un serveur RADIUS local afin qu'il puisse
équilibrer la charge des demandes de connexion et les transmettre au bon domaine pour authentification.
NPS uses network policies and the dial-in properties of user accounts to determine whether a connection request
is authorized to connect to the network.
16
Khalid-AMATOCH
Figure 26: Création d'une nouvelle politique au sein de notre serveur NPS
17
Khalid-AMATOCH
Dans le cas de cette implémentation, j'ai utilisé la solution MailEnable, qui est un serveur de messagerie
commercial basé sur Windows distribué par MailEnable Pty. Ses fonctionnalités incluent la prise en charge des
protocoles de messagerie IMAP, POP3 et SMTP avec prise en charge SSL/TLS, liste serveur, antivirus, anti-spam
et fonctionnalité de messagerie Web. Ce qui facilite sa gestion, c'est que ses fonctions d'administration peuvent
être exécutées à l'aide de la Microsoft Management Console (MMC) ou d'un navigateur Web.
18
Khalid-AMATOCH
19
Khalid-AMATOCH
1.5 Virtualisation
De nombreuses organisations informatiques déploient des serveurs qui ne fonctionnent qu'à une fraction de leur
capacité, souvent parce qu'elles dédient leur serveur physique à une application spécifique. Il s'agit
généralement d'un mécanisme inefficace car il existe une capacité excédentaire qui n'est pas consommée, ce qui
entraîne des coûts d'exploitation et des coûts informatiques plus élevés.Dans le but d'augmenter l'utilisation de
la capacité et de réduire les coûts, la virtualisation a été créée.
La virtualisation utilise un logiciel pour créer une couche d'abstraction sur le matériel physique. Ce faisant, il
crée un système de calcul virtuel, appelé machines virtuelles (VM). Cela permet aux organisations d'exécuter
plusieurs ordinateurs virtuels, systèmes d'exploitation et applications sur un seul serveur physique, en le
partitionnant essentiellement en plusieurs serveurs virtuels. En termes simples, l'un des principaux avantages
de la virtualisation est qu'il s'agit d'une utilisation plus efficace du matériel informatique physique ; ceci, à son
tour, offre un meilleur retour sur investissement d'une entreprise.
La virtualisation des centres de données et l'informatique de l'utilisateur final sont de grands marchés avec une
abondance de produits parmi lesquels les administrateurs peuvent choisir. VMware fournit plusieurs outils dans
ces segments, notamment vSphere, NSX-T Data Center (anciennement NSX-T), vSAN et vRealize pour la
virtualisation des centres de données et VMware Horizon Suite et Workspace ONE UEM pour la virtualisation
des postes de travail.
20
Khalid-AMATOCH
Dans cette topologie, nous avons choisi les solutions vSphere comme principal mécanisme de virtualisation dans
notre environnement.
Remarque : dans cette démonstration, j'expliquerai quelques éléments sur la raison du concept de virtualisation
et vSphere consomme des ressources, je n'ai pas pu couvrir tous les sujets de la topologie en raison du manque
de ressources nécessaires.
Commencent la démo en installant ESXI qui signifie Elastic Sky X Integrated. ESXi est un hyperviseur de type
1, ce qui signifie qu'il s'exécute directement sur le matériel du système sans avoir besoin d'un système
d'exploitation (OS). Les hyperviseurs de type 1 sont également appelés hyperviseurs bare metal car ils
s'exécutent directement sur le matériel. ESXi est destiné aux entreprises.
Dans l'intérêt de cette architecture, j'ai choisi de déployer un serveur Windows secondaire sur l'ESXi pour agir
en tant que contrôleur de domaine pour notre topologie à l'aide d'un magasin de données local, puis plus tard
sur l'utilisation du stockage en réseau pour déployer un Serveur Linux (Ubuntu Server) pour bénéficier des
fonctionnalités de Virtualisations et surtout de ce que vSphere peut nous offrir.
21
Khalid-AMATOCH
Le serveur DNS doit être mis en correspondance sur le deuxième serveur avant de pouvoir rejoindre le même
domaine. Ensuite, nous devrions ajouter les services Active Directory au même serveur mais cette fois en
rejoignant un domaine existant.
Figure 34: Installation des services de domaine Active Directory dans notre nouveau serveur Windows
22
Khalid-AMATOCH
Le deuxième serveur a rejoint avec succès notre domaine et agit maintenant en tant que contrôleur de domaine
de secours.
Figure 36:Vérification du nouveau serveur Windows promu en tant que contrôleur de domaine secondaire
La beauté d'un périphérique NAS est qu'il peut être facilement accessible par plusieurs personnes, plusieurs
ordinateurs, appareils mobiles ou même à distance (s'il est correctement configuré).
Pour prendre en charge la variété des façons dont les utilisateurs souhaitent utiliser le stockage en réseau, les
périphériques NAS intègrent plusieurs composants dans leurs architectures :
• Stockage. Habituellement, avec les disques durs, la fonction principale d'un périphérique NAS est de
stocker vos fichiers. Peut prendre en charge plusieurs disques et ils peuvent également fournir une
23
Khalid-AMATOCH
redondance et des temps d'accès aux fichiers et de stockage plus rapides. Les périphériques NAS utilisent
généralement une catégorie NAS spéciale de disques durs de 3,5 pouces qui répondent aux exigences
d'un périphérique qui fonctionne en permanence.
• La mise en réseau. C'est ainsi que le périphérique NAS est connecté à votre ou vos ordinateurs. La
connexion au réseau peut se faire via un câble Ethernet (câblé) ou Wi-Fi.
• Ordinateur/UC. Les périphériques NAS contiennent une sorte de processeur, car il faut de l'intelligence
et de la puissance informatiques pour gérer le système de fichiers, lire et écrire des opérations, exécuter
des applications, traiter des fichiers multimédias (tels que des vidéos), gérer plusieurs utilisateurs et
s'intégrer au cloud si vous le souhaitez.
• Système opérateur. Bien qu'il puisse ne pas sembler à l'utilisateur moyen qu'il existe un système
d'exploitation qui gère le périphérique de stockage, les périphériques NAS doivent avoir un système
d'exploitation sur eux pour prendre en charge les tâches.
Pour intégrer ce concept, le projet a utilisé l'outil FreeNAS, qui est la marque d'une gamme de systèmes
d'exploitation de stockage en réseau (NAS) gratuits et open-source produits par iXsystems et basés sur FreeBSD
et Linux. Il prend en charge Windows, macOS, et des clients Unix et divers hôtes de virtualisation tels que
XenServer et VMware utilisant les protocoles SMB, AFP, NFS, iSCSI, SSH, rsync et FTP/TFTP.
freeNAS est géré via une interface Web complète qui est complétée par une console shell minimale qui gère les
fonctions administratives essentielles. L'interface Web prend en charge la configuration du pool de stockage, la
gestion des utilisateurs, la configuration du partage et la maintenance du système.
Avant d'aller plus loin, nous devons comprendre comment les périphériques communiquent avec le stockage
NAS, pour les besoins de cette démonstration, j'ai utilisé le protocole iSCSi, qui signifie Internet Small Computer
24
Khalid-AMATOCH
System Interface, fonctionne au-dessus du protocole de contrôle de transport (TCP ) et permet à la commande
SCSI d'être envoyée de bout en bout sur des réseaux locaux (LAN), des réseaux étendus (WAN) ou Internet.
ISCSI fonctionne en transportant des données de niveau bloc entre un initiateur iSCSI sur un serveur et une cible
iSCSI sur un périphérique de stockage. Le protocole iSCSI encapsule les commandes SCSI et assemble les
données en paquets pour la couche TCP/IP. Les paquets sont envoyés sur le réseau à l'aide d'une connexion
point à point. À l'arrivée, le protocole iSCSI désassemble les paquets, séparant les commandes SCSI afin que le
système d'exploitation (SE) voie le stockage comme s'il s'agissait d'un périphérique SCSI connecté localement
qui peut être formaté comme d'habitude.
Nous devons d'abord configurer le magasin de données pour qu'il soit partagé sur le réseau.
Après avoir créé le magasin de données, nous devons maintenant activer le service iSCSi dans le freeNAS et le
configurer.
Après une configuration réussie, il est temps de connecter notre hôte ESXI au stockage NAS à l'aide de
l'adaptateur virtuel iSCSi.
25
Khalid-AMATOCH
Maintenant, nous devrions pouvoir voir le stockage NAS sur notre hôte ESXi. De plus, je vais installer un serveur
Linux sur ce stockage NAS pour les fonctionnalités avancées de virtualisation.
Figure 41: Vérifier que le magasin de données de freeNAS est ajouté à notre hôte ESXi
26
Khalid-AMATOCH
Un hyperviseur VMware permet d'exécuter des machines virtuelles sur un seul serveur. nous pouvons exécuter
plusieurs machines virtuelles sur un hôte ESXi autonome et déployer plusieurs hôtes pour exécuter davantage
de machines virtuelles. Parfois, l'utilisation de plusieurs hôtes connectés via le réseau pour exécuter des
machines virtuelles ne suffit pas pour répondre aux besoins de l'entreprise. Par exemple, en cas de défaillance
d'un hôte, toutes les machines virtuelles résidant sur cet hôte échoueront également. De plus, les charges de
travail des machines virtuelles sur les hôtes ESXi peuvent être déséquilibrées et la migration manuelle des
machines virtuelles entre les hôtes est une routine. ]Pour résoudre ces problèmes, VMware fournit des
fonctionnalités de clustering telles que VMware High Availability (HA) et Distributed Resource Scheduler
(DRS). L'utilisation du clustering vSphere vous permet de réduire les temps d'arrêt des machines virtuelles et
de consommer les ressources matérielles de manière rationnelle. Cette section suivante couvre VMware HA et
DRS.
27
Khalid-AMATOCH
sont membres du cluster sont également appelés nœuds de cluster. Il existe deux types de clusters vSphere :
vSphere High Availability et Distributed Resource Scheduler (VMware HA et DRS).
Une fois vSphere High Availability activé dans le cluster, un hôte ESXi est sélectionné comme maître HA. Les
autres hôtes ESXi sont des subordonnés (hôtes subordonnés esclaves). Un maître surveille l'état des subordonnés
pour détecter à temps la défaillance de l'hôte et initier le redémarrage des machines virtuelles défaillantes. L'hôte
principal surveille également l'état d'alimentation des machines virtuelles sur les nœuds de cluster. Si une panne
de VM est détectée, le maître lance un redémarrage de la VM (l'hôte optimal est sélectionné par le maître avant
de redémarrer la VM défaillante).
28
Khalid-AMATOCH
Avec l'aide de la technologie DRS, nous pouvons atteindre la haute disponibilité et l'équilibrage de charge.
Distributed Resource Scheduler (DRS) est une fonctionnalité de mise en cluster de VMware vSphere qui vous
permet d'équilibrer la charge des machines virtuelles exécutées dans le cluster. DRS vérifie la charge de la
29
Khalid-AMATOCH
machine virtuelle et une charge des serveurs ESXi au sein d'un cluster vSphere. Si DRS détecte qu'il y a un hôte
ou une machine virtuelle surchargé, DRS migre la machine virtuelle vers un hôte ESXi avec suffisamment de
ressources matérielles libres pour garantir la qualité de service (QoS). DRS peut sélectionner l'hôte ESXi optimal
pour une machine virtuelle lorsque vous créez une nouvelle machine virtuelle dans le cluster.
1.6 La Containerization
La conteneurisation est une forme de virtualisation où les applications s'exécutent dans des espaces utilisateur
isolés, appelés conteneurs, tout en utilisant le même système d'exploitation partagé (OS). L'un des avantages de
la conteneurisation est qu'un conteneur est essentiellement un environnement informatique entièrement
packagé et portable.
Tout ce dont une application a besoin pour s'exécuter (ses fichiers binaires, ses bibliothèques, ses fichiers de
configuration et ses dépendances) est encapsulé et isolé dans son conteneur. Le conteneur lui-même est séparé
du système d'exploitation hôte, avec un accès limité aux ressources sous-jacentes, un peu comme une machine
virtuelle (VM) légère. Par conséquent, l'application conteneurisée peut être exécutée sur différents types
d'infrastructures (sur métal nu, dans des machines virtuelles et dans le cloud) sans qu'il soit nécessaire de la
refactoriser pour chaque environnement.
Pour les besoins de cette section, l'idée était de déployer une application dynamique JAVA dans l'environnement
de conteneurisation. L'application consiste en la gestion de l'école à l'aide des frameworks Spring, Hibernate,
JSF, et MySQL pour la base de données.
Pour créer nos propres conteneurs et images, la plate-forme Docker facilite, simplifie et sécurise la création, le
déploiement et la gestion des conteneurs. Docker est essentiellement une boîte à outils qui permet de créer,
déployer, exécuter, mettre à jour et arrêter des conteneurs à l'aide de commandes simples et d'une
automatisation permettant d'économiser du travail via une seule API.
30
Khalid-AMATOCH
Tout d'abord, j'ai exporté le projet et l'ai empaqueté dans une archive à l'aide de Maven (Avec l'aide du plugin
WAR, qui est responsable de la collecte de toutes les dépendances d'artefacts, des classes et des ressources de
l'application Web et de leur conditionnement).
Tout d'abord, nous devons comprendre ce qu'est un Dockerfile, qui est un document texte contenant toutes les
commandes qu'un utilisateur peut appeler sur la ligne de commande pour assembler une image. À l'aide de
docker build, les utilisateurs peuvent créer une génération automatisée qui exécute successivement plusieurs
instructions de ligne de commande.
Tout compte fait, nous savons maintenant comment créer un fichier docker, pour le bien de notre conception,
nous devons créer deux conteneurs, ce qui signifie que nous devrions avoir 2 images, une pour l'application
JAVA principale et l'autre pour la connectivité de la base de données, afin pour ce faire, nous devons obtenir
l'aide de docker-compose.
Docker Compose est un outil qui a été développé pour aider à définir et partager des applications multi-
conteneurs. Avec Compose, nous pouvons créer un fichier YAML pour définir les services et avec une seule
commande, nous pouvons tout faire tourner ou tout détruire.
31
Khalid-AMATOCH
Remarque : j'ai eu des problèmes lors de l'importation du fichier SQL de notre projet directement à partir du
fichier Docker-Compose, à la place, j'ai créé un petit script qui s'exécute automatiquement pour importer la base
de données.
32
Khalid-AMATOCH
Figure 52: Importation du fichier .sql dans le conteneur de notre base de données
L'image finale de cette partie consistait à implémenter Kubernetes en tant que technique d'orchestration de
conteneurisation à exécuter sur un cluster d'hôtes au sein de notre infrastructure avec la technologie vSphere.
33
Khalid-AMATOCH
1.7 Conclusion
En effet, le motif de la présente étude tournait autour du problème de l'indisponibilité constatée dans
l'infrastructure réseau. Pour y remédier, nous avons proposé à travers cette étude une solution résultant de la
combinaison d'un bon procédé, d'une bonne conception, et d'un éventail de technologies.
Cependant, pour répondre au problème posé, nous avons utilisé différentes technologies et protocoles, à
commencer par l'utilisation de la technologie HSRP, EtherChannel pour l'agrégation de liens physiques, et rapid-
STP+ pour la définition d'un réseau sans boucle. Toute cette gamme a été basée sur une architecture qui répond
au modèle de conception de réseau hiérarchique d'un réseau redondant et à haute disponibilité.
De plus, avec l'aide de GNS3, nous avons pu simuler un environnement d'entreprise, en commençant par
implémenter le pare-feu open source pfSense, en démontrant ses capacités, en centralisant notre travail à l'aide
d'un serveur Windows et enfin nous avons discuté du concept de virtualisation pour virtualiser notre
infrastructure dans les deux sens, à l'aide des environnements vSphere et de l'environnement du moteur Docker.
34