Guide professionnel niveau avancé — pfSense 2.7+ · FreeBSD · OpenVPN · IPsec · VLAN · HAProxy · Snort / Suricata


Table des matières

  1. Prérequis matériels & environnement
  2. Installation de pfSense
  3. Configuration initiale & interfaces
  4. Règles de pare-feu avancées
  5. VLAN & segmentation réseau
  6. VPN — OpenVPN & IPsec
  7. IDS/IPS — Snort & Suricata
  8. Haute disponibilité (CARP)
  9. Supervision & alertes
  10. Bonnes pratiques & durcissement

1. Prérequis matériels & environnement

pfSense repose sur FreeBSD et requiert du matériel dédié ou virtualisé pour des performances optimales en production.

Composant Minimum Recommandé (Production) Notes
CPU 64-bit, 1 GHz Intel AES-NI, 4+ cœurs AES-NI obligatoire pour VPN performant
RAM 1 GB 8 GB+ 16 GB si IDS/IPS activé
Stockage 8 GB SSD 64 GB SSD NVMe Logs & packages gourmands
Interfaces réseau 2 NIC 4+ NIC Intel/Broadcom Éviter les NIC Realtek en prod
Connectivité 100 Mbps 1–10 Gbps Selon volume de trafic

ℹ️ Info — Pour la virtualisation (VMware ESXi / Proxmox), activez la passthrough de NIC (SR-IOV) pour des performances proches du bare-metal. Évitez les NIC virtuels pour de la production.

INTERNET RÉSEAU INTERNE Internet WAN MODEM/ONT FAI pfSense ● WAN em0 ● LAN em1 ● DMZ em2 ● MGMT em3 802.1Q VLAN Trunk 🔥 Firewall / NAT / VPN SWITCH L2/L3 Managed LAN CLIENTS LAN 192.168.1.0/24 VLAN 10 DMZ 10.0.10.0/24 VLAN 20 MGMT OOB 172.16.0.0/24 VLAN 99 VPN CLIENTS OpenVPN 10.8.0.0/24 SITE DISTANT IPsec S2S 192.168.2.0/24 ── LAN interne ── DMZ ── Management - - VPN tunnel - - Internet (non-trusted)

Fig. 1.1 — Architecture réseau complète avec pfSense en border firewall, segmentation VLAN et VPN


2. Installation de pfSense

Téléchargez l’image ISO depuis netgate.com et créez un media bootable.

Étapes d’installation

  1. Télécharger l’ISO officielle sur netgate.com/pfsense-plus-software (version CE ou Plus selon licence)
  2. Créer une clé USB bootable avec Balena Etcher ou Rufus (UEFI conseillé)
  3. Démarrer sur la clé — sélectionner Install pfSense dans le menu
  4. Choisir le mode de partitionnement : Auto ZFS recommandé pour la redondance
  5. Sélectionner le disque cible — confirmer la destruction des données
  6. Rebooter après installation et retirer le media

⚠️ Attention — Ne jamais installer pfSense sur le même disque que d’autres systèmes. Le partitionnement efface intégralement le disque cible.

FLUX D'INSTALLATION PFSENSE 01 Télécharger ISO netgate.com 02 Créer USB Boot Balena Etcher 03 Boot sur USB UEFI/Legacy 04 Partitionnement Auto ZFS ✓ Recommandé 05 Sélect. disque ⚠ Données effacées 06 Reboot ✓ Retirer USB 💡 ZFS offre la redondance, les snapshots et la vérification d'intégrité automatique vs UFS

Fig. 2.1 — Flux d’installation pfSense en 6 étapes — étape 4 (ZFS) est critique


3. Configuration initiale & interfaces

Au premier démarrage, pfSense lance un assistant accessible via la WebGUI sur https://192.168.1.1.

Accès initial WebGUI

URL      : https://192.168.1.1
Login    : admin
Password : pfsense

⚠ Changer immédiatement le mot de passe via System > User Manager

Attribution des interfaces

Naviguer vers Interfaces > Assignments. Identifier chaque interface physique via son adresse MAC ou via le test de déconnexion câble intégré.

Interface Rôle Adresse recommandée
WAN Liaison FAI / Internet DHCP ou IP statique FAI
LAN Réseau interne principal 192.168.1.1/24 (à changer)
OPT1 DMZ / Serveurs exposés 10.0.10.1/24
OPT2 Management OOB 172.16.0.1/24
INTERFACES > ASSIGNMENTS — PFSENSE pfSense WAN em0 DHCP / IP statique FAI LAN em1 192.168.1.1/24 OPT1 em2 10.0.10.1/24 (DMZ) OPT2 em3 172.16.0.1/24 (MGMT) INTERNET FAI / Modem LAN Postes / Serveurs DMZ Serveurs exposés MGMT Administration OOB WebGUI → https://192.168.1.1 · admin / pfsense

Fig. 3.1 — Assignation des interfaces réseau dans pfSense


4. Règles de pare-feu avancées

pfSense utilise pf (Packet Filter FreeBSD) comme moteur. Les règles s’appliquent de haut en bas, la première règle correspondante gagnant.

🚫 Critique — Ne jamais utiliser la règle “any to any” en production. Définissez toujours des alias nommés et des règles par service.

Création d’alias

Alias: ADMIN_HOSTS
Type: Host(s)
IPs: 10.0.0.10, 10.0.0.11, 172.16.0.5

Alias: SERVICES_WEB
Type: Port(s)
Ports: 80, 443, 8443

Exemple de règles LAN → WAN

Action Proto Source Dest. Port Description
PASS TCP LAN net any 443 HTTPS sortant
PASS UDP LAN net DNS servers 53 DNS autorisé
PASS TCP/UDP ADMIN_HOSTS any any Admins full access
BLOCK any any any any Deny-all implicite
LOGIQUE DE TRAITEMENT DES RÈGLES PARE-FEU (TOP-DOWN) 📦 Paquet entrant PASS Règle 1 — LAN → HTTPS (443) TCP · Source: LAN net · Dest: any · Port: 443 ✓ AUTORISÉ pas de match PASS Règle 2 — LAN → DNS (53) UDP · Source: LAN net · Dest: DNS servers · Port: 53 pas de match BLOCK Règle implicite — Deny All any · Source: any · Dest: any · Port: any ✗ BLOQUÉ ⚡ Première règle qui correspond = décision finale. L'ordre des règles est CRITIQUE.

Fig. 4.1 — Logique de traitement top-down des règles pfSense


5. VLAN & segmentation réseau

La segmentation via VLAN (802.1Q) est essentielle pour isoler les flux et limiter le rayon d’impact d’une compromission.

Configuration VLAN sur pfSense

  1. Naviguer vers Interfaces > VLANs — Cliquer sur Add
  2. Sélectionner l’interface parente (ex: igb1) et saisir le VLAN ID (ex: 20)
  3. Assigner le VLAN créé dans Interfaces > Assignments
  4. Activer l’interface et configurer son adresse IP
  5. Créer les règles de pare-feu inter-VLAN selon la politique de sécurité

ℹ️ Info — Configurez le switch amont en mode trunk sur le port connecté à pfSense. Utilisez un VLAN natif dédié (non-1) pour le management.

SEGMENTATION VLAN 802.1Q — PFSENSE pfSense Interface : em1 (trunk) VLAN 10 · VLAN 20 · VLAN 30 · VLAN 99 Inter-VLAN routing + Firewall 802.1Q encapsulation active TRUNK Switch L2 Manageable Port upstream = TRUNK · Ports clients = ACCESS VLAN 10 Utilisateurs / Postes 192.168.10.0/24 VLAN 20 Serveurs / DMZ 10.0.20.0/24 VLAN 30 IoT / Appareils 10.0.30.0/24 VLAN 99 Management OOB 172.16.99.0/24 ⚠ Isolation totale inter-VLAN sauf règles explicites

Fig. 5.1 — Segmentation en 4 VLANs avec trunk 802.1Q vers pfSense


6. VPN — OpenVPN & IPsec

pfSense supporte nativement OpenVPN (accès distant) et IPsec (site-à-site).

OpenVPN — Accès distant sécurisé

  1. Créer une CA interne : System > Cert. Manager > CAs > Add
  2. Générer un certificat serveur : System > Cert. Manager > Certificates
  3. Naviguer vers VPN > OpenVPN > Servers > Add
  4. Configurer : Protocol UDP, port 1194, TLS Authentication activée
  5. Choisir le réseau tunnel (ex: 10.8.0.0/24) et pousser les routes LAN
  6. Créer la règle WAN : autoriser UDP 1194 entrant
  7. Exporter les configs client via le package openvpn-client-export
# Paramètres sécurisés recommandés
tls-version-min 1.2
cipher AES-256-GCM
auth SHA256
tls-auth ta.key 0
remote-cert-tls server

IPsec — Tunnel site-à-site (IKEv2)

Phase Paramètre Valeur recommandée
Phase 1 Version IKE IKEv2
Phase 1 Encryption AES-256
Phase 1 Hash SHA-256
Phase 1 DH Group 14 (2048-bit)
Phase 2 Protocol ESP
Phase 2 Encryption AES-256-GCM
Phase 2 PFS Group 14
VPN — OPENVPN (ACCÈS DISTANT) + IPSEC (SITE-À-SITE) OPENVPN — ACCÈS DISTANT Client Distant OpenVPN Client Tunnel: 10.8.0.2 ☁ Internet UDP 1194 pfSense OpenVPN Server TLS + AES-256-GCM LAN interne 192.168.1.0/24 🔐 Chiffré 🔐 Chiffré IPSEC — SITE-À-SITE (IKEv2) Site A — HQ pfSense Master LAN: 192.168.1.0/24 WAN: 203.0.113.1 ☁ Internet IKEv2 · ESP · AES-256 · PFS G14 Site B — Agence pfSense / Fortigate LAN: 192.168.2.0/24 WAN: 198.51.100.1 💡 OpenVPN = mobilité individuelle · IPsec S2S = connexion permanente entre sites

Fig. 6.1 — Architecture VPN : OpenVPN (accès distant) et IPsec site-à-site en parallèle


7. IDS/IPS — Snort & Suricata

pfSense intègre Snort et Suricata comme packages IDS/IPS. Suricata est préféré pour ses performances multi-thread.

Installation de Suricata

  1. Naviguer vers System > Package Manager > Available Packages
  2. Rechercher et installer Suricata
  3. Aller dans Services > Suricata > Interfaces — Ajouter WAN
  4. Activer les sources de règles : ET Open, Snort Community Rules
  5. Configurer le mode : IDS (alerte) d’abord, puis IPS (blocage) après validation
  6. Activer la suppression des faux-positifs via les listes de suppression

⚠️ Attention — Commencez toujours en mode IDS uniquement pour analyser les faux-positifs avant d’activer le blocage.

PIPELINE IDS/IPS — SURICATA SUR PFSENSE Trafic WAN Entrant/Sortant Suricata Engine Analyse deep packet ET Open Rules Snort Community Rules Multi-thread · AF_PACKET Signature matchée ? NON PASS ✓ Trafic autorisé OUI Mode IDS Alerte + Log uniquement Mode IPS DROP + Alerte + Log Export Syslog SIEM / Graylog / ELK

Fig. 7.1 — Pipeline Suricata : IDS (alerte) vs IPS (blocage)


8. Haute disponibilité (CARP)

pfSense implémente la haute disponibilité via CARP et pfsync pour la synchronisation des états entre nœuds actif et passif.

Configuration HA

  1. Configurer une interface pfsync dédiée (réseau de synchronisation isolé)
  2. Sur le Master : System > High Avail. Sync — activer pfsync, configurer l’IP du peer
  3. Créer les VIPs CARP sur chaque interface (WAN, LAN, etc.)
  4. Configurer les règles et services pour utiliser les VIPs comme adresses
  5. Tester le failover en stoppant le Master et vérifiant la bascule automatique

Bon à savoir — En HA correctement configuré, le temps de bascule est inférieur à 1 seconde grâce à la synchronisation pfsync.

HAUTE DISPONIBILITÉ — CARP + PFSYNC ☁ Internet FAI VIP WAN CARP — 203.0.113.100 pfSense MASTER ● ACTIF WAN: 203.0.113.1 LAN: 192.168.1.1 CARP Priority: 100 pfSense BACKUP ○ STANDBY WAN: 203.0.113.2 LAN: 192.168.1.2 CARP Priority: 90 pfsync Sync états + config VIP LAN CARP — 192.168.1.254 ⚡ Failover < 1 sec si Master tombe

Fig. 8.1 — Architecture HA avec CARP VIPs partagées et pfsync


9. Supervision & alertes

Une bonne supervision combine les logs internes pfSense, l’export SNMP/syslog et des outils externes.

Configuration syslog externe

System > Advanced > Notifications

Remote Log Servers: 10.0.10.50:514
Protocol: UDP
Log contents: Firewall Events, DHCP, VPN, System

SNMP pour supervision réseau

  1. Installer le package Net-SNMP via le gestionnaire
  2. Configurer la communauté SNMP v3 avec authentification (éviter v1/v2c)
  3. Restreindre l’accès SNMP aux seules IP de supervision
  4. Intégrer dans Zabbix ou LibreNMS avec les OIDs pfSense
STACK DE SUPERVISION — PFSENSE pfSense Syslog UDP 514 SNMP v3 NetFlow / IPFIX RRDtool intégré Graylog / ELK Centralisation logs Zabbix / LibreNMS Supervision SNMP Grafana Dashboards métriques ntopng Analyse de flux Alertes : Email / Slack / PagerDuty Seuils CPU >80% · Down interface · Failed auth 💡 Rétention recommandée : 90 jours minimum pour conformité (PCI-DSS, ISO 27001)

Fig. 9.1 — Écosystème de supervision pfSense


10. Bonnes pratiques & durcissement

Domaine Action Priorité
Authentification MFA sur WebGUI (TOTP) 🔴 CRITIQUE
Accès WebGUI uniquement sur interface LAN/MGMT 🔴 CRITIQUE
Protocoles Désactiver HTTP, forcer HTTPS + HSTS 🔴 CRITIQUE
SSH Clé publique uniquement, port non-standard 🟠 ÉLEVÉ
Mises à jour Patch régulier, snapshots avant MAJ 🟠 ÉLEVÉ
Logs Export syslog externe + rétention 90 jours min 🟠 ÉLEVÉ
Sauvegarde Export config chiffré automatisé quotidien 🟡 STANDARD
DNS DNS Resolver avec DNSSEC activé 🟡 STANDARD

🔐 Critique — Ne jamais exposer la WebGUI sur le WAN. Si un accès distant est nécessaire, passez systématiquement par le VPN.

RÉDUCTION DE LA SURFACE D'ATTAQUE — PFSENSE HARDENING 🛡 pfSense Hardened ⛔ WebGUI non exposée sur WAN 🔐 MFA (TOTP) WebGUI 🔒 HTTPS + HSTS forcé 🔑 SSH — clé pub only 💾 Backup config chiffré 📋 Syslog externe 90j 🔄 MAJ régulières + snapshots 🌐 DNSSEC activé Chaque mesure réduit la surface d'attaque — appliquer en priorité les éléments CRITIQUES (rouge)

Fig. 10.1 — Mesures de durcissement pfSense — réduction de la surface d’attaque


pfSense™ est une marque déposée de Netgate. Ce tutoriel est fourni à des fins éducatives.