Leçon 4 / 6
Leçon 04 · Partie 2 — Sécuriser

Règles de pare-feu

Philosophie : deny by default

pfSense applique une règle fondamentale : tout le trafic est bloqué par défaut. Si tu n'as pas explicitement autorisé un flux, il est rejeté. C'est l'opposé de nombreux routeurs grand public qui laissent tout passer.

Cette approche est appelée liste blanche (ou allowlist) : tu définies ce qui est permis, et le reste est interdit. Chaque règle que tu ajoutes est donc une exception contrôlée à cette interdiction générale.

🛡️

Deny by default est le principe de base de la sécurité réseau. Même si un attaquant pénètre dans un segment de ton réseau, il ne peut pas atteindre les autres ressources sans que tu l'aies explicitement autorisé.

Ordre d'évaluation des règles

pfSense évalue les règles de haut en bas dans la liste. Dès qu'une règle correspond au paquet, elle s'applique et l'évaluation s'arrête. C'est le principe de la première correspondance gagne (first match wins).

Conséquence pratique : les règles les plus spécifiques (exceptions) doivent être placées avant les règles générales. Une règle « bloquer tout » en haut empêcherait toutes les règles d'autorisation qui suivent.

Ordre d'évaluation — exemple
# Règle 1 — évaluée en premier
BLOCK  TCP  192.168.10.5 → any:80   # bloquer cette IP spécifique

# Règle 2 — évaluée seulement si règle 1 ne correspond pas
PASS   TCP  192.168.10.0/24 → any:80  # autoriser le reste du LAN

# Règle 3 — jamais atteinte pour le trafic HTTP du LAN
BLOCK  any  any → any               # bloquer tout le reste

Anatomie d'une règle

Dans Firewall > Rules, chaque règle comporte plusieurs champs essentiels :

  • ActionPass (autoriser), Block (bloquer silencieusement) ou Reject (bloquer avec réponse).
  • Interface — l'interface sur laquelle la règle s'applique (LAN, WAN, VLAN10…).
  • Protocole — TCP, UDP, ICMP, any…
  • Source — adresse IP ou réseau d'origine du trafic.
  • Destination — adresse IP ou réseau cible.
  • Port — port source et/ou destination (80, 443, 53…).
  • Description — champ libre, mais indispensable pour documenter tes règles.
💡

Les règles s'appliquent au trafic entrant sur l'interface, pas sortant. Une règle sur l'interface LAN filtre le trafic qui provient du LAN vers pfSense. Une règle WAN filtre le trafic qui arrive d'Internet.

Règles LAN par défaut : attention au permissif

Lors de l'installation, pfSense crée automatiquement une règle sur l'interface LAN : « autoriser tout le trafic depuis le LAN vers n'importe quelle destination ». C'est pratique pour démarrer, mais c'est très permissif.

Cette règle permet à n'importe quelle machine du LAN de communiquer avec tout ce qu'elle veut. Pour un homelab ou un réseau segmenté, il vaut mieux la supprimer et créer des règles précises qui n'autorisent que ce dont les machines ont besoin.

Règle LAN par défaut
# Règle créée automatiquement — trop permissive
PASS  IPv4 any  LAN net → any:any
# Tout le LAN peut tout faire

# Mieux : des règles ciblées
PASS  TCP  LAN net → any:443   # HTTPS uniquement
PASS  UDP  LAN net → DNS_Server:53  # DNS uniquement
BLOCK any  LAN net → any          # bloquer tout le reste

Les aliases : simplifier les règles

Un alias est un nom donné à un groupe d'adresses IP, de réseaux ou de ports. Plutôt que de répéter les mêmes valeurs dans chaque règle, tu définis l'alias une fois et tu l'utilises partout. Les alias se créent dans Firewall > Aliases.

  • Alias IP/réseau — ex. Serveurs_Internes = 192.168.1.10, 192.168.1.20, 192.168.1.30
  • Alias port — ex. Ports_Web = 80, 443, 8080, 8443
  • Alias URL — pfSense télécharge et met à jour automatiquement une liste d'IPs depuis une URL.
Utilisation d'un alias dans une règle
# Sans alias — difficile à maintenir
PASS  TCP  any → 192.168.1.10:443
PASS  TCP  any → 192.168.1.20:443
PASS  TCP  any → 192.168.1.30:443

# Avec alias — propre et maintenable
# Alias "Serveurs_HTTPS" = 192.168.1.10, .20, .30
PASS  TCP  any → Serveurs_HTTPS:443

NAT : accéder à l'intérieur depuis l'extérieur

Le NAT (Network Address Translation) permet à pfSense de rediriger des connexions entrantes depuis Internet vers une machine interne. Il se configure dans Firewall > NAT.

Il existe deux types principaux :

  • Port Forward — redirige un port entrant (ex. port 443 sur l'IP publique) vers un serveur interne (ex. 192.168.1.10:443). Utilisé pour exposer un serveur web, un serveur de jeu ou un accès distant.
  • Outbound NAT — gère comment pfSense transforme les adresses sources des paquets sortants vers Internet. En mode automatique, il remplace toutes les IPs internes par l'IP publique du WAN.
Port Forward — exposer un serveur HTTPS interne
# Firewall > NAT > Port Forward
Interface  : WAN
Protocole  : TCP
Dest. port : 443  (HTTPS)
Redirect → : 192.168.1.10  port 443

# pfSense crée automatiquement une règle firewall associée
# pour autoriser ce trafic entrant
⚠️

Chaque règle Port Forward crée implicitement une règle de pare-feu. Vérifie toujours les règles WAN générées automatiquement pour t'assurer qu'elles sont aussi restrictives que possible (source IP si connue, etc.).

Exemple pratique : VLAN IoT isolé

Scénario : tu as un VLAN IoT (192.168.20.0/24) pour tes objets connectés. Ces appareils n'ont besoin que d'accéder à Internet en HTTPS et de résoudre des noms DNS. Ils ne doivent jamais communiquer avec ton LAN principal.

Règles interface VLAN_IoT
# Règle 1 — bloquer l'accès au LAN et aux autres VLANs
BLOCK  any  IoT net → 192.168.0.0/16
# Empêche les IoT de toucher le réseau interne

# Règle 2 — autoriser DNS vers pfSense uniquement
PASS   UDP  IoT net → 192.168.20.1:53

# Règle 3 — autoriser HTTPS vers Internet
PASS   TCP  IoT net → any:443

# Règle 4 — bloquer tout le reste (explicite)
BLOCK  any  IoT net → any

Monitoring : states et logs en temps réel

pfSense offre deux outils essentiels pour comprendre et déboguer le trafic :

  • Diagnostics > States — affiche toutes les connexions actives trackées par pfSense. Tu peux filtrer par IP source, destination ou interface pour voir ce qui transite en ce moment.
  • Status > System Logs > Firewall — journaux en temps réel des paquets bloqués (et autorisés si le logging est activé dans les règles). Indispensable pour diagnostiquer pourquoi un trafic est bloqué.

Pour activer le logging sur une règle spécifique, coche l'option Log dans la configuration de la règle. Attention : logger toutes les règles génère beaucoup de données, active le logging uniquement là où c'est utile (règles de blocage critiques).

// À retenir
  • pfSense bloque tout par défaut — tu n'autorises que ce qui est explicitement nécessaire.
  • Les règles sont évaluées de haut en bas : place les exceptions avant les règles générales.
  • La règle LAN par défaut est trop permissive — remplace-la par des règles précises.
  • Les aliases regroupent IPs et ports pour simplifier et maintenir les règles.
  • Le Port Forward expose un service interne ; l'Outbound NAT masque les IPs internes.
  • Diagnostics > States et les logs firewall sont tes meilleurs alliés pour déboguer.