Configurer CARP

Vue d’ensemble

L’une des fonctions les plus puissantes de DynFi Firewall est la mise en place d’un pare-feu redondant avec option de basculement automatique. Ce chapitre décrit étape par étape comment créer une configuration basée sur deux réseaux. - Le réseau 192.168.1.0/24 (utilisé pour le réseau interne) - Le réseau 172.18.0.0/24 sera utilisé pour acheminer notre trafic vers l’internet.

../_images/DFF_CARP_configuration.png

Lorsque l’on utilise CARP ( FreeBSD handbook on CARP ), toutes les interfaces à sécurité intégrée doivent avoir une connexion dédiée. interfaces à sécurité intégrée doivent avoir une adresse IP dédiée qui sera combinée à une adresse IP virtuelle partagée pour communiquer avec les deux réseaux. Dans l’image ci-dessus, les lignes en pointillés sont utilisées pour marquer les adresses virtuelles. adresses virtuelles.

Le fichier de configuration (XML) pour les deux pare-feu peut être téléchargé à partir des Ressources.

Terminologie

La mise en place d’un cluster CARP implique une certaine terminologie, que nous allons expliquer brièvement :

CARP

Common Address Redundancy Protocol utilise le protocole IP 112, est dérivé d’OpenBSD et utilise des paquets multicast pour signaler son état à ses voisins. Il faut toujours s’assurer que chaque interface peut recevoir des paquets CARP.

Chaque interface virtuelle doit avoir un identifiant d’hôte virtuel (vhid) unique, qui est partagé entre les machines physiques. Pour déterminer quelle machine physique a la priorité la plus élevée, le skew annoncé est utilisé. Avec un skew plus faible, la priorité est plus élevée. (notre pare-feu principal utilise 0).

pfSync

Avec CARP, nous pouvons utiliser pfSync pour répliquer l’état de nos pare-feux. Lors d’un basculement, vous devez vous assurer que les deux machines connaissent tous les états de connexions afin de rendre la migration transparente. Il est fortement conseillé d’utiliser une interface dédiée pour les paquets pfSync entre les hôtes, tant pour des raisons de sécurité (injection d’état) que de performance.

Warning

Lorsque vous utilisez des pilotes réseau différents sur les deux machines, comme dans le cas d’une configuration HA avec une machine physique comme maître et une machine virtuelle comme esclave, les états ne peuvent pas être synchronisés car les noms d’interface diffèrent. La seule solution consiste à mettre en place une interface LAGG.

Synchronisation XMLRPC

DynFi Firewall inclut un mécanisme pour maintenir la configuration du serveur de sauvegarde avec le serveur maître. Ce mécanisme est appelé XMLRPC sync et se trouve dans Système >> Haute Disponibilité

Configuration des interfaces et des règles de base du pare-feu

Attention

Assurez-vous que les affectations d’interface sur les deux systèmes sont identiques ! Via Interfaces >> Aperçu vous pouvez vérifier si par exemple DMZ est opt1 figurent sur les deux machines. Si les assignations sont différentes, vous aurez des IPs Maître et Sauvegarde mélangées sur les deux machines.

Notre exemple utilise trois interfaces, qui ont toutes une configuration assez basique.

Maître

Allez dans interfaces, assurez-vous que les trois interfaces sont assignées et configurez les adresses et sous-réseaux suivants les adresses et les sous-réseaux suivants :

LAN 192.168.1.10/24

WAN 172.18.0.101/24

PFSYNC 10.0.0.1

Ensuite, nous devons nous assurer que les protocoles appropriés peuvent être utilisés sur les différentes interfaces. différentes interfaces, allez dans Pare-feu >> Règles et assurez-vous que le LAN et le WAN acceptent au moins les paquets CARP. Puisque nous connectons les deux pare-feux en utilisant une connexion directe par câble, nous ajouterons une seule règle pour accepter tout le trafic sur tous les protocoles pour cette interface spécifique. Une autre option consiste à n’accepter que le trafic vers le port GUI et le protocole pfSync.

Sauvegarde / Esclave

Le serveur de sauvegarde (esclave) a besoin de ses propres adresses dédiées, nous utiliserons :

LAN

192.168.1.20/24

WAN

172.18.0.102/24

PFSYNC

10.0.0.2

Note

Par défaut, le menu déroulant pour le masque de sous-réseau ne s’applique qu’aux adresses IPv4 (jusqu’à 32). Si vous souhaitez ajouter une adresse CARP IPv6, écrivez votre adresse v6 et la liste déroulante se mettra automatiquement à jour (jusqu’à 128).

Comme nous allons synchroniser les paramètres du pare-feu entre les deux hôtes, nous devons seulement nous assurer que l’interface pfSync peut accepter les données du maître pour la configuration initiale. Utilisez la même règle que celle utilisée pour le maître sur cette interface.

Configuration des IP virtuelles

Sur le nœud maître, nous allons configurer nos adresses IP virtuelles, qui seront également ajoutées au nœud de secours avec un skew plus élevé après la synchronisation.

Allez dans Interfaces >> IPs Virtuelles et ajoutez-en une nouvelle avec les caractéristiques suivantes :

Type

Carp

Interface

WAN

IP addresses

172.18.0.100 / 24

Virtual password

dynfi (donné pour l’exemple).

VHID Group

1

Advertising Frequency

Base 1 / Skew 0

Description

VIP WAN

Et une autre utilisant les éléments suivants :

Type

Carp

Interface

LAN

IP addresses

192.168.1.1 / 24

Virtual password

dynfi (donné pour l’exemple).

VHID Group

3

Advertising Frequency

Base 1 / Skew 0

Description

VIP LAN

Configuration du NAT sortant

Lorsque le trafic sort du pare-feu, il doit également utiliser l’adresse IP virtuelle de l’interface WAN afin de permettre des transitions transparentes. La configuration NAT par défaut pour DynFi Firewall est d’utiliser la génération automatique de règles NAT sortantes en utilisant l’adresse IP de l’interface WAN pour les connexions sortantes. Cette configuration ne permet pas des transitions transparentes et doit être remplacée par l’adresse WAN VIP.

Allez dans Pare-feu >> NAT >> En sortie - Choisissez la Génération manuelle de règles NAT sortantes.

Sur cette page, créez une règle provenant de la zone 192.168.1.0/24 pour utiliser l’interface virtuelle CARP (172.18.0.100). La règle doit contenir les éléments suivants :

Interface

WAN

Adresse Source

LAN net (192.168.1.0/24)

Translation / cible

172.18.0.100 (CARP virtual IP)

(optionnel) Configurer le serveur DHCP

Lors de l’utilisation du protocole DHCP pour le réseau local, il convient de tenir compte de certains éléments. Tous les clients doivent utiliser l’adresse virtuelle au lieu de l’adresse physique qu’ils propagent normalement. Il faut ensuite tenir compte du fait qu’il y aura deux serveurs actifs en même temps, qui devraient connaître leurs pools respectifs. Si les requêtes DNS sont également transmises par DynFi Firewall, assurez-vous que le serveur DHCP envoie la bonne adresse IP.

Voici les paramètres utilisés dans notre exemple (sur le serveur maître) :

DNS servers

192.168.1.1

Passerelle

192.168.1.1

IP de failover

192.168.1.20

Configuration de pfSync et HA sync (xmlrpc)

Configuration du pare-feu maître

Tout d’abord, nous devons configurer pfSync pour synchroniser les tables d’état et la synchronisation HA (xmlrpc) sur le pare-feu maître. Allez dans Système >> Haute Disponibilité et procédez comme suit : - activez pfSync cochant la case Synchroniser les États, - séléctionnez PFSYNC comme Interface de Synchronisation, - saisissez l’IP du pair (10.0.0.2) dans le champ IP de Synchronisation du Pair.

Pour synchroniser les paramètres de configuration du maître vers le pare-feu secondaire / escalve nous devons configurer la synchronisation XMLRPC : - dans le champ Synchroniser la Config vers l’IP saisissez l’IP de l’hôte (10.0.0.2), - séléctionnez l’interface PFSYNC comme Interface de Synchronisation (afin conserver le trafic XMLRPC sur la connexion directe entre les deux pare-feux), - saisissez le nom d’utilisateur et le mot de passe du serveur distant, - configurez les paramètres que vous souhaitez dupliquer vers le serveur secondaire / esclave.

Pour notre configuration, nous allons activer les éléments suivants :

Synchroniser les règles

Synchroniser le NAT

Synchroniser DHCPD

Synchroniser les IP virtuelles

Configuration du pare-feu de secours / escalve

Ensuite, nous configurerons pfSync sur le pare-feu de secours. Rendez-vous dans : Système >> Haute Disponibilité et procédez comme suit : - activez pfSync en cochant la case Synchroniser les États, - séléctionnez PFSYNC comme Interface de Synchronisation, - saisissez l’IP du pare-feu maître (10.0.0.1) dans le champ Synchroniser la Config vers l’IP.

Ne configurez pas la synchronisation XMLRPC sur le pare-feu de secours.

Finaliser la configuration

Pour vous assurer que tous les paramètres sont correctement appliqués, redémarrez les deux pare-feu avant de les tester.

Test de la configuration

Rendez-vous dans Système >> Haute Disponibilité et clicquez sur Status dans la barre de navigation en haut à droite. Vérifiez si les deux machines sont correctement initialisées.

Pour tester notre configuration, nous allons connecter un client au réseau local et ouvrir une connexion ssh` à un hôte situé derrière les deux pare-feux. Une fois connecté, vous devriez pouvoir consulter la table d’état des deux pare-feux DynFi Firewall dans (Pare-feu >> Diagnostiques >> Etats), ils devraient tous deux afficher la même connexion. Essayez ensuite de débrancher la prise réseau du pare-feu principal, il devrait passer au backup sans perdre (ou geler) la connexion ssh.

Ajout de plusieurs IP CARP

Si votre fournisseur vous offre un sous-réseau d’adresses IP publiques et que vous souhaitez les exposer au NAT ou à différents services fonctionnant sur votre pare-feu, vous devrez également les ajouter à votre configuration HA. Comme l’ajout d’un VHID pour chaque IP rendrait le trafic CARP très bruyant, vous pouvez également ajouter un nouvel alias IP et choisir le VHID correct là où la première IP CARP est configurée.

Note

L’alias IP n’est pas synchronisé avec l’esclave, assurez-vous de l’ajouter également à votre deuxième machine.

Exemple : Mise à jour d’un cluster CARP HA

L’exploitation d’un cluster actif/passif redondant permet de n’avoir aucun temps d’arrêt (ou quasi-nul). Afin de réduire au minimum les temps d’arrêt lors de l’exécution des mises à jour, veuillez suivre les étapes suivantes :

  • Mettez à jour votre pare-feu secondaire et attendez qu’il soit à nouveau en ligne.

  • Sur votre pare-feu primaire, rendez-vous dans Interfaces >> IPs Virtuelles et cliquez sur Status.

  • Cliquez sur Mettre CARP en mode de maintenance persistent.

  • Votre unité secondaire est maintenant MASTER, vérifiez que tous les services tels que DHCP, VPN, NAT fonctionnent correctement.

  • Si vous vous êtes assuré que la mise à jour était correcte, mettez à jour votre unité primaire et cliquez sur Quitter le mode CARP de maintenance.

Avec ces étapes, vous ne perdrez pas trop de paquets et votre connexion existante sera également transférée. Notez également que l’entrée en mode persistant survit à un redémarrage.

Ressources

  1. Configuration du serveur maître ( Carp_example_master.xml )

  2. Configuration du serveur de secondaire / esclave ( Carp_example_backup.xml )