Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

🛡️ Firewall / Pare-feu – Filtrage, ACL, Stateful & NGFW

Guide complet IDEO-Lab sur la sécurité réseau, du filtrage de paquets au NGFW.

1.1

Définition & Rôle

Filtre, Zones (Trust/Untrust), Couche 3/4/7.

Sécurité Filtre WAN/LAN
1.2

Hardware vs. Software

Appliance (Dédié) vs. Hôte (OS).

Appliance Hôte pfSense
1.3

ACL (Access Control List)

Règles (Permit/Deny), 5-Tuple, Implicit Deny.

ACL Permit/Deny 5-Tuple
2.1

Type : Stateless

Filtrage de paquets simple (Basé sur ACL). Rapide.

Stateless ACL
2.2

Type : Stateful (SPI)

Suivi de connexion (State Table). Standard moderne.

Stateful SPI Connexion
2.3

Type : NGFW (Couche 7)

Next-Gen (DPI, IPS/IDS, Application-aware).

NGFW DPI IPS/IDS
3.1

Proxy vs. Firewall

Médiateur (L7) vs. Filtre (L3/L4).

Proxy Reverse Proxy
3.2

Architecture : DMZ

Zone Démilitarisée (Serveurs publics, Bastion).

DMZ Architecture
3.3

Fonction : NAT / Port Fwd

Translation d'adresse, Ouverture de port.

NAT PAT Port Forwarding
4.1

Outil : iptables (Linux)

Noyau Linux. Tables (Filter, NAT), Chaînes (Input).

iptables Linux Netfilter
4.2

Outil : UFW (Ubuntu)

Uncomplicated Firewall (Frontend pour iptables).

UFW Ubuntu Facile
4.3

Cheat-sheet : ACL

Exemples de règles (Bloquer Ping, Ouvrir SSH).

Checklist Règles
1.1 Définition & Rôle du Firewall
Le "Garde-Frontière" du Réseau

Un Firewall (Pare-feu) est un appareil (matériel ou logiciel) de sécurité réseau qui filtre le trafic entrant et sortant.

Son rôle principal est d'agir comme une barrière entre un réseau interne de confiance (ex: votre LAN) et un réseau externe non-fiable (ex: Internet), en n'autorisant que le trafic légitime (défini par des règles) à passer.

Opération (Couches OSI)
  • Firewall L3/L4 (Classique) : Filtre basé sur les Paquets (L3) et les Ports (L4). (IP Source/Dest, Port TCP/UDP Source/Dest).
  • Firewall L7 (NGFW) : Filtre basé sur l'Application (L7). (Peut inspecter le contenu du paquet, ex: "Bloquer Facebook").
Concept : Zones de Confiance

Un firewall est conçu pour appliquer des politiques entre des "zones" de différents niveaux de confiance.

(Zone 0 - UNTRUST)           (Zone 100 - TRUST)
    INTERNET <──────────────> [ FIREWALL ] <──────────────> LAN (Réseau Interne)
                                  │
                                  │
                                  └─────────────────────> DMZ (Zone 50 - Semi-Trust)
  • Trust (LAN) : Réseau interne (employés, PC de bureau). Confiance élevée.
  • Untrust (WAN/Internet) : Réseau externe. Confiance nulle.
  • DMZ (Demilitarized Zone) : (Voir 3.2) Réseau "tampon" pour les serveurs publics (serveur web). Confiance limitée.

Exemple de règle : Autoriser le trafic de "Trust" vers "Untrust", mais bloquer tout trafic initié de "Untrust" vers "Trust".

1.2 Hardware vs. Software Firewalls
Firewall Matériel (Appliance)

Un boîtier physique dédié (une "appliance") placé en bordure de réseau (entre le routeur Internet et le switch principal).

  • Rôle : Protéger tout le réseau (LAN).
  • Performance : Élevée (hardware dédié, ASICs).
  • Exemples : Cisco ASA, Palo Alto Networks, Fortinet, ou des solutions open-source (pfSense, OPNsense) sur du matériel dédié.
Firewall Logiciel (Hôte)

Un logiciel qui tourne directement sur un système d'exploitation (serveur, PC client).

  • Rôle : Protéger la machine hôte elle-même (contre les menaces internes du LAN).
  • Performance : Dépend du CPU/RAM de l'hôte.
  • Exemples : Windows Defender Firewall, iptables (Linux), UFW (Ubuntu).
1.3 Type : Stateless (Filtrage de Paquets)

Le firewall "Stateless" (sans état) est la forme la plus basique de filtrage. Il traite chaque paquet isolément, sans mémoire des connexions passées.

Fonctionnement (ACL pure)

Il se base uniquement sur les ACL (Access Control Lists) (voir 3.1). Il vérifie l'IP source, l'IP destination, le protocole, et le port, puis applique la règle (Permit/Deny).

Règle (Outbound) :
  PERMIT TCP Source:192.168.1.50 Dest:ANY Port:80

Problème : Le trafic RETOUR (de Google)
  (Source:ANY Port:80, Dest:192.168.1.50)
  sera bloqué par l'Implicit Deny.
  • Avantage : Très rapide, faible overhead CPU.
  • Inconvénient : "Stupide". Pour autoriser le trafic retour, il faut ouvrir de larges plages de ports entrants, ce qui est une faille de sécurité majeure.
2.1 Type : Stateful (SPI)
Stateful Packet Inspection (SPI)

Le firewall "Stateful" (avec état) est le standard moderne. Il est "intelligent" car il mémorise l'état des connexions (TCP Handshake, flux UDP).

Il maintient une "State Table" (Table d'état) de toutes les connexions actives qui traversent le firewall.

Flux de Connexion (Exemple)

Règle ACL : PERMIT TCP LAN -> WAN Port:443 (Autoriser le trafic web sortant)

1. [PC A (LAN)] envoie un paquet [SYN] à [Google (WAN) Port 443].

2. [Firewall] vérifie l'ACL : "LAN -> WAN:443" = PERMIT.
   Il crée une entrée dans sa State Table :
   [PC A:1234 -> Google:443 | Status: SYN_SENT]
   Il envoie le paquet.

3. [Google] répond avec [SYN/ACK] à [PC A].

4. [Firewall] reçoit le [SYN/ACK] (trafic entrant).
   Il vérifie sa State Table.
   "Aha, ce paquet est une RÉPONSE à une connexion
   que j'ai déjà autorisée (SYN_SENT)."
   -> Il autorise le paquet retour (sans vérifier les ACLs entrantes).

5. [Pirate (WAN)] envoie un paquet non sollicité à [PC A].

6. [Firewall] reçoit le paquet.
   Il vérifie sa State Table.
   "Ce paquet n'appartient à aucune connexion initiée
   depuis l'intérieur."
   -> Il le bloque (Implicit Deny).
2.2 Type : NGFW (Next-Generation Firewall) / Couche 7

Un NGFW va au-delà du filtrage L3/L4 (IP/Port). Il utilise le DPI (Deep Packet Inspection) pour inspecter le contenu (L7 - Application) des paquets.

Le Problème (Port 80/443)

Un firewall Stateful autorise tout sur le port 443 (HTTPS). Mais ce port peut transporter des applications légitimes (Google) ou indésirables (BitTorrent, Facebook, Malwares).

Fonctionnalités Clés du NGFW
  • Application-Aware : Peut identifier et bloquer "Facebook" ou "Netflix", même s'ils utilisent le port 443.
  • IPS/IDS (Intrusion Prevention/Detection) : Analyse le trafic à la recherche de signatures de malwares, d'exploits (ex: Log4j), et les bloque.
  • Filtrage URL : Bloque l'accès à des catégories de sites (ex: Adulte, Jeux d'argent).
  • Gateway Anti-Virus : Scanne les fichiers téléchargés (HTTP/FTP) à la volée.
2.3 Proxy vs. Firewall

Ce sont deux concepts différents, bien que souvent confondus (un NGFW moderne agit souvent comme un proxy L7).

Firewall (L3/L4)

Rôle : Filtre (Agent de la circulation).

Le firewall laisse passer (ou bloque) la connexion *directe* entre le Client et le Serveur. Il ne modifie pas le paquet (sauf pour le NAT).

Client <-----> Firewall <-----> Serveur
Proxy (L7)

Rôle : Médiateur (Intermédiaire).

La connexion s'arrête au proxy. Le client ne parle jamais directement au serveur.

(Connexion 1)  (Connexion 2)
Client <-----> PROXY <-----> Serveur
  • Forward Proxy (Client) : Le client est configuré pour utiliser un proxy (ex: filtrage web en entreprise).
  • Reverse Proxy (Serveur) : Protège les serveurs web (Load Balancing, SSL Offload, WAF).
3.1 ACL (Access Control List)
Le "Livre de Règles"

Une ACL est un ensemble de règles (Permit/Deny) appliquées à une interface (entrante ou sortante) pour filtrer le trafic. C'est la base des firewalls (Stateless et Stateful).

Le "5-Tuple"

Une règle ACL (étendue) se base sur 5 informations pour identifier un flux :

  1. Protocole (ex: TCP, UDP, ICMP)
  2. Adresse IP Source
  3. Port Source (ex: >1024)
  4. Adresse IP Destination
  5. Port Destination (ex: 443)
Implicit Deny (Refus Implicite)

Les ACLs sont lues de haut en bas. La première règle qui "matche" est appliquée, et le firewall arrête la lecture.

Crucial : À la fin de chaque ACL se trouve une règle invisible : DENY ALL (Refus Implicite).

Cela signifie qu'un firewall ne doit contenir que des règles "PERMIT". Tout ce qui n'est pas explicitement autorisé est bloqué.

3.2 Architecture : DMZ (Zone Démilitarisée)

Une DMZ est un réseau "tampon" (une 3ème zone de confiance) créé par un firewall. C'est la zone destinée à héberger les serveurs qui doivent être accessibles depuis Internet (Untrust).

Le Problème

Si vous hébergez votre serveur web (Port 80) dans votre LAN (Trust), et qu'un pirate le compromet, il a un accès direct à tout votre réseau interne (PC, Serveurs de fichiers...).

La Solution (DMZ)

Le firewall crée 3 zones (ex: 3 interfaces physiques) :

Interface 1: WAN (Untrust)
Interface 2: LAN (Trust) - 192.168.1.0/24
Interface 3: DMZ (Semi-Trust) - 172.16.1.0/24
   (Héberge le Serveur Web 172.16.1.10)

Règles de Firewall :

  • PERMIT WAN -> DMZ (Port 80/443) (Internet voit le serveur web)
  • PERMIT LAN -> WAN (Sortie Internet)
  • PERMIT LAN -> DMZ (Les admins accèdent au serveur web)
  • DENY DMZ -> LAN (La règle la plus importante !)

Si le serveur web (DMZ) est piraté, le pirate est bloqué dans la DMZ et ne peut pas atteindre le LAN.

3.3 Fonction : NAT & Port Forwarding

Le NAT est une fonction clé des firewalls (surtout Stateful).

Source NAT / PAT (Masquerading)

C'est le processus (sortant) qui "masque" votre LAN (IPs privées) derrière l'IP publique du firewall.

C'est une fonction Stateful. Le firewall crée une entrée dans sa table NAT (voir 2.1) pour savoir à quel PC interne renvoyer la réponse.

Port Forwarding (Destination NAT / DNAT)

C'est le processus (entrant) qui permet d'exposer un service interne (LAN ou DMZ) à Internet. C'est l'ouverture de port.

C'est une règle statique qui dit au firewall :

"Tout trafic arrivant sur mon [IP Publique]
sur le [Port Public: 443]
doit être 'translaté' (DNAT)
vers [IP Interne: 172.16.1.10]
sur le [Port Interne: 443 (ou 8443...)]"

Attention : Une règle de Port Forwarding (DNAT) doit toujours être accompagnée d'une règle ACL (Firewall) PERMIT correspondante.

4.1 Outil : iptables (Linux)

iptables est l'outil en ligne de commande (historique) pour configurer le firewall Netfilter intégré au noyau Linux. C'est un firewall Stateful L3/L4 très puissant (et complexe).

Structure : Tables & Chaînes (Chains)

iptables utilise des "Tables" (filter, nat, mangle) qui contiennent des "Chaînes" (listes de règles ACL).

La Table filter (la plus utilisée)

Contient 3 chaînes principales pour le trafic destiné au serveur lui-même :

  • INPUT : Trafic entrant (destiné au serveur). (La plus importante pour la sécurité).
  • OUTPUT : Trafic sortant (généré par le serveur).
  • FORWARD : Trafic "routé" (si le serveur agit comme routeur/firewall pour un autre réseau).
# Exemple :
# 1. Politique par défaut : tout bloquer en entrée
iptables -P INPUT DROP

# 2. Autoriser le trafic "déjà établi" (Stateful)
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# 3. Ouvrir le port SSH (22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
4.2 Outil : UFW (Uncomplicated Firewall)

UFW est un "frontend" (une interface de gestion simplifiée) pour iptables, très populaire sur Ubuntu.

Il est conçu pour rendre la configuration d'un firewall hôte (Stateful) très simple.

Exemple de Workflow
# 1. Activer le firewall
sudo ufw enable

# 2. Définir les politiques par défaut (Implicit Deny)
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 3. Ouvrir des ports (Règles PERMIT)
sudo ufw allow ssh       (Lit /etc/services, = port 22)
sudo ufw allow http      (Port 80)
sudo ufw allow 443/tcp   (Port 443)

# 4. Autoriser une IP spécifique
sudo ufw allow from 1.2.3.4 to any port 22

# 5. Voir le statut
sudo ufw status verbose
4.3 Cheat-sheet : Logique ACL (Stateful)

Logique de configuration (de haut en bas) pour un firewall Stateful (ex: INPUT sur un serveur web).

ActionSourceDestinationPort/ServiceNotes
1PERMITIP_Admin (1.2.3.4)ANYANY(Règle "Anti-lockout". S'autoriser soi-même d'abord).
2PERMITANYANY(Trafic Stateful)RELATED, ESTABLISHED. Autorise les réponses.
3PERMITANYLoopback (127.0.0.1)ANY(Trafic local).
4PERMITIP_Admin (1.2.3.4)ServeurTCP 22 (SSH)Accès administration.
5PERMITANYServeurTCP 80 (HTTP)Service public.
6PERMITANYServeurTCP 443 (HTTPS)Service public.
7DENYIP_Pirate (5.6.7.8)ANYANY(Règle de blocage explicite - optionnelle).
8PERMITANYServeurICMP (Ping)(Optionnel, pour diagnostic).
...(Invisible)ANYANYANYImplicit Deny (DENY ALL)