Audit et Sécurité Informatique

Ce matériel couvre les principes fondamentaux du filtrage réseau à l’aide de firewalls et de listes de contrôle d’accès (ACL). Il s’adresse principalement aux étudiants en licence informatique ou en sécurité des systèmes d’information souhaitant comprendre les architectures de firewall, les types de filtrages, ainsi que la configuration et l’utilisation des ACL standards et étendues.

D'après le document Audit et Sécurité Informatique

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

Audit et Sécurité Informatique

Firewalls, Network Security, Filtering Principles · PDF · 69 pages

Afficher l'aperçu du document

Consulter le document original →

Ce matériel couvre les principes fondamentaux du filtrage réseau à l’aide de firewalls et de listes de contrôle d’accès (ACL). Il s’adresse principalement aux étudiants en licence informatique ou en sécurité des systèmes d’information souhaitant comprendre les architectures de firewall, les types de filtrages, ainsi que la configuration et l’utilisation des ACL standards et étendues.

Principe de filtrage

Le filtrage est un outil essentiel de la sécurité informatique. Il existe deux approches principales :

  • Filtrage optimiste (PERMIT ALL) : tout est permis sauf quelques services spécifiques. Facile à gérer mais peu sécurisé car il ne prend pas en compte les nouveaux services ouverts.
  • Filtrage pessimiste (DENY ALL) : tout est rejeté sauf les services explicitement autorisés. Plus difficile à maintenir mais offre une sécurité renforcée.

Le filtrage analyse les en-têtes IP, TCP et UDP en considérant les critères suivants :

  • Adresse IP source
  • Adresse IP destination
  • Port source
  • Port destination
  • Protocole encapsulé (ICMP, UDP, TCP, etc.)
  • Flag ACK (TCP)
  • Interface d’accès
  • Sens du trafic (entrant ou sortant)

Chaque règle de filtrage est associée à une action : laisser passer ou bloquer le paquet. L’ordre des règles est crucial : la première règle correspondant au paquet est appliquée (First Matching, First Applied).

Contrairement aux routeurs, un firewall ne fait pas d’IP forwarding classique mais peut inclure des mandataires (proxy) pour filtrer au niveau applicatif.

Principales architectures avec firewall

Plusieurs architectures sont possibles :

  • Firewall sans routeur : les machines ont des adresses IP privées et ne communiquent pas directement avec l’extérieur. Les serveurs ont des adresses publiques. Nécessite l’usage de mandataires internes (proxy).
  • Firewall avec routeur : le firewall est la seule machine visible de l’extérieur, le routeur gère le routage et la traduction d’adresses (NAT).
  • Firewall avec double routeurs : un routeur pour les connexions entrantes, un autre pour les connexions sortantes, le firewall contrôle les accès dans les deux sens.
  • Firewall et zone DMZ : le réseau interne est divisé en deux zones isolées, une zone démilitarisée pour les serveurs accessibles de l’extérieur, et une zone militarisée pour les clients inaccessibles. Cette architecture peut utiliser deux routeurs ou un routeur à trois interfaces (routeur à 3 pattes).
  • Firewall et VLAN : intégration de VLAN pour segmenter le réseau avec une zone démilitarisée.

Types de filtrages et ACL

Il existe plusieurs types de filtrage :

  • Filtrage sans état (Stateless) : chaque paquet est filtré indépendamment selon une liste de règles préconfigurées (ACL). Implémenté sur routeurs et systèmes d’exploitation.
  • Filtrage à état (Stateful) : le firewall suit les connexions et sessions dans des tables d’état internes, ce qui permet d’accepter automatiquement les paquets appartenant à une connexion active.
  • Filtrage applicatif (firewall Proxy) : filtrage au niveau de la couche application, avec un processus dédié pour chaque protocole (HTTP, POP3, etc.).

Le développement des filtres suit une démarche :

  • Définir les règles en utilisant un maximum de critères (IP, ports, flags, etc.).
  • Pour chaque service, autoriser les flux dans les deux sens (client → serveur et serveur → client) ou bloquer le flux client → serveur pour un service interdit.

Exemple de règle : autoriser l’extérieur à accéder au service Web sur un réseau périphérique.

Listes de contrôle d’accès (ACL)

Une ACL est associée à une interface du routeur :

  • Interface in : paquets entrants avant routage.
  • Interface out : paquets sortants après routage.

Positionnement des ACL :

  • Les ACL étendues doivent être placées le plus près possible de la source du trafic à refuser pour éviter la traversée inutile du réseau.
  • Les ACL standards, qui ne filtrent que par adresse source, doivent être placées près de la destination.

Exemple de positionnement :

  • Pour empêcher l’accès du réseau 192.168.10.0/24 au réseau 192.168.30.0/24, une ACL standard doit être placée sur l’interface d’entrée du routeur proche du réseau source.
  • Pour refuser le trafic Telnet et FTP entre deux réseaux, une ACL étendue doit être placée sur l’interface d’entrée la plus proche de la source.

Standard IP Access Lists (1-99)

Ces ACL filtrent uniquement selon l’adresse IP source et se placent près de la destination.

Synthaxe de création :

Router(config)# access-list num-list {deny|permit} source [wildcard mask] [log]
Router(config)# interface [port]
Router(config-if)# ip access-group num-list {in|out}

Le champ source peut être :

  • A.B.C.D : adresse réseau ou sous-réseau (avec masque générique)
  • any : n’importe quel hôte
  • host A.B.C.D : adresse d’une machine spécifique

Le masque générique (wildcard mask) est un masque de 32 bits où :

  • 0 signifie que le bit doit être vérifié (match)
  • 1 signifie que le bit est ignoré

Exemples :

access-list 14 deny 192.168.16.0 0.0.0.255  (tous les hôtes du sous-réseau)
access-list 14 deny 192.168.16.0 0.0.0.127  (première moitié des hôtes)
access-list 14 deny 192.168.16.128 0.0.0.127 (deuxième moitié des hôtes)

Exemple complet :

Router(config)# access-list 11 permit 192.168.1.0 0.0.0.255
Router(config)# int S0
Router(config-if)# ip access-group 11 out
Router(config)# int E1
Router(config-if)# ip access-group 11 out

Cette ACL autorise le trafic du réseau 192.168.1.0 vers Internet et vers le réseau 172.16.0.0.

Extended IP Access Lists

Ces ACL filtrent selon :

  • Adresse IP source et destination
  • Port source et destination (filtrage par service)
  • Type de protocole (TCP, UDP, ICMP, etc.)

Ces ACL se placent près de la source.

Synthaxe de création :

Router(config)# access-list num-list-access {deny|permit} protocol source [source-mask] [operator operand] destination [destination-mask] [operator operand] [established]
Router(config)# interface [port]
Router(config-if)# ip access-group num-list {in|out}

Le champ protocol peut prendre plusieurs valeurs, par exemple tcp, udp, ip, etc.

Le champ operator peut être eq (égal à), gt (plus grand que), lt (plus petit que), etc.

Le champ operand est généralement un numéro de port ou un nom de service (ftp, telnet, http, etc.).

Exemple d’ACL étendue :

Refuser FTP du réseau 192.168.11.0 vers 192.168.10.0 et autoriser le reste.
FTP utilise les ports 21 (contrôle) et 20 (données).

access-list 114 deny tcp 192.168.11.0 0.0.0.255 192.168.10.0 0.0.0.255 eq ftp
access-list 114 deny tcp 192.168.11.0 0.0.0.255 192.168.10.0 0.0.0.255 eq ftp-data
access-list 114 permit ip any any

On peut aussi utiliser les noms des ports :

access-list 114 deny tcp 192.168.11.0 0.0.0.255 192.168.10.0 0.0.0.255 eq ftp
access-list 114 deny tcp 192.168.11.0 0.0.0.255 192.168.10.0 0.0.0.255 eq ftp-data

Autre exemple :

Refuser Telnet (port 23) du réseau 192.168.11.0 vers 192.168.10.0.

access-list 115 deny tcp 192.168.11.0 0.0.0.255 192.168.10.0 0.0.0.255 eq telnet
access-list 115 permit ip any any

Listes d’accès complexes

Les ACL peuvent être basées sur des critères temporels. Par exemple, autoriser une connexion Telnet depuis le réseau interne vers l’extérieur uniquement certains jours (lundi, mercredi, vendredi) pendant les heures ouvrables.

Pour cela :

  • Définir une plage horaire (exemple : EVERYOTHERDAY)
  • Appliquer cette plage horaire à la liste de contrôle d’accès
  • Associer la liste à une interface

Exemples divers

Masque générique

Le masque générique permet de définir un ensemble d’adresses IP. Par exemple :

  • 192.168.10.0 0.0.0.255 correspond à toutes les adresses de 192.168.10.0 à 192.168.10.255
  • 172.16.0.0 0.0.255.255 correspond à 172.16.0.0 à 172.16.255.255
  • 10.0.0.0 0.255.255.255 correspond à 10.0.0.0 à 10.255.255.255
  • 192.168.50.1 0.0.0.254 correspond à toutes les machines impaires du réseau 192.168.50.0/24
  • 192.168.0.0 0.0.254.255 correspond à plusieurs sous-réseaux espacés (192.168.0.0, 192.168.2.0, ..., 192.168.254.0)
  • 192.168.10.61 0.0.0.95 correspond à 192.168.10.32 à 192.168.10.63 et 192.168.10.96 à 192.168.10.127

Masque générique inverse

Pour trouver la notation masque générique correspondant à un réseau donné :

  • 192.168.16.0 à 192.168.16.127 → 192.168.16.0 0.0.0.127
  • 172.250.16.32 à 172.250.16.63 → 172.250.16.32 0.0.0.31
  • 192.168.10.128 à 192.168.10.159 et 192.168.10.192 à 192.168.10.223 → 192.168.10.128 0.0.0.95

Erreurs classiques et corrections

  • Une ACL interdisant tout le trafic sortant d’une interface peut être corrigée en ajoutant une règle permit ip any any pour autoriser le reste du trafic.
  • Pour bloquer FTP, il faut filtrer les ports 21 (contrôle) et 20 (données) car FTP utilise ces deux ports.
  • Les ACL standards ne permettent pas de filtrer par numéro de port, donc pour filtrer des services spécifiques, il faut utiliser des ACL étendues.
  • Pour interdire tout sauf certains ports (exemple : interdire tout sauf ports 80 et 21), il faut écrire explicitement les règles de refus et d’autorisation dans le bon ordre.
  • Pour autoriser la navigation HTTP (port 80) et HTTPS (port 443) depuis un réseau donné, on utilise une ACL étendue qui autorise le trafic vers ces ports et une autre ACL qui autorise les connexions établies en retour (avec le paramètre established).
  • Le placement des ACL est important pour éviter que le trafic indésirable traverse inutilement le réseau.
  • Une mauvaise configuration de l’ordre des règles dans une ACL peut bloquer des hôtes spécifiques avant que des règles plus permissives ne soient appliquées.
  • Pour autoriser un protocole utilisant UDP (exemple : TFTP), il faut s’assurer que l’ACL autorise aussi UDP, sinon le trafic sera bloqué implicitement.
  • Pour bloquer Telnet, il faut filtrer le port de destination Telnet (port 23) et non le port source.

Glossaire des termes clés

  • Firewall : dispositif de sécurité réseau qui contrôle les accès entre différents réseaux selon des règles définies.
  • Filtrage optimiste (PERMIT ALL) : politique de sécurité qui autorise tout sauf exceptions.
  • Filtrage pessimiste (DENY ALL) : politique de sécurité qui bloque tout sauf exceptions.
  • ACL (Access Control List) : liste de règles définissant quels paquets sont autorisés ou refusés.
  • Filtrage sans état (Stateless) : filtrage basé uniquement sur chaque paquet indépendamment.
  • Filtrage à état (Stateful) : filtrage qui suit l’état des connexions pour autoriser les paquets appartenant à une session active.
  • Proxy : serveur intermédiaire qui filtre le trafic au niveau applicatif.
  • Masque générique (Wildcard mask) : masque utilisé dans les ACL pour définir quelles parties de l’adresse IP doivent être vérifiées.
  • Port : numéro identifiant un service réseau (exemple : 80 pour HTTP, 443 pour HTTPS).
  • Interface in/out : direction du trafic par rapport à une interface réseau (entrant ou sortant).
  • DMZ (zone démilitarisée) : segment réseau isolé où sont placés les serveurs accessibles de l’extérieur.

Points clés à retenir

  • Le filtrage est indispensable pour sécuriser un réseau et peut être optimiste ou pessimiste.
  • Le firewall analyse les paquets selon plusieurs critères (IP source/destination, ports, protocoles, flags, interface, sens du trafic).
  • Les ACL standards filtrent uniquement par adresse source et se placent près de la destination.
  • Les ACL étendues filtrent par source, destination, protocole et ports, et se placent près de la source.
  • L’ordre des règles dans une ACL est crucial : la première règle correspondante est appliquée.
  • Le filtrage à état améliore la sécurité et la performance en suivant les connexions actives.
  • Le placement des ACL dans le réseau doit être optimisé pour limiter le trafic indésirable.
  • Les erreurs fréquentes concernent l’ordre des règles, le choix des ports à filtrer, et la compréhension des masques génériques.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions