Chapitre 217 minAvancé
Pare-feu : fonctionnement et règles de filtrage
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- expliquer la différence entre filtrage sans état et avec état ;
- écrire un tableau de règles de filtrage juste, dans le bon ordre ;
- publier un service avec une redirection de port et sa règle ;
- configurer le pare-feu local d'un serveur Linux ou Windows.
4 exercices corrigés
Un pare-feu (firewall) est un équipement ou un logiciel qui laisse passer ou bloque le trafic réseau entre des zones, selon des règles écrites par l'administrateur : adresse source, adresse de destination, protocole, port, et parfois application ou utilisateur. Ce chapitre explique comment il décide, la différence entre filtrage sans état et avec état, et comment écrire un tableau de règles de filtrage juste, l'exercice le plus fréquent de l'E7 SISR.
À quoi sert un pare-feu
Le pare-feu se place à un point de passage obligé : entre le réseau de l'entreprise et Internet (pare-feu périmétrique), entre deux zones internes (pare-feu interne, par exemple devant les serveurs), ou sur la machine elle-même (pare-feu local de Windows ou de Linux). Il applique une politique de filtrage : la liste des flux autorisés entre les zones.
Il ne fait pas tout. Un pare-feu qui autorise HTTPS vers Internet laisse passer un rançongiciel téléchargé en HTTPS ; il ne voit rien du trafic entre deux postes branchés sur le même switch ; il ne corrige pas une faille du serveur web qu'il expose. C'est une couche de la défense en profondeur, pas la défense entière.
Les types de pare-feu
| Type | Ce qu'il regarde | Exemples |
|---|---|---|
| Filtrage sans état (stateless, liste de contrôle d'accès) | Chaque paquet isolément : adresses, protocole, ports. Il ne sait pas si le paquet appartient à une connexion déjà acceptée | ACL d'un routeur ou d'un switch de niveau 3 |
| Filtrage avec état (stateful) | Les connexions : il garde une table d'états et accepte automatiquement les réponses d'une connexion autorisée | pfSense, OPNsense, nftables sous Linux, pare-feu Windows |
| Nouvelle génération (NGFW, UTM) | En plus : l'application (« Teams », « Dropbox »), l'utilisateur de l'annuaire, la réputation des sites, avec IPS, filtrage web et inspection TLS intégrés | Stormshield, Fortinet FortiGate, Palo Alto, Sophos |
| Pare-feu applicatif web (WAF) | Le contenu des requêtes HTTP vers un site, pour bloquer les injections et autres attaques applicatives | ModSecurity, services des hébergeurs |
Comment le pare-feu décide
Pour chaque nouvelle connexion, le pare-feu parcourt ses règles de haut en bas et applique la première qui correspond ; les suivantes sont ignorées. Si aucune ne correspond, il applique la politique par défaut.
- Politique par défaut : tout refuser. C'est la seule acceptable. Tout ce qui n'est pas explicitement autorisé est bloqué. pfSense (comme OPNsense) bloque par défaut tout trafic entrant sur une interface qui n'a pas de règle.
- Ordre des règles. Une règle large placée trop haut masque les règles plus précises en dessous. Les règles d'exception (un refus précis, une autorisation précise) vont avant les règles générales.
- Refuser ou rejeter. Bloquer (drop) jette le paquet sans réponse : l'émetteur attend jusqu'au délai d'expiration. Rejeter (reject) renvoie un refus immédiat (TCP RST ou message ICMP). On bloque en général côté Internet, pour ne rien révéler, et on rejette côté interne, pour que les utilisateurs aient un message d'erreur rapide.
- Journaliser. Les refus importants sont journalisés : c'est là qu'on repère un balayage de ports ou une machine compromise qui cherche à joindre l'extérieur.
Écrire une règle de filtrage
Une règle se lit comme une phrase : « sur telle interface, autoriser (ou bloquer) le trafic de telle source vers telle destination, pour tel protocole et tel port ». Les sujets demandent un tableau de cette forme (sujet 2026, question B2.3 du sujet 2025) :
| N° | Interface | Source | Port source | Destination | Port destination | Protocole | Action | Commentaire |
|---|---|---|---|---|---|---|---|---|
| 1 | POSTES | 192.168.10.64/26 | * | 192.168.10.177 | 53 | UDP, TCP | Autoriser | Postes vers le DNS interne |
| 2 | POSTES | 192.168.10.64/26 | * | * | 80, 443 | TCP | Autoriser | Navigation web des postes |
| 3 | POSTES | * | * | * | * | * | Bloquer | Refus explicite, journalisé |
| 4 | SERVEURS | 192.168.10.177 | * | * | 53 | UDP, TCP | Autoriser | Le DNS interne résout les noms d'Internet |
Chez Sorbier Logistique, chaque VLAN arrive sur sa propre interface du pare-feu (POSTES, SERVEURS, DMZ…), comme tu le verras au chapitre 3 : les règles d'une interface filtrent le trafic qui entre par elle, donc celui dont la source est dans ce VLAN.
Quelques règles d'écriture qui évitent la plupart des erreurs :
- Le port source vaut presque toujours
*. Le client choisit un port éphémère au hasard pour chaque connexion : entre 49152 et 65535 sous Windows (la plage dynamique de l'IANA), entre 32768 et 60999 par défaut sous Linux. Seul le port de destination, celui du service, est connu. - La source et la destination sont aussi précises que possible : un réseau (
192.168.10.64/26) plutôt que any, une adresse de serveur plutôt qu'un réseau. - Le protocole de transport est indiqué : DNS utilise UDP et TCP, HTTPS utilise TCP (et UDP 443 pour HTTP/3, à décider explicitement).
- L'interface est celle où le trafic entre dans le pare-feu, pour pfSense (comme pour OPNsense).
- La dernière règle est un refus explicite, même si la politique par défaut refuse déjà : elle rend la politique lisible et permet de journaliser.
Les ports à connaître
| Service | Port | Transport | Remarque de sécurité |
|---|---|---|---|
| SSH | 22 | TCP | Administration à distance ; jamais ouvert à tout Internet |
| SMTP | 25 | TCP | Échange entre serveurs de messagerie |
| Soumission de courriel | 587 (465 en TLS implicite) | TCP | Envoi par les clients, authentifié et chiffré |
| DNS | 53 | UDP et TCP | Les postes ne devraient interroger que le DNS interne |
| DHCP | 67 (serveur), 68 (client) | UDP | Reste dans le réseau local |
| HTTP, HTTPS | 80, 443 | TCP (et UDP 443 pour HTTP/3) | HTTP seul ne sert plus qu'à rediriger vers HTTPS |
| Kerberos | 88 | TCP et UDP | Authentification Active Directory |
| NTP | 123 | UDP | Synchronisation de l'heure, indispensable aux journaux |
| SNMP, traps SNMP | 161, 162 | UDP | Supervision ; SNMPv3 obligatoire (chapitre 5) |
| LDAP, LDAPS | 389, 636 | TCP | Annuaire ; préférer LDAPS, chiffré |
| SMB | 445 | TCP | Partages Windows ; jamais exposé à Internet |
| Syslog | 514 (UDP), 6514 (TLS) | UDP, TCP | Envoi des journaux vers un collecteur |
| IKE, IPsec NAT-T | 500, 4500 | UDP | VPN IPsec (chapitre 7) |
| OpenVPN | 1194 | UDP (par défaut) | VPN |
| RADIUS | 1812, 1813 | UDP | Authentification 802.1X (chapitre 8) |
| RDP | 3389 | TCP | Bureau à distance ; jamais exposé à Internet |
| WireGuard | 51820 | UDP (par défaut) | VPN |
Le rappel sur TCP, UDP et la notion de port est dans le cours Réseaux fondamentaux.
De la matrice des flux aux règles
On n'écrit pas des règles au fil de l'eau : on part d'une matrice des flux, un tableau qui dit, pour chaque couple de zones, quels flux sont autorisés et pourquoi. Chaque case non vide donne une ou plusieurs règles ; une case vide signifie « refusé ».
| Depuis ↓ / vers → | Internet | DMZ | Serveurs | Postes |
|---|---|---|---|---|
| Internet | — | HTTPS vers le serveur web | rien | rien |
| DMZ | DNS, mises à jour | — | rien (ou un flux précis vers une base) | rien |
| Serveurs | DNS, mises à jour | rien | — | rien |
| Postes | HTTP, HTTPS | HTTPS | DNS, Kerberos, LDAP, SMB, application de gestion | — |
Cette matrice est celle de Sorbier Logistique, que tu retrouves au chapitre 3 avec ses adresses. Elle se lit ligne par ligne : la ligne « Internet » ne contient qu'un seul flux, vers la DMZ. Aucun flux ne va d'Internet vers les postes ou les serveurs : c'est tout l'intérêt de la DMZ.
NAT et redirection de port
Le réseau interne utilise des adresses privées, non routées sur Internet. Le pare-feu fait donc aussi de la traduction d'adresses (NAT) :
- NAT source (ou masquerading) : les postes sortent sur Internet avec l'adresse publique du pare-feu (
203.0.113.17chez Sorbier). C'est automatique sur pfSense et OPNsense. - NAT de destination (redirection de port, port forwarding) : une connexion qui arrive sur l'adresse publique, port 443, est redirigée vers le serveur web de la DMZ (
192.168.10.225, port 443).
Une redirection de port ne suffit pas : il faut aussi une règle de filtrage qui autorise le flux. pfSense et OPNsense proposent de créer cette règle associée automatiquement. Dans un tableau de réponse, écris les deux : la redirection (adresse et port publics vers adresse et port internes) et la règle (Internet vers 192.168.10.225, TCP 443, autoriser).
Le pare-feu local d'un serveur
Le pare-feu périmétrique ne voit pas le trafic entre deux machines d'une même zone. Le pare-feu local de chaque serveur complète le dispositif : il n'accepte que les flux prévus, même depuis une machine voisine.
Sous Linux (Debian 13), on utilise nftables. Voici le jeu de règles d'un serveur web de la DMZ qui n'accepte que HTTPS depuis partout, SSH depuis le réseau d'administration, et le ping limité. Il s'enregistre dans /etc/nftables.conf et s'active avec systemctl enable --now nftables :
#!/usr/sbin/nft -f
flush ruleset
table inet filtre {
chain entree {
type filter hook input priority 0; policy drop;
ct state established,related accept # réponses des connexions acceptées
ct state invalid drop
iif "lo" accept # trafic local de la machine
tcp dport 443 accept # HTTPS pour tout le monde
ip saddr 192.168.10.208/28 tcp dport 22 accept # SSH depuis le réseau d'administration
icmp type echo-request limit rate 5/second accept
meta l4proto ipv6-icmp accept # indispensable au fonctionnement d'IPv6
log prefix "nft-refus " counter # journalise ce qui va être refusé
}
}
La politique drop de la chaîne refuse tout ce qui n'a pas été accepté plus haut. nft list ruleset affiche les règles chargées, et les compteurs montrent combien de paquets chacune a traités.
Sous Windows Server, le pare-feu Windows Defender se règle par stratégie de groupe ou en PowerShell :
New-NetFirewallRule -DisplayName "HTTPS entrant" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction
Les erreurs fréquentes dans un tableau de règles
| Erreur | Pourquoi c'est faux | Correction |
|---|---|---|
| Une règle de retour pour chaque flux | Inutile sur un pare-feu avec état, et dangereux | Une seule règle, dans le sens d'ouverture |
| Port source 443 au lieu du port destination | Le client utilise un port éphémère | Port source *, port destination 443 |
| Règle générale avant l'exception | La première règle qui correspond s'applique, l'exception n'est jamais lue | Exceptions en haut |
| DNS oublié | Les postes ne résolvent plus aucun nom, la navigation « ne marche pas » | Autoriser DNS vers le résolveur interne seulement |
| ICMP entièrement bloqué | Le diagnostic devient impossible et certaines connexions échouent (découverte de la taille maximale des paquets) | Autoriser les messages ICMP utiles, limiter le ping |
| IPv6 ignoré | Les postes ont souvent une adresse IPv6 : des flux passent sans être filtrés | Écrire aussi les règles IPv6, ou désactiver IPv6 proprement |
Exercices
Exercice 1 sur 4 Avec état ou sans état ? Réussi À revoir
Un administrateur a écrit ces deux règles sur un pare-feu pfSense (avec état) :
| N° | Interface | Source | Port source | Destination | Port destination | Protocole | Action |
|---|---|---|---|---|---|---|---|
| 1 | POSTES | 192.168.10.64/26 | * | * | 443 | TCP | Autoriser |
| 2 | WAN | * | 443 | 192.168.10.64/26 | * | TCP | Autoriser |
- À quoi sert la règle 2 dans l'esprit de l'administrateur ?
- Est-elle nécessaire ? Est-elle dangereuse ? Justifie.
Voir la réponseMasquer la réponse de l'exercice 1
- Il pense devoir autoriser les réponses des sites web vers les postes.
- Elle est inutile : le pare-feu garde l'état des connexions ouvertes par la règle 1 et laisse passer leurs réponses automatiquement. Elle est dangereuse : n'importe quelle machine d'Internet peut ouvrir une connexion vers n'importe quel port d'un poste en utilisant 443 comme port source, ce qu'elle choisit librement. (Ici, le NAT limite en partie le risque, mais on ne compte pas sur le NAT pour filtrer.) Il faut la supprimer.
Tu avais trouvé ?
Exercice 2 sur 4 L'ordre des règles Réussi À revoir
Sur l'interface POSTES, on trouve, dans cet ordre :
| N° | Source | Destination | Port destination | Protocole | Action |
|---|---|---|---|---|---|
| 1 | 192.168.10.64/26 | * | * | * | Autoriser |
| 2 | 192.168.10.64/26 | * | 445 | TCP | Bloquer |
| 3 | * | * | * | * | Bloquer |
- Un poste peut-il joindre un partage SMB sur Internet ? Pourquoi ?
- Corrige le tableau pour que les postes aillent sur le web (HTTP, HTTPS) et utilisent le DNS interne
192.168.10.177, et rien d'autre vers l'extérieur.
Voir la réponseMasquer la réponse de l'exercice 2
- Oui. La règle 1 correspond à tout le trafic des postes, elle s'applique en premier et la règle 2 n'est jamais lue.
- Par exemple :
| N° | Source | Destination | Port destination | Protocole | Action |
|---|---|---|---|---|---|
| 1 | 192.168.10.64/26 | 192.168.10.177 | 53 | UDP, TCP | Autoriser |
| 2 | 192.168.10.64/26 | * | 80, 443 | TCP | Autoriser |
| 3 | * | * | * | * | Bloquer (journaliser) |
SMB vers Internet est alors refusé par la règle 3, sans règle particulière. Si l'on veut voir ces tentatives dans les journaux, on peut ajouter avant la règle 3 un refus explicite du port 445 avec journalisation.
Tu avais trouvé ?
Exercice 3 sur 4 Publier le site de suivi des livraisons Réussi À revoir
Sorbier publie son site de suivi des livraisons, hébergé sur 192.168.10.225 dans la DMZ, sur son adresse publique 203.0.113.17, en HTTPS. Le site doit aussi rediriger HTTP vers HTTPS.
- Écris la ou les redirections de port.
- Écris les règles de filtrage sur l'interface WAN.
- Un collègue propose de rediriger aussi le port 22 pour administrer le serveur de chez lui. Que lui réponds-tu ?
Voir la réponseMasquer la réponse de l'exercice 3
- Redirections (NAT de destination) :
203.0.113.17TCP 443 →192.168.10.225TCP 443 ;203.0.113.17TCP 80 →192.168.10.225TCP 80. - Règles sur WAN :
| N° | Source | Port source | Destination | Port destination | Protocole | Action |
|---|---|---|---|---|---|---|
| 1 | * | * | 192.168.10.225 | 443 | TCP | Autoriser |
| 2 | * | * | 192.168.10.225 | 80 | TCP | Autoriser |
| 3 | * | * | * | * | * | Bloquer |
(Sur pfSense, la règle WAN désigne l'adresse interne de destination, après traduction.)
- Non : un port SSH exposé est testé par des robots en quelques minutes, et une faille ou un mot de passe faible suffit pour entrer. Il doit d'abord se connecter au VPN de l'entreprise, puis administrer le serveur depuis le réseau d'administration ou un bastion.
Tu avais trouvé ?
Exercice 4 sur 4 Trouver les erreurs Réussi À revoir
Voici les règles proposées par un stagiaire pour que les postes (192.168.10.64/26) consultent l'application de gestion en HTTPS sur 192.168.10.179, à travers un pare-feu avec état :
| N° | Source | Port source | Destination | Port destination | Protocole | Action |
|---|---|---|---|---|---|---|
| 1 | 192.168.10.64/26 | 443 | 192.168.10.179 | * | TCP | Autoriser |
| 2 | 192.168.10.179 | * | 192.168.10.64/26 | 443 | TCP | Autoriser |
| 3 | * | * | * | * | UDP | Autoriser |
Relève les trois erreurs et écris la règle correcte.
Voir la réponseMasquer la réponse de l'exercice 4
- Règle 1 : les ports sont inversés. Le port source est éphémère (
*) ; c'est le port de destination qui vaut 443. - Règle 2 : règle de retour inutile sur un pare-feu avec état, et fausse de surcroît (elle autorise le serveur à ouvrir des connexions vers le port 443 des postes).
- Règle 3 : autoriser tout UDP de partout vers partout ouvre DNS, SNMP, TFTP et bien d'autres sans contrôle.
- Règle correcte, suivie d'un refus final :
| N° | Source | Port source | Destination | Port destination | Protocole | Action |
|---|---|---|---|---|---|---|
| 1 | 192.168.10.64/26 | * | 192.168.10.179 | 443 | TCP | Autoriser |
| 2 | * | * | * | * | * | Bloquer |
Tu avais trouvé ?