← Réseaux

Le pare-feu

Sommaire

Laisser passer les flux autorisés et bloquer le reste : écrire des règles ordonnées, distinguer filtrage avec et sans état, placer une DMZ et configurer le NAT.

1. Le rôle du pare-feu

Un pare-feu contrôle ce qui entre et sort d'un réseau, comme le gardien d'un immeuble : il vérifie qui arrive, d'où il vient et chez qui il va, puis laisse passer ou refuse selon des consignes écrites à l'avance, les règles.

Ce qu'il empêche :

Il peut être matériel (boîtier dédié) ou logiciel (pfSense, pare-feu de Windows, iptables sous Linux).

2. Ports, TCP et UDP

Si l'adresse IP est l'adresse de l'immeuble, le port est le numéro de l'appartement : il désigne le service visé sur la machine.

Port et transportService
80 / TCPHTTP : site web non chiffré
443 / TCPHTTPS : site web chiffré (cadenas du navigateur)
53 / UDP et TCPDNS : traduire un nom en adresse IP
22 / TCPSSH : administration à distance, chiffrée
25 / TCPSMTP : envoi d'e-mails
3389 / TCPRDP : bureau à distance Windows

Une connexion TCP commence par trois messages : SYN (« je veux ouvrir une connexion »), SYN-ACK (« d'accord ») et ACK (« bien reçu, on commence »). Le client utilise un port source au hasard (ex. 51324) vers le port du service (ex. 443).

3. Les règles de filtrage

Une règle associe des critères à une action. Les critères :

Les actions :

4. L'ordre des règles et la politique par défaut

Les règles sont lues de haut en bas et c'est la première qui correspond qui s'applique ; les suivantes ne sont pas lues.

1  192.168.10.10   -> 172.16.50.10  TCP 22   ACCEPT
2  192.168.20.0/24 -> Internet      TCP 443  ACCEPT
3  192.168.20.0/24 -> Internet      TCP 80   ACCEPT
4  any             -> any           any      DROP

Un paquet 192.168.20.12 → 142.250.1.1 en TCP 443 correspond à la règle 2 : il passe, les règles 3 et 4 ne sont pas lues.

5. Stateless ou stateful

Conséquence : environ deux fois moins de règles en stateful, et des règles plus strictes. En stateless, la règle retour (ex. source 172.16.50.10, port source 443, vers any) ouvre plus large.

Filtrage applicatif : un proxy ou un pare-feu nouvelle génération inspecte aussi le contenu (URL, application).

6. Les zones : LAN, WAN et DMZ

Règle d'or : la DMZ ne peut jamais initier de connexion vers le LAN. Ses serveurs sont exposés et peuvent être compromis : l'interdiction empêche l'attaquant de rebondir vers le réseau interne.

Un serveur web public se place donc en DMZ, jamais dans le LAN.

7. Adresses privées et NAT

Les adresses privées sont libres en interne et ne circulent jamais sur Internet : 10.0.0.0/8, 172.16.0.0/12 (172.16 à 172.31) et 192.168.0.0/16. Une adresse publique est unique au monde et fournie par le FAI (ex. 203.0.113.2).

Le NAT traduit une adresse privée en adresse publique, et inversement :

Le NAT traduit, il ne filtre pas. Une redirection de port sans règle de filtrage qui l'autorise ne laisse rien passer. Site inaccessible malgré la redirection : vérifier d'abord la règle WAN → 172.16.50.10 TCP 443, puis que le service web écoute et que la passerelle du serveur est bien le pare-feu.

8. Méthode : de la matrice des flux aux règles

D'abord, sur papier, la matrice des flux : qui parle à qui, sur quel port. Ensuite, une règle par case autorisée, puis le DROP final. Exemple du TD, avec un pare-feu stateful :

N  Source            Destination    Proto    Port     Action
1  192.168.10.0/24   WAN            TCP      80,443   PASS
2  192.168.10.0/24   WAN            TCP+UDP  53       PASS
3  192.168.20.0/24   WAN            TCP      443      PASS
4  192.168.20.0/24   WAN            TCP+UDP  53       PASS
5  192.168.10.0/24   172.16.50.10   TCP      443      PASS
6  192.168.20.0/24   172.16.50.10   TCP      443      PASS
7  192.168.10.10     172.16.50.10   TCP      22       PASS
8  WAN               172.16.50.10   TCP      443      PASS
9  any               any            any      any      DROP

NAT à prévoir : NAT source des deux LAN vers 203.0.113.2, et NAT destination 203.0.113.2 TCP 443 → 172.16.50.10 TCP 443 (autorisé par la règle 8).

Si un collègue ajoute en tête « 192.168.20.0/24 → any → ACCEPT », les élèves obtiennent tous les services et les règles 3, 6 et 7 ne sont plus jamais lues : c'est contraire à la politique de sécurité.

9. pfSense et iptables

pfSense : système dédié pare-feu et routeur (basé sur FreeBSD), installé sur un PC ou une machine virtuelle, gratuit. Il se configure par une interface web, menu Firewall > Rules, avec une liste de règles par interface. Le TP correspondant est dans la fiche pfSense, DMZ et filtrage.

iptables : pare-feu intégré à Linux, en ligne de commande (successeur : nftables). Les règles sont rangées dans des chaînes : INPUT (trafic destiné à la machine), OUTPUT (trafic émis par la machine), FORWARD (trafic qui la traverse, cas d'un routeur).

# Politique par défaut : tout refuser en transit
iptables -P FORWARD DROP
# Laisser passer les réponses des connexions autorisées
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Le LAN peut naviguer en HTTPS vers Internet
iptables -A FORWARD -i eth0 -o eth2 -s 192.168.10.0/24 -p tcp --dport 443 -j ACCEPT
# NAT source vers Internet
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

À retenir