BTS SIO SISRLaboratoireLecture : 6 min

Les labos réseau du BTS : pfSense, DMZ, haute disponibilité et Active Directory sur deux sites

Mon premier pare-feu, monté pendant le BTS puis repris en laboratoire jusqu'à l'épreuve pratique : isoler un serveur web en DMZ, supprimer le pare-feu unique, puis faire vivre un même domaine sur deux sites reliés par leurs pfSense.

Contexte
Laboratoire d'école · VMware Workstation puis Proxmox, BTS SIO SISR
Période
Décembre 2023 – avril 2025
Mon rôle
Réalisé en autonomie, dans le cadre du BTS et de son épreuve pratique
Outils
pfSense · CARP · Proxmox / LXC · Apache · Windows Server · AD DS · repadmin

En bref

Le problème

Protéger un LAN avec un pare-feu open source, publier un serveur web sans exposer le réseau interne, ne plus dépendre d'un pare-feu unique, puis relier deux sites qui partagent un domaine.

Ce que j'ai fait

J'ai monté quatre labos : un LAN avec DHCP et résolveur DNS, une DMZ à trois interfaces, deux pfSense en cluster CARP, et deux sites reliés par un réseau de transit avec un contrôleur de domaine chacun.

Le résultat

Trois zones séparées avec un seul port publié, une panne DNS résolue, un cluster maître et secours sur deux IP virtuelles, et un domaine répliqué entre deux sites routés.

3zones séparées : WAN, LAN et DMZ
2pare-feu en cluster CARP, maître et secours
2sites reliés, un contrôleur de domaine chacun
5risques analysés avant de monter le cluster

Contexte

Quatre travaux de mon BTS SIO, en laboratoire virtualisé, autour d'une même question : protéger et relier des réseaux avec un pare-feu open source. Ordre réel : le pare-feu et son LAN (décembre 2023 – avril 2024), le cluster CARP (décembre 2024 – janvier 2025), le domaine sur deux sites, préparé pour l'épreuve pratique (octobre 2024 – février 2025), puis la DMZ (avril 2025).

Tout y est fictif, adresses et noms compris. En entreprise, le même annuaire a reçu un second contrôleur réel.

Ce que j'ai fait

1. Un pare-feu, un LAN et une panne DNS

Sous VMware Workstation : WAN en pont sur la box, LAN isolé en 192.168.14.0/24, et un client Windows Server 2022 qui ne sort que par pfSense. Une fois la sortie validée, j'ai activé le DHCP (plage .50 à .100) : c'est là qu'est apparue la panne DNS décrite plus bas.

2. Une DMZ pour publier un serveur web

Sur Proxmox, en suivant un TP guidé, pfSense reçoit une troisième interface : un serveur exposé à Internet ne doit pas atteindre le réseau interne s'il est compromis. Le serveur, un conteneur LXC Debian 12, a l'adresse réservée 192.168.10.250 ; il sort pour ses mises à jour (NAT sortant), et le port 80 du WAN est redirigé vers son Apache.

3. Deux pare-feu en cluster CARP

Après avoir comparé pfSense à Cisco ASA et Sophos XG, et analysé cinq risques dont l'échec silencieux de la synchronisation, j'ai monté deux pfSense, maître et secours. Ils partagent une IP virtuelle sur le WAN (192.168.10.1) et une sur le LAN (192.168.1.1) ; le maître pousse au secours les règles, le NAT, le DHCP et les paramètres système.

4. Un domaine Active Directory sur deux sites

Le scénario de l'épreuve pratique : un intégrateur fictif relie deux sites d'un client, protégés chacun par son pfSense, et y installe un seul domaine, lab.local. Si le lien tombe, chaque site doit continuer à authentifier ses utilisateurs.

  1. Relier les deux pare-feuLAN en .254, une interface sur un réseau de transit et une route statique vers le LAN d'en face ; règle d'autorisation sur le transit, puis pings croisés entre les sites.
  2. Un contrôleur par siteNouvelle forêt lab.local avec DNS intégré sur le site A, contrôle de la zone et des enregistrements SRV ; sur le site B, DNS pointé vers le premier contrôleur à travers le transit, jonction, puis promotion avec DNS et catalogue global.
  3. Vérifier la réplicationRéplication forcée depuis la console Sites et services, repadmin /replsummary et /showrepl, résolution croisée des deux noms, compte de test créé d'un côté et attendu de l'autre.
Schéma de deux sites A et B, chacun avec un pfSense en WAN DHCP et un contrôleur AD DS (réseaux 192.168.15.0/24 et 192.168.16.0/24), reliés par le réseau de transit 192.168.99.0/24.
Fig. 1Laboratoire : le schéma d'origine du domaine sur deux sites, avec les ponts Proxmox VMBR15, VMBR16 et VMBR199.
Voir les détails techniques

Pare-feu et LAN

Le WAN, en pont sur la box, a une adresse privée, d'où l'option « Block RFC1918 » décochée. Les interfaces ont été réassignées à la main avant de valider la sortie.

DMZ

Conteneur LXC Debian 12 : 1 cœur, 512 Mo de RAM, 8 Go.

DMZ à trois interfaces : Internet, LAN et DMZ reliés par pfSense Internet (WAN) IP publique port 80 redirigé vers 192.168.10.250 pfSense WAN · LAN · DMZ LAN 192.168.1.0/24 · postes DMZ 192.168.10.0/24 · Apache .250 Pointillés : DMZ → LAN, aucune règle de blocage explicite
Fig. 2La DMZ du laboratoire : un seul flux entrant, le port 80. Le flux DMZ → LAN, en pointillés, est celui que la première règle ci-dessous bloque.
Tableau Mappings du NAT Outbound pfSense : interface DMZ, source DMZ subnets, destination WAN subnets, adresse NAT WAN address.
Fig. 3Laboratoire : règle de NAT sortant permettant au réseau DMZ d'accéder à l'extérieur via l'adresse WAN.

Règles de la DMZ, dans l'ordre où je les poserais

OrdreActionSourceDestinationPorts
1BloquerDMZ netLAN netTous
2AutoriserDMZ netTout53 (TCP et UDP)
3AutoriserDMZ netTout80 et 443 (TCP)
4Bloquer (implicite)ToutToutTous

Cluster CARP

Schéma réseau de deux pfSense (WAN 192.168.10.2 et .3, LAN 192.168.1.2 et .3) partageant l'IP virtuelle 192.168.10.1, priorités CARP 100 (Master) et 50 (Backup), reliés à un switch de niveau 2 et à deux postes.
Fig. 4Laboratoire : schéma d'origine du cluster Master/Backup. Le lien noté « ActiveSync » entre les deux pare-feu correspond à la synchronisation XMLRPC (configuration) et pfsync (états).

Procédure de bascule : couper le maître, vérifier dans Status > CARP que le secours passe MASTER et que les clients sortent, puis observer le retour du maître.

Pour départager les nœuds, on règle le décalage CARP (skew 0 et 100) plutôt que la base d'annonce (1 contre 2). Deux règles du cluster sont aussi à reprendre : l'administration HTTPS ouverte sur le WAN, à fermer, et « LAN → tout » placée en tête, qui rend inutiles les règles du dessous puisque pfSense s'arrête à la première qui correspond.

Domaine sur deux sites

Pare-feuLANTransitRoute statique
pfSense A192.168.15.254192.168.99.1192.168.16.0/24 via 192.168.99.2
pfSense B192.168.16.254192.168.99.2192.168.15.0/24 via 192.168.99.1

Flux à laisser passer entre les deux sites : DNS (53), Kerberos (88), RPC (135 et sa plage dynamique), LDAP (389) et SMB (445). L'erreur typique d'un flux bloqué est la 1722, « serveur RPC indisponible ».

PowerShell · ce que j'ajouterais

# Déclarer les deux sites, leurs sous-réseaux et le lien entre eux
New-ADReplicationSite -Name "Site-A"
New-ADReplicationSite -Name "Site-B"
New-ADReplicationSubnet -Name "192.168.15.0/24" -Site "Site-A"
New-ADReplicationSubnet -Name "192.168.16.0/24" -Site "Site-B"
New-ADReplicationSiteLink -Name "A-B" -SitesIncluded "Site-A","Site-B" -Cost 100 -ReplicationFrequencyInMinutes 15

# Ranger chaque contrôleur dans son site
Move-ADDirectoryServer -Identity "DC1" -Site "Site-A"
Move-ADDirectoryServer -Identity "DC2" -Site "Site-B"

# Garder les preuves
repadmin /replsummary > C:\Preuves\replsummary.txt
dcdiag /e /q

L'incident

Internet répond, mais plus aucun nom ne se résout

Problème

Après le passage en DHCP, ping 8.8.8.8 répond, ping google.com échoue et nslookup renvoie « Query refused ».

Résolution

J'ai contrôlé les DNS de pfSense, puis son résolveur (activé, à l'écoute sur le LAN, récursif). Avec les serveurs amont 8.8.8.8 et 1.1.1.1 et le mode forwarding, les noms se résolvent après ipconfig /flushdns et /renew. Leçon : tester par IP et par nom séparément, et ne changer qu'un réglage à la fois.

Invite de commandes : nslookup interroge le serveur 192.168.14.1 et renvoie « Query refused » pour google.com.
Fig. 5Laboratoire : symptôme « Query refused » relevé avec nslookup avant la correction du DNS Resolver de pfSense.

Résultats

Cluster CARP : deux pfSense partagent une IP virtuelle sur le WAN et une sur le LAN Passerelle amont 192.168.10.254 WAN 192.168.10.0/24 IP virtuelle .1 · VHID 1 pfSense maître WAN .2 · LAN .2 état MASTER pfSense secours WAN .3 · LAN .3 état BACKUP synchro LAN 192.168.1.0/24 IP virtuelle .1 · VHID 2 Switch et clients passerelle : 192.168.1.1
Fig. 6Le cluster du laboratoire. Les clients ont pour passerelle l'IP virtuelle du LAN, jamais l'adresse d'un nœud.

Le LAN sort par pfSense et résout les noms. La page d'Apache, en DMZ, s'affiche depuis le LAN ; l'accès depuis Internet reste à démontrer. Le routage entre les deux sites et les deux contrôleurs sont en place, mais pour l'annuaire ils restent dans un seul site, Default-First-Site-Name.

Ce que ces labos ne prouvent pas : je n'ai gardé de trace ni d'un test de coupure du cluster, ni des sorties de repadmin. C'est ce qui sépare un labo réussi d'un labo démontré.

Sortie de systemctl status apache2 dans le conteneur CT-Debian : service enabled et active (running).
Fig. 7Laboratoire : service Apache actif dans le conteneur Debian placé en DMZ.

Ce que j'améliorerais

  • J'ajouterais en tête de la DMZ une règle qui bloque tout vers le LAN, puis une sortie limitée aux ports 53, 80 et 443.
  • Je ferais passer la synchronisation du cluster sur une interface dédiée, et j'ajouterais le NAT sortant vers l'IP virtuelle 192.168.10.1, pour que l'adresse de sortie ne change pas à la bascule.
  • Je déclarerais les deux sites Active Directory, leurs sous-réseaux et leur lien, et je relierais deux vrais sites par un tunnel IPsec ouvert aux seuls ports de l'annuaire.
  • Je testerais les coupures, du maître CARP puis du transit entre les sites, sorties datées de repadmin et dcdiag à l'appui.

La suite : éprouver la segmentation en l'attaquant dans un cyber range FortiGate, exposer un service réel dans une DMZ de production, puis auditer un annuaire réel, en 2026.

Compétences

  • pfSense
  • NAT et redirection de port
  • Segmentation en DMZ
  • Haute disponibilité CARP
  • Routage statique entre sites
  • Réplication Active Directory
  • Diagnostic DNS
  • Analyse de risques