🛠 Outils IT
🛠 78 outils 📚 32 docs
🤖 Assistant

pfSense

1. Installation et configuration initiale

1.1 Telechargement de l'ISO

Rendez-vous sur le site officiel https://www.pfsense.org/download/ pour telecharger l'image d'installation. Choisissez l'architecture AMD64 et le format USB Memstick Installer (ou ISO pour une VM).

1.2 Creation du support d'installation

  • Rufus (Windows) : Selectionnez l'image, mode DD Image, lancez l'ecriture.
  • Etcher (Windows/Mac/Linux) : Selectionnez l'image, choisissez la cle USB, flashez.
  • Linux CLI : dd if=pfSense-CE-memstick-*.img of=/dev/sdX bs=1M status=progress

1.3 Installation pas a pas

  1. Bootez sur la cle USB ou montez l'ISO dans la VM
  2. Acceptez les conditions d'utilisation
  3. Selectionnez Install pfSense
  4. Choisissez la disposition clavier (French pour AZERTY si besoin)
  5. Selectionnez le partitionnement : Auto (ZFS) recommande ou Auto (UFS) pour un disque simple
  6. Selectionnez le disque cible
  7. Patientez pendant l'installation puis rebootez
Astuce : Pour une VM Proxmox, assignez au minimum 2 interfaces reseau (une WAN, une LAN), 1 Go de RAM et 8 Go de disque. Le type de machine q35 avec VirtIO est recommande pour de meilleures performances.

1.4 Configuration console initiale

Au premier demarrage, pfSense affiche un menu console. Il detecte les interfaces reseau et demande leur assignation :

Do VLANs need to be set up first? n

Enter the WAN interface name: em0    (ou vtnet0, igb0 selon le materiel)
Enter the LAN interface name: em1    (ou vtnet1, igb1)
Enter the Optional 1 interface name: (laisser vide ou ajouter si besoin)

Do you want to proceed? y

Menu console disponible apres l'assignation :

0) Logout (SSH only)                  9) pfTop
1) Assign Interfaces                 10) Filter Logs
2) Set interface(s) IP address       11) Restart webConfigurator
3) Reset webConfigurator password    12) PHP shell + pfSense tools
4) Reset to factory defaults         13) Update from console
5) Reboot system                     14) Disable Secure Shell (sshd)
6) Halt system                       15) Restore recent configuration
7) Ping host                         16) Restart PHP-FPM
8) Shell

1.5 Configuration IP du LAN

Par defaut, le LAN est configure sur 192.168.1.1/24. Pour modifier :

# Depuis le menu console, choisir l'option 2
Enter the number of the interface to configure: 2 (LAN)
Enter the new LAN IPv4 address: 192.168.1.1
Enter the new LAN IPv4 subnet bit count: 24
For a WAN, enter the new LAN IPv4 upstream gateway: (laisser vide pour LAN)
Enter the new LAN IPv6 address: (laisser vide ou configurer)
Do you want to enable the DHCP server on LAN? y
Enter the start address of the IPv4 client address range: 192.168.1.100
Enter the end address of the IPv4 client address range: 192.168.1.254
Do you want to revert to HTTP as the webConfigurator protocol? n

1.6 Wizard de configuration initiale (WebGUI)

Connectez-vous a l'interface web depuis un poste sur le LAN :

https://192.168.1.1
Utilisateur : admin
Mot de passe : pfsense

Le wizard vous guide a travers :

  1. General Information : Hostname, domaine, serveurs DNS
  2. Time Server : Fuseau horaire (ex: America/Toronto ou Europe/Paris)
  3. WAN Configuration : DHCP, IP statique ou PPPoE selon votre FAI
  4. LAN Configuration : Adresse IP du LAN
  5. Admin Password : Changez imperativement le mot de passe par defaut
  6. Reload : Appliquer la configuration
Attention : Changez immediatement le mot de passe par defaut (pfsense) lors du wizard initial. Un firewall avec les identifiants par defaut est une faille de securite critique.

1.7 Tableau de bord (Dashboard)

Le tableau de bord est personnalisable via le bouton + en haut. Widgets recommandes :

  • System Information : Version, uptime, CPU, RAM
  • Interfaces : Etat des interfaces reseau
  • Gateways : Etat des passerelles
  • Traffic Graphs : Graphes de trafic en temps reel
  • Services Status : Etat des services actifs
  • OpenVPN : Connexions VPN actives

2. Configuration des interfaces

2.1 Assignation des interfaces

Navigation : Interfaces > Assignments

Cette page permet d'assigner les interfaces physiques (ou virtuelles) a des roles logiques :

Interface logiqueRoleExemple physique
WANConnexion Internet (reseau non fiable)em0, igb0, vtnet0
LANReseau local (reseau fiable)em1, igb1, vtnet1
OPT1Interface optionnelle (DMZ, Wi-Fi, etc.)em2, igb2, vtnet2
OPT2Interface optionnelle supplementaireem3, igb3, vtnet3

Pour ajouter une interface, selectionnez le port physique dans le menu deroulant et cliquez sur + Add.

2.2 Configuration de l'interface WAN

Navigation : Interfaces > WAN

  • IPv4 Configuration Type : DHCP (automatique) ou Static IPv4 (IP fixe)
  • IPv6 Configuration Type : None, DHCP6, SLAAC, Static IPv6
  • MAC Address : Optionnel, pour cloner une adresse MAC (spoofing MAC)
  • Block private networks : Cocher pour bloquer les plages RFC1918 sur le WAN
  • Block bogon networks : Cocher pour bloquer les adresses non routables

Configuration WAN en IP statique :

IPv4 Configuration Type : Static IPv4
IPv4 Address           : 203.0.113.10 / 24
IPv4 Upstream Gateway  : 203.0.113.1 (creer via System > Routing > Gateways)

2.3 Configuration de l'interface LAN

Navigation : Interfaces > LAN

IPv4 Configuration Type : Static IPv4
IPv4 Address           : 192.168.1.1 / 24
IPv4 Upstream Gateway  : None (c'est le firewall qui est la gateway du LAN)

2.4 Ajouter une interface OPT (DMZ)

Navigation : Interfaces > Assignments puis cliquer sur l'onglet de l'interface OPT1.

  1. Cocher Enable interface
  2. Renommer la description en DMZ
  3. IPv4 Configuration Type : Static IPv4
  4. IPv4 Address : 10.0.0.1/24
  5. Sauvegarder et appliquer

2.5 Configuration des VLANs

Navigation : Interfaces > Assignments > VLANs

  1. Cliquer sur + Add
  2. Parent Interface : Selectionnez l'interface physique (ex: em1)
  3. VLAN Tag : Numero du VLAN (ex: 10, 20, 30)
  4. VLAN Priority : Laisser vide (defaut)
  5. Description : Nom descriptif (ex: VLAN_SERVEURS)
  6. Sauvegarder

Ensuite, retournez dans Interfaces > Assignments et assignez le VLAN cree a une nouvelle interface OPT.

Astuce : Les VLANs necessitent un switch gere (managed switch) configure en mode trunk sur le port connecte a pfSense. Sans switch compatible 802.1Q, les VLANs ne fonctionneront pas.

3. Regles de firewall

3.1 Concepts fondamentaux

Le firewall pfSense fonctionne selon ces principes :

ConceptDescription
StatefulpfSense garde en memoire les connexions etablies. Une regle qui autorise le trafic sortant autorise automatiquement les reponses entrantes associees.
First matchLes regles sont evaluees de haut en bas. La premiere regle qui correspond est appliquee. L'ordre est donc critique.
Implicit denyPar defaut, tout trafic qui ne correspond a aucune regle est bloque (deny implicite en fin de liste).
Per-interfaceLes regles s'appliquent sur une interface specifique, en direction entrante (inbound) par rapport a cette interface.
Anti-lockoutUne regle speciale sur le LAN empeche de se bloquer soi-meme (desactivable dans System > Advanced).
Attention : Les regles de firewall s'appliquent dans le sens entrant sur chaque interface. Par exemple, une regle sur le LAN filtre le trafic qui entre dans pfSense depuis le LAN (donc le trafic genere par les postes LAN).

3.2 Regles sur l'interface WAN

Navigation : Firewall > Rules > WAN

Par defaut, le WAN bloque tout le trafic entrant. On ajoute des regles uniquement pour les services exposes :

Exemple : Autoriser HTTP/HTTPS entrant vers un serveur web

ChampValeur
ActionPass
InterfaceWAN
ProtocolTCP
SourceAny
DestinationWAN Address
Destination Port RangeHTTP (80) / HTTPS (443)
DescriptionAutoriser HTTP/HTTPS entrant

3.3 Regles sur l'interface LAN

Navigation : Firewall > Rules > LAN

Par defaut, le LAN a une regle qui autorise tout le trafic sortant. Vous pouvez la restreindre :

Exemple : Autoriser uniquement DNS, HTTP, HTTPS depuis le LAN

OrdreActionProtocolSourceDestinationPortDescription
1PassTCP/UDPLAN netAny53 (DNS)Autoriser DNS
2PassTCPLAN netAny80, 443Autoriser HTTP/HTTPS
3PassICMPLAN netAny*Autoriser Ping
4BlockAnyLAN netAny*Bloquer tout le reste

3.4 Alias

Navigation : Firewall > Aliases

Les alias permettent de regrouper des IP, reseaux ou ports sous un nom reutilisable dans les regles :

TypeNomValeursUsage
Host(s)Serveurs_Web10.0.0.10, 10.0.0.11Groupe de serveurs
Network(s)RFC191810.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16Reseaux prives
Port(s)Ports_Web80, 443, 8080, 8443Ports HTTP/HTTPS
URL TableBlacklistURL vers un fichier de blocageListes dynamiques
Astuce : Utilisez toujours des alias plutot que des adresses IP en dur dans les regles. Cela simplifie enormement la maintenance : modifier un alias met a jour automatiquement toutes les regles qui l'utilisent.

3.5 Schedules (planification)

Navigation : Firewall > Schedules

Les schedules permettent d'activer des regles uniquement a certaines heures ou certains jours :

  1. Creer un schedule (ex: Heures_Bureau : Lun-Ven 8h-18h)
  2. Dans une regle de firewall, selectionnez le schedule dans Advanced Options > Schedule

3.6 Floating Rules

Navigation : Firewall > Rules > Floating

Les floating rules sont des regles speciales qui peuvent s'appliquer a plusieurs interfaces et dans les deux directions (in/out). Elles sont evaluees avant les regles d'interface.

Cas d'usage typiques :

  • Bloquer un trafic sur toutes les interfaces en une seule regle
  • Appliquer du traffic shaping (QoS)
  • Regles de sortie (direction Out)
Attention : Par defaut, une floating rule avec l'option Quick cochee sera traitee avant toutes les autres regles. Sans Quick, elle agit comme un "match" pour le logging ou le traffic shaping sans bloquer/autoriser definitivement.

4. NAT (Network Address Translation)

4.1 Port Forwarding (redirection de port)

Navigation : Firewall > NAT > Port Forward

Le port forwarding redirige le trafic entrant sur le WAN vers un serveur interne.

Exemple : Rediriger le port 443 vers un serveur web interne

ChampValeur
InterfaceWAN
ProtocolTCP
SourceAny
DestinationWAN Address
Destination Port RangeHTTPS (443)
Redirect Target IP10.0.0.10
Redirect Target Port443
DescriptionHTTPS vers serveur web DMZ
Filter rule associationAdd associated filter rule
Astuce : L'option Add associated filter rule cree automatiquement la regle de firewall correspondante sur le WAN. Sinon, vous devrez la creer manuellement.

4.2 NAT 1:1 (un pour un)

Navigation : Firewall > NAT > 1:1

Le NAT 1:1 mappe une adresse IP publique complete vers une adresse IP privee. Tout le trafic destine a l'IP publique est redirige vers l'IP privee.

ChampValeur
InterfaceWAN
External subnet IP203.0.113.20
Internal IP10.0.0.10 / 32
DestinationAny
DescriptionNAT 1:1 serveur web
Attention : Le NAT 1:1 ne cree PAS de regles de firewall. Vous devez creer les regles sur l'interface WAN pour autoriser le trafic vers l'IP interne.

4.3 Outbound NAT

Navigation : Firewall > NAT > Outbound

Le NAT sortant controle comment les adresses internes sont traduites en sortie vers Internet :

ModeDescriptionUsage
AutomaticpfSense genere automatiquement les regles de NAT sortantConfiguration standard, un seul WAN
HybridRegles automatiques + regles manuelles personnaliseesRecommande pour personnaliser sans tout refaire
ManualUniquement les regles manuellesControle total, multi-WAN, VPN
DisablePas de NAT sortantpfSense en mode pont (bridge)

Exemple : Forcer le trafic d'un serveur a sortir avec une IP specifique

En mode Hybrid ou Manual, ajoutez une regle :

ChampValeur
InterfaceWAN
Source10.0.0.10 / 32
DestinationAny
Translation Address203.0.113.20
DescriptionSortie serveur web via IP dediee

4.4 NAT Reflection

Navigation : System > Advanced > Firewall & NAT

Le NAT Reflection permet aux machines internes d'acceder aux services publics heberges derriere pfSense en utilisant l'adresse IP publique (au lieu de l'IP interne).

ModeDescription
DisablePas de reflection (defaut)
NAT + ProxyUtilise un proxy pour la reflection. Plus compatible mais plus lent.
Pure NATUtilise des regles NAT. Meilleure performance, necessite des regles outbound supplementaires.
Astuce : Plutot que d'activer le NAT Reflection, la meilleure pratique est d'utiliser le DNS Resolver de pfSense avec des Host Overrides pour que les machines internes resolvent le nom de domaine directement vers l'IP privee (split DNS).

5. DMZ (Zone Demilitarisee)

5.1 Architecture DMZ

La DMZ est un reseau isole qui heberge les serveurs accessibles depuis Internet (serveur web, mail, etc.) tout en les separant du LAN :

Internet
    |
 [WAN] --- pfSense --- [LAN] --- Postes de travail (192.168.1.0/24)
                |
              [DMZ] --- Serveurs exposes (10.0.0.0/24)

5.2 Creation de l'interface DMZ

  1. Interfaces > Assignments : Ajouter l'interface physique comme OPT1
  2. Interfaces > OPT1 :
    • Enable : Cocher
    • Description : DMZ
    • IPv4 Type : Static IPv4
    • IPv4 Address : 10.0.0.1/24
  3. Sauvegarder et appliquer les changements

5.3 Regles de firewall DMZ

Le principe est : le LAN peut acceder a la DMZ, la DMZ ne peut PAS acceder au LAN, la DMZ a un acces Internet limite.

Regles sur l'interface DMZ (Firewall > Rules > DMZ) :

OrdreActionProtocolSourceDestinationPortDescription
1BlockAnyDMZ netLAN net*Bloquer DMZ vers LAN
2PassTCP/UDPDMZ netAny53Autoriser DNS sortant
3PassTCPDMZ netAny80, 443Autoriser HTTP/HTTPS sortant (mises a jour)
4PassUDPDMZ netAny123Autoriser NTP
5BlockAnyDMZ netAny*Bloquer tout le reste

Regles sur l'interface LAN pour acceder a la DMZ :

ActionProtocolSourceDestinationPortDescription
PassTCPLAN netDMZ net22SSH vers DMZ (administration)
PassTCPLAN netDMZ net80, 443HTTP/HTTPS vers DMZ
PassICMPLAN netDMZ net*Ping vers DMZ

5.4 Exemple : Serveur web en DMZ

  1. Serveur web sur 10.0.0.10 en DMZ (Apache/Nginx sur le port 443)
  2. Firewall > NAT > Port Forward : Rediriger le port 443 du WAN vers 10.0.0.10:443
  3. Firewall > Rules > WAN : Regle creee automatiquement (ou manuellement) pour autoriser le trafic
  4. Firewall > Rules > DMZ : Bloquer tout acces de la DMZ vers le LAN

5.5 Exemple : Serveur mail en DMZ

Ports a rediriger depuis le WAN vers le serveur mail (ex: 10.0.0.20) :

PortProtocoleService
25TCPSMTP (reception)
587TCPSMTP Submission (envoi authentifie)
993TCPIMAPS (lecture securisee)
443TCPWebmail (HTTPS)
Astuce : Pour un serveur mail, autorisez egalement le trafic sortant SMTP (port 25) depuis la DMZ vers Internet pour que le serveur puisse envoyer des emails. Certains FAI bloquent le port 25 sortant : verifiez aupres de votre fournisseur.

6. HAProxy

6.1 Installation du package

Navigation : System > Package Manager > Available Packages

  1. Rechercher haproxy
  2. Cliquer sur Install a cote de haproxy (ou haproxy-devel pour la version de developpement)
  3. Confirmer l'installation

Apres installation, le menu est accessible via Services > HAProxy.

6.2 Configuration globale

Navigation : Services > HAProxy > Settings

  • Enable HAProxy : Cocher
  • Maximum connections : 1000 (ajuster selon les ressources)
  • Internal stats port : 2200 (port pour les statistiques)
  • Internal stats refresh rate : 10 secondes
  • Syslog host : 127.0.0.1 (pour les logs locaux)

6.3 Configuration des backends (serveurs)

Navigation : Services > HAProxy > Backend

Un backend definit un ou plusieurs serveurs de destination :

Exemple : Backend pour un serveur web unique

ChampValeur
Namebackend_web_principal
Server list
  Namesrv-web01
  Address10.0.0.10
  Port443
  SSLCocher (si le backend est en HTTPS)
Health checkingHTTP
Health check URI/
Health check HTTP versionHTTP/1.1

Exemple : Backend avec load balancing

ChampValeur
Namebackend_web_cluster
BalanceRound Robin
Server list :
  srv-web0110.0.0.10:443
  srv-web0210.0.0.11:443
  srv-web0310.0.0.12:443

6.4 Algorithmes de load balancing

AlgorithmeDescriptionUsage
Round RobinDistribution sequentielle entre les serveursServeurs identiques, charge equivalente
Least ConnectionsEnvoie vers le serveur ayant le moins de connexions activesServeurs de capacites differentes
SourceHash de l'IP source (persistance de session)Applications avec sessions (sans sticky cookie)
URIHash de l'URI demandeeCache distribue

6.5 Configuration des frontends (ecoute)

Navigation : Services > HAProxy > Frontend

Un frontend definit comment HAProxy ecoute les connexions entrantes :

Exemple : Frontend HTTPS avec SSL offloading

ChampValeur
Namefrontend_https
StatusActive
External addressWAN Address (IPv4)
Port443
Typehttp / https (offloading)
SSL Offloading - CertificateSelectionner le certificat SSL
Default backendbackend_web_principal

6.6 ACLs (routage par nom de domaine)

Les ACLs permettent de router le trafic vers differents backends selon le nom de domaine demande :

Dans le frontend, section Access Control Lists :

ACL NameExpressionValue
acl_site1Host matcheswww.site1.com
acl_site2Host matcheswww.site2.com
acl_apiPath starts with/api/

Section Actions :

ActionACLBackend
Use Backendacl_site1backend_site1
Use Backendacl_site2backend_site2
Use Backendacl_apibackend_api

6.7 SSL Offloading

Le SSL offloading permet a HAProxy de gerer le chiffrement SSL/TLS, dechargeant les serveurs backend :

  1. Importez votre certificat SSL dans System > Cert Manager > Certificates
  2. Dans le frontend, selectionnez le type http / https (offloading)
  3. Selectionnez le certificat dans SSL Offloading > Certificate
  4. Pour plusieurs certificats (SNI), ajoutez-les dans Additional certificates
Astuce : Combinez HAProxy avec le package ACME (Let's Encrypt) de pfSense pour obtenir des certificats SSL gratuits et automatiquement renouveles. Configurez ACME pour utiliser le mode standalone ou DNS validation.

6.8 Health checks

Les health checks permettent de verifier que les serveurs backend sont operationnels :

TypeDescriptionConfiguration
TCPVerifie que le port est ouvertAucune config supplementaire
HTTPVerifie une reponse HTTP 200URI : /health ou /
SSLVerifie la connexion SSLAvec ou sans verification du certificat

Parametres importants dans le backend :

  • Check interval : 5000 ms (frequence de verification)
  • Health fall threshold : 3 (nombre d'echecs avant de declarer le serveur hors service)
  • Health rise threshold : 2 (nombre de succes avant de remettre en service)
Attention : Apres toute modification de HAProxy, cliquez sur Apply Changes dans le bandeau jaune en haut de page. Les modifications ne sont pas appliquees automatiquement.

7. OpenVPN

7.1 Wizard OpenVPN (methode recommandee)

Navigation : VPN > OpenVPN > Wizards

Le wizard simplifie la creation d'un serveur VPN Road Warrior (acces distant) :

  1. Type of Server : Local User Access
  2. Certificate Authority : Creer un nouveau CA
    • Descriptive name : VPN-CA
    • Key length : 2048 ou 4096
    • Lifetime : 3650 jours (10 ans)
  3. Server Certificate : Creer un nouveau certificat serveur
    • Descriptive name : VPN-Server-Cert
  4. Server Setup :
    • Interface : WAN
    • Protocol : UDP on IPv4 only
    • Local Port : 1194
    • Tunnel Network : 10.10.0.0/24
    • Local Network : 192.168.1.0/24 (reseau LAN accessible via VPN)
    • Concurrent Connections : 10 (ajuster selon les besoins)
    • DNS Server 1 : 192.168.1.1 (pfSense)
  5. Firewall Rules : Cocher les deux options pour creer automatiquement les regles

7.2 Creer les utilisateurs VPN

Navigation : System > User Manager

  1. Cliquer sur + Add
  2. Username : jean.dupont
  3. Password : Mot de passe fort
  4. Cocher Click to create a user certificate
  5. Certificate Authority : Selectionner le CA cree precedemment
  6. Sauvegarder

7.3 Export de la configuration client

Installez le package openvpn-client-export :

  1. System > Package Manager > Available Packages
  2. Installer openvpn-client-export

Navigation : VPN > OpenVPN > Client Export

  • Host Name Resolution : Adresse IP publique ou nom DNS du pfSense
  • Pour chaque utilisateur, telechargez le fichier de configuration :
FormatUsage
Inline Configurations - Most ClientsFichier .ovpn universel (Windows, Mac, Linux, Android, iOS)
Windows InstallerInstallateur Windows avec config integree
Viscosity BundlePour le client Viscosity (Mac/Windows)

7.4 VPN Site-to-Site (pont entre deux pfSense)

Pour connecter deux reseaux distants via un tunnel VPN :

Sur le pfSense serveur (site principal) :

Navigation : VPN > OpenVPN > Servers > + Add

ChampValeur
Server ModePeer to Peer (Shared Key)
ProtocolUDP on IPv4 only
Local Port1195 (different du VPN Road Warrior)
Shared KeyGenerer automatiquement (cocher Auto generate)
Tunnel Network10.10.1.0/30
Remote Network192.168.2.0/24 (reseau du site distant)

Sur le pfSense client (site distant) :

Navigation : VPN > OpenVPN > Clients > + Add

ChampValeur
Server ModePeer to Peer (Shared Key)
ProtocolUDP on IPv4 only
Server host or addressIP publique du pfSense serveur
Server port1195
Shared KeyColler la cle partagee generee sur le serveur
Tunnel Network10.10.1.0/30
Remote Network192.168.1.0/24 (reseau du site principal)
Attention : Pour le site-to-site, n'oubliez pas de creer les regles de firewall sur les deux pfSense : sur l'interface WAN (autoriser UDP 1195) et sur l'interface OpenVPN (autoriser le trafic entre les reseaux).

7.5 Gestion des certificats

Navigation : System > Cert Manager

OngletDescription
CAsAutorites de certification (CA racine pour signer les certificats)
CertificatesCertificats serveur et client
Certificate RevocationListes de revocation (CRL) pour revoquer un certificat compromis

Pour revoquer l'acces d'un utilisateur VPN :

  1. Allez dans System > Cert Manager > Certificate Revocation
  2. Selectionnez le CA concernee puis + Add or Import CRL
  3. Ajoutez le certificat de l'utilisateur a la CRL
  4. Dans la configuration du serveur OpenVPN, selectionnez cette CRL
Astuce : Utilisez des certificats individuels par utilisateur plutot qu'un certificat partage. Cela permet de revoquer l'acces d'un utilisateur specifique sans affecter les autres.

8. Configuration LDAP

8.1 Ajout d'un serveur d'authentification LDAP

Navigation : System > User Manager > Authentication Servers > + Add

Exemple avec Active Directory :

ChampValeur
Descriptive nameAD-Principal
TypeLDAP
Hostname or IP192.168.1.50 (IP du controleur de domaine)
Port value389 (LDAP) ou 636 (LDAPS)
TransportTCP - Standard ou SSL/TLS - Encrypted
Protocol version3
Search scopeEntire Subtree
Base DNDC=entreprise,DC=local
Authentication containersOU=Utilisateurs,DC=entreprise,DC=local
Extended queryCocher, puis : memberOf=CN=VPN-Users,OU=Groupes,DC=entreprise,DC=local
Bind credentials - User DNCN=svc-pfsense,OU=Services,DC=entreprise,DC=local
Bind credentials - PasswordMot de passe du compte de service
User naming attributesamAccountName
Group naming attributecn
Group member attributememberOf
Astuce : Utilisez un compte de service dedie avec des droits en lecture seule pour le bind LDAP. Ne jamais utiliser un compte administrateur de domaine. Pensez a cocher le bouton Select a container pour naviguer dans l'arborescence AD.

8.2 Groupes LDAP

Navigation : System > User Manager > Groups

Vous pouvez mapper des groupes LDAP/AD avec des privileges pfSense :

  1. Creer un groupe local avec le meme nom que le groupe AD
  2. Assigner des privileges au groupe (ex: acces VPN, acces admin)
  3. Les utilisateurs AD membres de ce groupe heritent automatiquement des privileges

8.3 Integration avec OpenVPN

Pour que le serveur OpenVPN utilise l'authentification LDAP/AD :

Navigation : VPN > OpenVPN > Servers (editer le serveur existant)

  • Backend for authentication : Selectionner AD-Principal

Les utilisateurs pourront alors se connecter au VPN avec leurs identifiants Active Directory.

Attention : Si vous activez l'authentification LDAP pour OpenVPN, assurez-vous que le serveur LDAP/AD est bien joignable depuis pfSense. En cas de panne du controleur de domaine, les connexions VPN echoueront. Prevoyez un serveur LDAP secondaire si possible.

8.4 Portail captif avec LDAP

Navigation : Services > Captive Portal

  1. Creer une nouvelle zone (ex: WiFi_Invite)
  2. Cocher Enable Captive Portal
  3. Interface : Selectionner l'interface Wi-Fi ou VLAN invite
  4. Authentication Method : Use an Authentication backend
  5. Authentication Server : AD-Principal
  6. Configurer les options supplementaires :
    • Idle timeout : 60 minutes
    • Hard timeout : 480 minutes (8 heures)
    • Concurrent user logins : 1
  7. Personnaliser la page de connexion (onglet Portal Page Contents) en HTML
  8. Sauvegarder
Astuce : Pour le portail captif, creez un groupe AD specifique (ex: Portail-WiFi) et utilisez l'Extended query pour limiter l'acces aux membres de ce groupe uniquement.

9. Spanning Tree (STP)

9.1 Concepts STP

Le Spanning Tree Protocol (STP) empeche les boucles reseau dans les topologies avec des liens redondants. pfSense supporte STP lorsque des interfaces sont configurees en mode bridge.

ProtocoleStandardConvergenceDescription
STP802.1D30-50 secondesVersion originale, convergence lente
RSTP802.1w1-2 secondesVersion rapide, recommandee

9.2 Configuration d'un bridge

Navigation : Interfaces > Assignments > Bridges

  1. Cliquer sur + Add
  2. Member Interfaces : Selectionner les interfaces a ponter (ex: OPT1 et OPT2)
  3. Description : Nom descriptif (ex: Bridge_LAN)

9.3 Activation de STP/RSTP sur un bridge

Dans les options avancees du bridge :

ParametreDescriptionValeur recommandee
Enable STP/RSTPActive le protocole Spanning TreeCocher
ProtocolSTP ou RSTPRSTP (convergence rapide)
STP PriorityPriorite du bridge (plus bas = prioritaire)32768 (defaut) ou plus bas pour root bridge
Forward DelayDelai avant de passer en forwarding15 secondes (defaut STP)
Hello TimeIntervalle entre les BPDU2 secondes
Max AgeDuree de vie maximale des BPDU20 secondes

9.4 Priorite par interface (portfast equivalent)

Pour chaque interface membre du bridge, vous pouvez configurer :

  • STP Priority (par interface) : Priorite du port dans le calcul STP
  • STP Path Cost : Cout du chemin (plus bas = prefere)
Attention : L'utilisation de bridges dans pfSense reduit les performances par rapport au routage classique. Preferez le routage inter-VLAN quand c'est possible. Le bridging est surtout utile pour le mode transparent (firewall invisible sur le reseau).

10. Trunk et VLANs

10.1 Concept du trunk 802.1Q

Un trunk est un lien reseau qui transporte le trafic de plusieurs VLANs sur un seul cable physique. Chaque trame est etiquetee (tagged) avec son numero de VLAN.

pfSense (em1 = trunk)
    |
    | 802.1Q trunk (VLAN 10, 20, 30)
    |
Switch gere (port trunk)
    |--- Port access VLAN 10 --- Serveurs
    |--- Port access VLAN 20 --- Postes de travail
    |--- Port access VLAN 30 --- Wi-Fi / Invites

10.2 Creation des VLANs sur pfSense

Navigation : Interfaces > Assignments > VLANs

Creer un VLAN pour chaque reseau logique :

Parent InterfaceVLAN TagDescriptionReseau
em110VLAN_SERVEURS10.10.10.0/24
em120VLAN_POSTES10.10.20.0/24
em130VLAN_INVITES10.10.30.0/24

10.3 Assignation des VLANs aux interfaces

Navigation : Interfaces > Assignments

  1. Dans le menu deroulant Available network ports, selectionnez VLAN 10 on em1
  2. Cliquer sur + Add
  3. Repeter pour chaque VLAN
  4. Configurer chaque interface (OPT1, OPT2, OPT3) :
    • Activer l'interface
    • Renommer (ex: VLAN10_SERVEURS)
    • Assigner une IP statique (ex: 10.10.10.1/24)

10.4 Inter-VLAN routing

Par defaut, pfSense route le trafic entre les VLANs. Vous devez creer des regles de firewall pour controler quel VLAN peut communiquer avec quel autre :

Exemple de politique inter-VLAN :

SourceDestinationActionDescription
VLAN 10 (Serveurs)VLAN 20 (Postes)BlockServeurs ne contactent pas les postes
VLAN 20 (Postes)VLAN 10 (Serveurs)Pass (ports specifiques)Postes accedent aux serveurs
VLAN 30 (Invites)VLAN 10, 20BlockInvites isoles des autres VLANs
VLAN 30 (Invites)InternetPass (80, 443)Invites ont acces web uniquement

10.5 DHCP par VLAN

Navigation : Services > DHCP Server

Chaque interface VLAN apparait comme un onglet. Configurez un serveur DHCP independant pour chaque VLAN :

ParametreVLAN 10VLAN 20VLAN 30
EnableOuiOuiOui
Range10.10.10.100 - .20010.10.20.100 - .20010.10.30.100 - .200
DNS Server10.10.10.110.10.20.110.10.30.1
Gateway10.10.10.110.10.20.110.10.30.1
Domainsrv.localcorp.localguest.local
Astuce : Cote switch, configurez le port connecte a pfSense en mode trunk avec tous les VLANs autorises. Les ports des equipements finaux doivent etre en mode access avec le VLAN correspondant.

11. Services courants

11.1 DHCP Server

Navigation : Services > DHCP Server

Le serveur DHCP distribue automatiquement les adresses IP aux equipements du reseau.

Configuration de base :

ParametreDescriptionExemple
EnableActiver le serveur DHCP sur l'interfaceCocher
RangePlage d'adresses distribuees192.168.1.100 - 192.168.1.254
DNS ServersServeurs DNS fournis aux clients192.168.1.1 (pfSense)
GatewayPasserelle par defaut192.168.1.1
Domain nameNom de domaine locallan.local
Default lease timeDuree du bail par defaut7200 (2 heures)
Max lease timeDuree maximale du bail86400 (24 heures)

Reservations DHCP (Static Mappings) :

En bas de la page DHCP, section DHCP Static Mappings :

  1. Cliquer sur + Add
  2. MAC Address : AA:BB:CC:DD:EE:FF
  3. IP Address : 192.168.1.50
  4. Hostname : srv-fichiers
  5. Description : Serveur de fichiers
Astuce : Utilisez les reservations DHCP plutot que des IP statiques configurees directement sur les serveurs. Cela centralise la gestion des adresses IP dans pfSense et permet de voir l'ensemble de l'adressage depuis Status > DHCP Leases.

11.2 DNS Resolver (Unbound)

Navigation : Services > DNS Resolver

Le DNS Resolver (Unbound) est le service DNS recommande. Il effectue des requetes directement aux serveurs racine DNS.

Options principales :

ParametreDescriptionRecommandation
Enable DNS ResolverActiver UnboundCocher
Listen PortPort d'ecoute53
Network InterfacesInterfaces d'ecouteAll
DNSSECValidation cryptographique DNSCocher
DNS Query ForwardingTransferer les requetes vers les DNS de System > GeneralCocher si DNS de l'entreprise

Host Overrides (split DNS) :

Section Host Overrides en bas de la page. Permet de resoudre un nom de domaine vers une IP interne :

HostDomainIP AddressDescription
wwwmonsite.com10.0.0.10Serveur web interne
mailmonsite.com10.0.0.20Serveur mail interne
erpentreprise.local192.168.1.60Application ERP

Domain Overrides :

Section Domain Overrides. Permet de rediriger les requetes DNS d'un domaine entier vers un serveur DNS specifique :

Domain          : entreprise.local
IP Address      : 192.168.1.50 (controleur de domaine AD)
Description     : DNS Active Directory
Astuce : Le Domain Override est essentiel dans un environnement Active Directory. Il permet a pfSense de transferer les requetes entreprise.local vers le controleur de domaine tout en gerant le DNS Internet lui-meme.

11.3 DNS Forwarder (dnsmasq)

Navigation : Services > DNS Forwarder

Alternative plus legere au DNS Resolver. Il transfere simplement les requetes aux serveurs DNS configures dans System > General Setup. Utile dans les petits environnements.

Attention : Le DNS Resolver et le DNS Forwarder ne peuvent pas fonctionner en meme temps sur le meme port. Desactivez l'un avant d'activer l'autre.

11.4 NTP Server

Navigation : Services > NTP

pfSense peut servir de serveur NTP pour synchroniser l'heure de tous les equipements du reseau :

  • Enable NTP Server : Cocher
  • Interface : LAN (et autres interfaces internes)
  • Time Servers : Configures dans System > General Setup (ex: 0.pool.ntp.org, 1.pool.ntp.org)

Distribuez l'adresse du pfSense comme serveur NTP via DHCP (option NTP Server dans la configuration DHCP).

11.5 SNMP

Navigation : Services > SNMP

Permet la supervision de pfSense depuis un outil de monitoring (Zabbix, Nagios, PRTG, etc.) :

ParametreDescriptionRecommandation
EnableActiver le daemon SNMPCocher
Polling PortPort d'ecoute161
Read Community StringCommunaute de lectureChanger le defaut ! (ex: pfS3nse_R0)
System LocationEmplacement physiqueSalle serveur, Rack A
System ContactContact administrateuradmin@entreprise.com
Bind InterfacesInterfaces d'ecouteLAN uniquement
Attention : Ne jamais exposer SNMP sur l'interface WAN. La communaute SNMP par defaut (public) est un risque de securite. Changez-la immediatement et limitez l'ecoute au LAN.

12. Haute disponibilite (CARP)

12.1 Concept CARP

CARP (Common Address Redundancy Protocol) permet a deux pfSense de fonctionner en paire maitre/esclave (master/backup). En cas de panne du maitre, l'esclave prend automatiquement le relais.

                    IP virtuelle CARP
                    192.168.1.1 (VIP)
                         |
            +------------+------------+
            |                         |
     pfSense MASTER            pfSense BACKUP
     192.168.1.2               192.168.1.3
     (priorite haute)          (priorite basse)

12.2 Prerequis

  • Deux pfSense identiques (meme version, memes interfaces)
  • Trois adresses IP par interface : une pour le master, une pour le backup, une IP virtuelle CARP
  • Un lien reseau dedie pour la synchronisation (recommande)
InterfaceMasterBackupVIP CARPRole
WAN203.0.113.10203.0.113.11203.0.113.1IP publique partagee
LAN192.168.1.2192.168.1.3192.168.1.1Gateway du LAN
SYNC10.0.99.110.0.99.2-Lien de synchronisation

12.3 Configuration des IP virtuelles (VIP)

Navigation : Firewall > Virtual IPs > + Add

Sur le pfSense MASTER, creer les VIP CARP :

ChampVIP WANVIP LAN
TypeCARPCARP
InterfaceWANLAN
Address203.0.113.1 / 24192.168.1.1 / 24
Virtual IP PasswordMotDePasseCarp1!MotDePasseCarp2!
VHID Group12
Advertising Frequency - Skew0 (master)0 (master)

Sur le pfSense BACKUP, creer les memes VIP avec un Skew plus eleve (ex: 100) pour qu'il soit secondaire.

12.4 Synchronisation des etats (pfsync)

Navigation : System > High Avail. Sync

Le protocole pfsync synchronise la table d'etats du firewall (connexions actives) entre les deux noeuds :

ParametreMasterBackup
Synchronize StatesCocherCocher
Synchronize InterfaceSYNCSYNC
pfsync Synchronize Peer IP10.0.99.210.0.99.1

12.5 Synchronisation de la configuration (XMLRPC)

XMLRPC synchronise automatiquement la configuration du master vers le backup :

Sur le pfSense MASTER uniquement :

ParametreValeur
Synchronize Config to IP10.0.99.2 (IP du backup sur l'interface SYNC)
Remote System Usernameadmin
Remote System PasswordMot de passe admin du backup

Cochez les elements a synchroniser :

  • Users and Groups
  • Certificates
  • Firewall Rules
  • Firewall Schedules
  • Firewall Aliases
  • NAT
  • OpenVPN
  • DHCP Server
  • DNS Resolver / Forwarder
  • Virtual IPs (indispensable pour CARP)
Attention : La synchronisation XMLRPC se configure uniquement sur le master. Ne pas la configurer sur le backup, sinon les configurations vont s'ecraser mutuellement. Le DHCP et le NAT Outbound doivent utiliser les VIP CARP (et non les IP reelles) comme gateway et adresse de translation.
Astuce : Verifiez l'etat CARP dans Status > CARP (failover). Vous devez voir MASTER sur le noeud principal et BACKUP sur le noeud secondaire pour chaque VIP. Testez le basculement en debranchant le cable WAN du master.

13. Monitoring et logs

13.1 Logs systeme

Navigation : Status > System Logs

OngletContenu
System > GeneralLogs generaux du systeme (demarrage, services, erreurs)
FirewallPaquets bloques/autorises par les regles de firewall
DHCPAttributions DHCP, requetes, conflits
DNS ResolverRequetes DNS, erreurs de resolution
OpenVPNConnexions VPN, authentifications, erreurs
GatewayEtat des passerelles, basculements

13.2 Filtrage des logs firewall

Navigation : Status > System Logs > Firewall

Utilisez les filtres pour trouver rapidement des evenements specifiques :

  • Interface : Filtrer par interface (WAN, LAN, DMZ)
  • Action : Pass, Block, Reject
  • Source/Destination IP : IP specifique
  • Protocol : TCP, UDP, ICMP
  • Source/Destination Port : Port specifique
Astuce : Pour identifier quelle regle bloque un trafic, activez le logging sur les regles concernees (icone log dans l'editeur de regle). Chaque entree de log affiche le numero de la regle responsable : cliquez dessus pour la voir directement.

13.3 Packet Capture

Navigation : Diagnostics > Packet Capture

Outil de capture de paquets integre (equivalent de tcpdump) :

ParametreDescriptionExemple
InterfaceInterface a capturerWAN
ProtocolFiltrer par protocoleTCP
Host AddressIP source ou destination203.0.113.50
PortPort source ou destination443
Packet LengthTaille max capturee par paquet0 (tout)
CountNombre de paquets a capturer100
Level of DetailVerbosity de l'affichageNormal

Vous pouvez telecharger le fichier de capture au format .pcap pour l'analyser dans Wireshark.

13.4 pfTop

Navigation : Diagnostics > pfTop (ou option 9 du menu console)

Affiche en temps reel les connexions actives triees par differents criteres :

  • Default (Long) : Vue detaillee des connexions
  • Rate : Trie par debit
  • Size : Trie par volume de donnees
  • Speed : Trie par vitesse

13.5 Graphes RRD

Navigation : Status > Monitoring

Graphes historiques des performances :

  • System : CPU, memoire, etats du firewall, temperature
  • Traffic : Debit par interface (WAN, LAN, etc.)
  • Packets : Paquets par seconde par interface
  • Quality : Latence et perte de paquets vers les passerelles

Les graphes sont disponibles sur differentes periodes : 4 heures, 16 heures, 2 jours, 30 jours, 1 an, 4 ans.

13.6 Envoi des logs vers un serveur syslog distant

Navigation : Status > System Logs > Settings

ParametreValeur
Enable Remote LoggingCocher
Remote log servers192.168.1.60:514 (IP du serveur syslog)
Remote Syslog ContentsCocher les categories souhaitees
Astuce : Centralisez les logs dans un serveur syslog externe (Graylog, ELK Stack, Splunk) pour une meilleure analyse, de la retention longue duree et des alertes automatisees. pfSense ne conserve qu'une quantite limitee de logs localement.

14. Sauvegarde et restauration

14.1 Export de la configuration (XML)

Navigation : Diagnostics > Backup & Restore

  1. Onglet Backup & Restore
  2. Backup area : ALL (configuration complete) ou une section specifique
  3. Skip RRD data : Cocher pour un fichier plus petit (exclut les graphes historiques)
  4. Encrypt this config file : Recommande, surtout si la sauvegarde contient des mots de passe
  5. Cliquer sur Download configuration as XML
Attention : Le fichier XML de configuration contient tous les mots de passe (admin, VPN, LDAP, etc.) en clair ou en hash. Stockez-le dans un emplacement securise et chiffrez-le si possible.

14.2 Auto Config Backup (ACB)

Navigation : Diagnostics > Backup & Restore > Auto Config Backup

Ce service sauvegarde automatiquement la configuration dans le cloud Netgate a chaque modification :

  1. Creer un compte sur https://portal.netgate.com
  2. Renseigner l'identifiant et le mot de passe du portail Netgate
  3. Cocher Enable ACB
  4. Encryption Password : Definir un mot de passe de chiffrement

Les sauvegardes sont effectuees automatiquement a chaque changement de configuration. Vous pouvez lister et restaurer les versions precedentes depuis cet onglet.

14.3 Restauration

Navigation : Diagnostics > Backup & Restore

  1. Onglet Backup & Restore
  2. Section Restore Backup
  3. Restore area : ALL ou section specifique
  4. Selectionnez le fichier XML de sauvegarde
  5. Si le fichier est chiffre, entrez le mot de passe
  6. Cliquer sur Restore Configuration
  7. Le pfSense redemarrera automatiquement
Astuce : Planifiez des sauvegardes regulieres. Bonne pratique : sauvegardez AVANT et APRES chaque modification importante. Conservez au minimum les 5 dernieres versions. Nommez les fichiers avec la date : config-pfSense-2025-01-15.xml.

14.4 Restauration depuis la console

En cas de perte totale de l'acces web :

# Menu console > option 15 : Restore recent configuration
# Affiche les 30 dernieres configurations
# Selectionnez le numero de la configuration a restaurer

# Ou via le shell (option 8) :
# Les configurations recentes sont dans /cf/conf/backup/
ls /cf/conf/backup/
cp /cf/conf/backup/config-XXXXXXX.xml /cf/conf/config.xml
reboot

15. Depannage

15.1 Problemes courants

ProblemeCause probableSolution
Pas d'acces a l'interface web IP incorrecte, service webConfigurator arrete, regle anti-lockout desactivee Console > option 2 pour verifier/changer l'IP LAN. Option 11 pour redemarrer le webConfigurator. Option 3 pour reinitialiser le mot de passe.
Pas d'acces Internet depuis le LAN WAN non configure, pas de route par defaut, NAT outbound manquant, DNS non fonctionnel Verifier Status > Gateways, verifier les regles LAN, tester le DNS depuis Diagnostics > DNS Lookup.
Port forward ne fonctionne pas Regle de firewall manquante, NAT reflection desactivee, serveur interne n'ecoute pas Verifier la regle associee sur le WAN, tester depuis l'exterieur, verifier que le serveur ecoute sur le bon port.
VPN ne se connecte pas Port bloque par le FAI, certificat expire, regle manquante sur WAN Verifier la regle WAN (UDP 1194), verifier les logs OpenVPN, verifier les dates des certificats.
DHCP ne distribue pas d'adresses Service DHCP desactive, conflit de plage, interface non configuree Verifier Services > DHCP Server, verifier que la plage est dans le bon sous-reseau.
Lenteurs reseau Hardware offloading, taille MTU, boucle reseau Desactiver les offloading dans System > Advanced > Networking. Verifier la MTU. Chercher des boucles STP.
CARP ne bascule pas pfsync non configure, VIP password differents, VHID en conflit Verifier Status > CARP, s'assurer que les mots de passe et VHID correspondent sur les deux noeuds.

15.2 Debug firewall avec pfctl

Via le shell (menu console option 8 ou SSH) :

# Afficher toutes les regles chargees
pfctl -sr

# Afficher les regles avec leur numero (utile pour les logs)
pfctl -vvsr

# Afficher la table d'etats (connexions actives)
pfctl -ss

# Compter le nombre d'etats
pfctl -ss | wc -l

# Afficher les statistiques globales
pfctl -si

# Afficher les infos sur une interface specifique
pfctl -sI -v

# Afficher les tables (alias)
pfctl -sT

# Afficher le contenu d'une table/alias
pfctl -t Serveurs_Web -T show

# Vider la table d'etats (deconnecte toutes les connexions actives !)
pfctl -F states

# Vider les etats pour une IP specifique
pfctl -k 192.168.1.100

# Vider les etats pour une paire source/destination
pfctl -k 192.168.1.100 -k 10.0.0.10
Attention : La commande pfctl -F states coupe immediatement toutes les connexions actives (y compris votre session SSH/web). Utilisez-la avec precaution et preferez pfctl -k IP pour cibler une IP specifique.

15.3 Outils de diagnostic integres

Navigation : Diagnostics

OutilNavigationUsage
PingDiagnostics > PingTester la connectivite vers un hote
TracerouteDiagnostics > TracerouteTracer le chemin reseau vers un hote
DNS LookupDiagnostics > DNS LookupTester la resolution DNS
Packet CaptureDiagnostics > Packet CaptureCapturer et analyser le trafic reseau
Test PortDiagnostics > Test PortTester si un port distant est ouvert
ARP TableDiagnostics > ARP TableVoir les associations IP/MAC
StatesDiagnostics > StatesVoir/filtrer les connexions actives du firewall
RoutesDiagnostics > RoutesVoir la table de routage
SocketsDiagnostics > SocketsVoir les ports ouverts sur pfSense
Command PromptDiagnostics > Command PromptExecuter des commandes shell ou PHP depuis le navigateur

15.4 Commandes shell utiles

# Redemarrer un service specifique
/etc/rc.d/openvpn restart
pfSsh.php playback svc restart dhcpd
pfSsh.php playback svc restart unbound

# Verifier l'espace disque
df -h

# Voir les processus les plus gourmands
top -b -n 1 | head -20

# Voir les interfaces reseau et leurs IP
ifconfig -a

# Voir la table de routage
netstat -rn

# Voir les connexions actives
sockstat -4 -l

# Tester la connectivite DNS
drill google.com @8.8.8.8

# Voir la version de pfSense
cat /etc/version

# Forcer la mise a jour des listes bogon
/etc/rc.update_bogons.sh

# Verifier l'integrite du filesystem
fsck -y /dev/ada0p2

15.5 Reinitialisation d'urgence

# Depuis le menu console :
# Option 3 : Reinitialiser le mot de passe webConfigurator
# Option 4 : Reinitialiser aux parametres usine (ATTENTION : efface toute la configuration !)

# Depuis le shell :
# Reinitialiser le mot de passe admin
/etc/rc.initial.password

# Retour aux parametres usine
/etc/rc.initial.defaults
Astuce : Avant toute modification importante, faites toujours une sauvegarde de la configuration (Diagnostics > Backup & Restore). En cas de probleme, vous pouvez restaurer la configuration precedente depuis le menu console (option 15) sans reinitialiser completement le systeme.