1. Livres & vidéos
  2. pfSense
  3. Haute disponibilité et publication
Extrait - pfSense Administrez et sécurisez vos infrastructures réseau
Extraits du livre
pfSense Administrez et sécurisez vos infrastructures réseau Revenir à la page d'achat du livre

Haute disponibilité et publication

Comprendre les besoins de disponibilité et de continuité de service

1. Qu’est-ce que la haute disponibilité ?

La haute disponibilité (High Availability - HA) permet d’assurer la continuité de service en cas de défaillance d’un nœud pfSense. Elle permet à un système de rester opérationnel en cas de panne d’un composant. Elle repose principalement sur l’utilisation du protocole CARP (Common Address Redundancy Protocol) pour le partage d’une adresse IP virtuelle, ainsi que sur la synchronisation des configurations via XMLRPC.

Pour pfSense, point d’entrée critique du réseau, une panne peut impacter toute l’entreprise. La haute disponibilité vise donc à garantir un service disponible en continu, même en cas de défaillance matérielle ou logicielle.

2. Enjeux de disponibilité et coût d’une panne

a. Objectifs de la haute disponibilité

Les objectifs de la haute disponibilité sont les suivants :

  • un temps de disponibilité maximal : disponibilité de 99,9 % ou plus, soit environ 8,8 heures d’indisponibilité par an ;

  • une continuité de service sans interruption visible pour les utilisateurs ;

  • un basculement automatique (failover) sans intervention humaine ;

  • une tolérance aux pannes matérielles (serveur, disque, alimentation, réseau) ;

  • une maintenance transparente: mise à jour d’un nœud sans coupure de service.

b. Coût d’une panne

Le coût d’une panne varie selon sa durée et selon la taille de l’entreprise. Pour...

Assurer la redondance des accès Internet avec le Multi-WAN

1. Principes du Multi-WAN

pfSense peut gérer simultanément plusieurs connexions internet (WAN) de types différents :

  • fibre optique (FTTH, FTTO) ;

  • xDSL (ADSL, VDSL, SDSL) ;

  • câble coaxial ;

  • 4G/5G, via un modem USB ou un routeur 4G ;

  • starlink ou autre liaison satellite ;

  • liaisons louées (MPLS, point à point).

2. Failover et load balancing

a. Failover (basculement)

Le mode failover garantit la continuité de service lorsqu’un lien internet devient indisponible. Dans une configuration Multi-WAN, pfSense surveille l’état des connexions - notamment la latence et la perte de paquets - puis bascule automatiquement vers un lien de secours en cas de panne du lien principal.

  • Un lien principal (Tier 1) et un ou plusieurs liens de secours (Tier 2, Tier 3, etc.) sont définis dans les Gateway Groups.

  • En cas de défaillance du lien principal, le trafic est redirigé automatiquement vers le lien de secours.

  • La panne est détectée par monitoring actif, généralement au moyen de requêtes ping permettant de mesurer la latence et la perte de paquets.

  • Lorsque le lien principal est rétabli, le retour automatique vers celui-ci peut être activé selon la configuration choisie.

Exemple concret avec pfSense

Un pare-feu pfSense dispose de deux connexions Internet: WAN1...

Mettre en place la haute disponibilité pfSense avec CARP

1. Architecture HA

La haute disponibilité vise à garantir un service disponible en continu, même en cas de panne d’un composant. Elle passe par une architecture redondée et synchronisée en temps réel entre plusieurs nœuds. Pour les environnements critiques où la continuité de service est impérative, pfSense offre une architecture de haute disponibilité fondée sur un mécanisme de clustering. L’objectif est de garantir un basculement automatique quasi instantané entre deux pare-feu, sans perte de connectivité ni interruption perceptible.

Exemple avec pfSense en haute disponibilité

Deux pare-feu pfSense physiques, un nœud principal et un nœud secondaire, partagent une adresse IP virtuelle via CARP. Les configurations sont répliquées via XMLRPC, et les états des connexions sont synchronisés via pfsync. Si le nœud principal tombe, le nœud secondaire prend le relais en moins d’une seconde. Les connexions TCP actives sont préservées : le basculement est totalement transparent pour les utilisateurs.

Un cluster pfSense ne partage aucun stockage entre ses nœuds. Chaque pare-feu possède son propre système et sa propre configuration : c’est la réplication XMLRPC qui les maintient identiques. Les mécanismes de réplication de volumes utilisés sous Linux n’ont donc pas d’équivalent ici, et n’ont pas leur place dans une architecture pfSense.

2. Les composants : CARP, pfsync et XMLRPC

a. CARP (Common Address Redundancy Protocol)

Le protocole CARP est le protocole de haute disponibilité natif de pfSense. Cette technologie réseau permet à plusieurs équipements de partager une adresse IP virtuelle, appelée VIP (Virtual IP). Son objectif est d’assurer la continuité de service en cas de défaillance de l’un des nœuds. Son fonctionnement repose sur une paire de nœuds physiquement identiques : le nœud MASTER détient la VIP et traite...

Configurer une architecture HA pfSense

1. Prérequis techniques

Pour réaliser une configuration HA efficace, il faut réunir les éléments suivants :

  • deux machines pfSense les plus identiques possible : même version, même matériel, mêmes interfaces ;

  • au moins trois interfaces par machine : WAN, LAN et SYNC ;

  • une interface SYNC dédiée et non routée, permettant aux deux pfSense de communiquer ;

  • des switchs réseau supportant CARP et autorisant le multicast.

Dans le cadre de cet ouvrage, les deux pare-feux sont nommés pfsense20 pour le nœud principal et pfsense37 pour le nœud secondaire. Le plan d’adressage retenu est le suivant, et il est utilisé de manière homogène dans tout le chapitre.

Interface

pfsense20 (principal)

pfsense37 (secondaire)

VIP CARP

VHID

Biais

WAN

198.51.100.2/24

198.51.100.3/24

198.51.100.1/24

2

0 / 100

LAN

192.168.1.2/24

192.168.1.3/24

192.168.1.1/24

1

0 / 100

SYNC

10.2.10.9/30

10.2.10.10/30

aucune

Aucune adresse virtuelle CARP n’est créée sur l’interface SYNC : ce lien n’est emprunté par aucun poste client et ne sert qu’aux échanges entre les deux pare-feux. Les VIP se créent sur les interfaces que les clients utilisent réellement, à savoir le LAN et le WAN.

2. Configurer l’interface de synchronisation

Pour configurer l’interface de synchronisation, il est nécessaire de définir une interface dédiée, nommée ici SYNC sur les deux équipements, avec une adresse IP statique sur chaque nœud. Cette interface servira à la réplication de la configuration et à la synchronisation des états de connexion. Elle ne porte aucune passerelle et n’est routée vers aucun autre réseau.

Le nom d’hôte n’apparaissant pas sur les pages de configuration d’interface de pfSense, chaque capture est identifiée par sa légende.

  • nœud principal pfsense20 : 10.2.10.9/30 ;

images/Capture10_2.PNG

Interface de synchronisation du nœud principal pfsense20

  • nœud secondaire pfsense37 : 10.2.10.10/30.

images/Capture10_3.PNG

Interface de synchronisation du nœud secondaire pfsense37

N’oubliez pas d’activer l’interface. Pour ce faire, ouvrez le menu Interfaces, sélectionnez l’interface...

Tester, surveiller et maintenir la haute disponibilité

1. Valider le basculement CARP

Avant de tester, le schéma suivant résume le processus de basculement.

images/Figure10-09.png

Processus de basculement CARP

La validation se déroule ensuite en sept étapes, du contrôle statique vers le test en conditions réelles.

 Vérifier la répartition des rôles. Ouvrez Statut - CARP sur les deux nœuds. pfsense20 doit afficher MASTER pour chaque VIP, pfsense37 doit afficher BACKUP. Si les deux affichent le même rôle, reportez-vous à la section Diagnostiquer les incidents CARP, pfsync et XMLRPC.

 Vérifier la synchronisation des états. Sur cette même page, la section State Synchronization Status liste les identifiants des nœuds participant à pfsync. Les deux nœuds doivent y apparaître.

 Vérifier la réplication de la configuration. Créez ou modifiez une règle de pare-feu sur pfsense20, puis contrôlez qu’elle apparaît sur pfsense37 quelques secondes plus tard. C’est le test le plus simple du bon fonctionnement de XMLRPC.

 Tester la VIP depuis un poste client. Depuis le réseau LAN, lancez un ping vers l’adresse virtuelle : ping 192.168.1.1. Cette adresse doit répondre, car c’est elle, et non l’adresse physique d’un nœud, que les clients utilisent comme passerelle.

 Provoquer un basculement. Laissez le ping tourner en continu, puis, sur pfsense20, cliquez sur Entrer en mode maintenance CARP persistant depuis Statut - CARP.

 Constater la reprise. pfsense37 passe à l’état MASTER et prend la VIP. Le ping doit se poursuivre, avec au plus une réponse manquante. C’est cette continuité qui distingue la haute disponibilité d’un simple failover : les connexions TCP en cours sont préservées grâce à pfsync.

 Revenir à l’état initial. Cliquez sur Quitter le mode maintenance CARP persistant sur pfsense20, qui reprend le rôle MASTER puisque son biais est le plus bas.

images/Capture10_10.PNG

Nœud principal placé en maintenance CARP

images/Capture10_11.PNG

Nœud secondaire MASTER

Une variante plus brutale consiste à couper physiquement l’interface WAN ou à débrancher le nœud principal. Elle valide en plus le comportement...

Sécuriser une architecture pfSense en haute disponibilité

Mettre en place une architecture redondante avec pfSense est une excellente pratique pour assurer la continuité de service. Cependant, une haute disponibilité mal sécurisée peut introduire de nouveaux risques : réplication non protégée, configuration compromise, ou attaques non bloquées sur le nœud secondaire. Voici les recommandations clés pour renforcer la sécurité de cette architecture.

1. Sécuriser CARP, pfsync et XMLRPC

Lors de la configuration de la haute disponibilité avec CARP, il est nécessaire de définir un mot de passe partagé, le Virtual Host ID password. Ce mot de passe sécurise la communication entre les deux nœuds qui partagent une adresse IP virtuelle. Il en va de même pour la synchronisation XMLRPC, qui réplique automatiquement la configuration du pare-feu principal vers le nœud secondaire.

Il est impératif d’utiliser un mot de passe long, aléatoire et complexe, afin d’empêcher toute tentative d’injection, d’interception ou de synchronisation malveillante entre les deux pare-feux. Évitez absolument les mots de passe par défaut ou faciles à deviner.

Durcir les règles de l’interface SYNC

Les règles autorisant CARP, pfsync et XMLRPC ont été créées...

Aller plus loin avec les configurations HA avancées

1. Combiner Multi-WAN et CARP

Dans une architecture Multi-WAN avec CARP, chaque nœud pfSense dispose de ses propres connexions WAN afin de garantir la redondance à la fois au niveau du pare-feu et au niveau des accès internet.

  • Créez des VIP CARP pour WAN1 et WAN2.

  • Configurez des Gateway Groups en mode failover.

Le résultat est une protection contre la panne du serveur et contre la panne d’un lien internet. La disponibilité théorique atteint alors 99,99 %.

2. Déployer CARP avec plus de deux nœuds

CARP supporte plus de deux nœuds, mais cette configuration est rarement utilisée en pratique.

  • nœud 1 : biais 0, MASTER préféré ;

  • nœud 2 : biais 100, premier nœud de secours ;

  • nœud 3 : biais 200, second nœud de secours.

Si le nœud 1 tombe, le nœud 2 devient MASTER. Si le nœud 2 tombe à son tour, le nœud 3 prend le relais. Cette configuration est utile pour les environnements très critiques, notamment ceux qui visent un niveau de disponibilité proche de 99,999 %.

L’interface de pfSense ne permet de déclarer qu’un seul pair de synchronisation. Dans une configuration à trois nœuds ou plus, seul ce pair reçoit les états de connexion : les autres nœuds assurent la reprise...

Publier et équilibrer des services avec HAProxy

1. Rôle de HAProxy dans pfSense

HAProxy (High Availability Proxy) est un load balancer et reverse proxy open source, essentiel pour publier, sécuriser et répartir le trafic applicatif vers plusieurs serveurs internes. Dans pfSense, il permet de mettre en place un reverse proxy performant, capable de gérer les connexions HTTP et HTTPS, de répartir les requêtes entre plusieurs backends, de vérifier l’état des serveurs et de centraliser certaines fonctions comme la terminaison SSL. Il s’intègre ainsi naturellement dans les architectures où la disponibilité, la performance et la sécurité des services web sont des enjeux importants.

Le tableau suivant précise la différence entre load balancing réseau et load balancing applicatif.

Critère

Load balancing réseau

Load balancing applicatif (HAProxy)

Niveau OSI

Couches 3 et 4 (IP, TCP/UDP)

Couche 7 (HTTP, HTTPS)

Objet réparti

Connexions entre liens WAN

Requêtes HTTP entre serveurs

Critère de décision

IP source et destination, ports

URL, en-têtes, cookies, contenu

Exemple

50 % du trafic sur WAN1, 50 % sur WAN2

/api vers Serveur1, /images vers Serveur2

Fonctionnalités principales de HAProxy

  • Load balancing intelligent : round-robin, least connections, source IP hash, sessions persistantes, serveurs pondérés.

  • Health checks : détection automatique des serveurs défaillants, retrait temporaire, réintégration automatique.

  • Terminaison SSL/TLS : déchiffrement HTTPS au niveau du proxy, serveurs backend en HTTP, certificats centralisés.

  • Reverse proxy : publication de services internes, réécriture des en-têtes, compression et routage applicatif avancé.

  • Routage de couche 7 : par nom d’hôte, par chemin d’URL, par en-tête ou par méthode HTTP.

  • Haute disponibilité : mode actif/passif ou actif/actif, basculement automatique, persistance de session.

2. Cas d’usage et alternatives

a. Cas d’usage HAProxy

Cas 1 : load balancing de serveurs web

Le premier cas illustre la configuration la plus simple, souvent utilisée pour répartir le trafic HTTP(S) entre des instances identiques d’un même site.

  • algorithme de répartition :...

Construire une DMZ sécurisée pour les services publiés

1. Principe d’une DMZ en sandwich

La DMZ (DeMilitarized Zone), ou zone démilitarisée, joue le rôle de zone tampon entre Internet et le réseau interne. Elle accueille les services accessibles depuis l’extérieur tout en assurant leur isolement vis-à-vis des postes utilisateurs et des bases de données internes. Ainsi, même si un service en DMZ est compromis, l’attaquant reste bloqué et ne peut pas progresser facilement dans l’infrastructure.

Pour améliorer encore cette isolation, on peut mettre en place une architecture dite « en sandwich », reposant sur deux pare-feu pfSense distincts. Le premier est placé entre Internet et la DMZ, et contrôle les flux entrants. Le second est situé entre la DMZ et le réseau interne, et protège les services critiques ainsi que les utilisateurs.

a. Représentation schématique

Ci-dessous la représentation graphique d’une DMZ en sandwich

images/Figure10-20.png

DMZ en sandwich avec deux pfSense

b. Flux de données

Le cheminement des données dans cette architecture suit un parcours structuré :

  • Internet vers pfSense #1, sur son interface WAN ;

  • pfSense #1 vers la DMZ, où se trouvent les serveurs publics ;

  • DMZ vers pfSense #2, qui applique un contrôle strict ;

  • pfSense #2 vers le LAN, uniquement pour les flux explicitement autorisés.

Cette séparation en plusieurs zones de confiance permet d’appliquer des politiques de sécurité différenciées selon le niveau de sensibilité des données et des services.

2. Rôle des zones WAN, DMZ et LAN

Chaque zone de l’architecture a un rôle spécifique et des caractéristiques de sécurité particulières. Comprendre ces rôles est essentiel pour mettre en place des règles de filtrage appropriées.

a. La zone WAN

Elle a pour fonction principale de recevoir le trafic extérieur, brut et non sécurisé. Tout le trafic provenant de cette zone doit être traité avec la plus grande méfiance et soumis à un filtrage rigoureux. La zone WAN doit être considérée comme non fiable ; elle nécessite donc les caractéristiques...

Synthèse finale du chapitre

Ce chapitre a montré comment concevoir une infrastructure pfSense plus disponible, plus résiliente et plus sûre pour publier des services critiques. Il a d’abord présenté les enjeux de continuité de service, le coût potentiel d’une panne et les niveaux de SLA attendus, avant d’expliquer les apports du Multi-WAN pour sécuriser les accès Internet grâce au failover, au load balancing, aux Gateway Groups et à la supervision des liens.

Il a ensuite détaillé la haute disponibilité pfSense avec CARP, pfsync et XMLRPC, en distinguant les bénéfices, les limites, les cas d’usage, les étapes de configuration, les tests de basculement, le monitoring, le diagnostic et les opérations de maintenance sans coupure. Le chapitre a également abordé les configurations HA avancées, comme l’association du Multi-WAN et de CARP, les architectures à plusieurs nœuds et la continuité des VPN site à site.

Il a ensuite montré comment publier, sécuriser et équilibrer des services avec HAProxy, depuis l’installation du paquet jusqu’à la configuration des frontends, des backends, des ACL, des certificats SSL, des métriques, des journaux et des tableaux de bord de supervision.

Enfin, il a présenté la construction d’une...