Bienvenue à tous dans cette nouvelle partie consacrée au fonctionnement des firewalls. Vous découvrirez lors des prochains chapitres ce qu’est une règle firewall et comment l’écrire. Nous regarderons aussi les protocoles à risque pour votre réseau et comment s’en protéger.
Dans ce premier chapitre, nous allons nous intéresser aux règles firewalls, c’est-à-dire ce qu’elles sont et ce qu’elles font. Dans un premier temps, nous regarderons les règles sur la couche réseau et transport et ensuite celles sur la couche application.
Filtrez les IP, les ports
Pour étudier le fonctionnement des règles firewalls sur les couches réseau et transport, vous allez prendre le cas d’un firewall très connu, simple et efficace. J’ai nommé Iptables.
Nous l’avons déjà dit, mais un tel firewall se base sur la couche réseau et la couche transport. Regardons comment se schématise l’entrée d’un paquet dans un firewall Iptable.
Fonctionnement
Lorsque le paquet arrive sur votre firewall, après avoir été routé vers sa destination par le routeur, il peut prendre deux chemins, appelés chaînes :
INPUT, si le paquet lui est destiné.
ou FORWARD, si le paquet ne fait que traverser le firewall vers un autre terminal.
Un paquet émis par votre firewall va quant à lui passer par la chaîne OUTPUT.
Récapitulons avec un petit algorithme explicatif :
SI le paquet est à destination du firewall
ALORS il passe par la chaîne INPUT
SI il n’est pas rejeté
ALORS il est transmis au processus destinataire
SINON SI le paquet est destiné à un autre terminal
ALORS il passe par la chaîne FORWARD
SI il n’est rejeté
ALORS il est transmis au terminal destinataire
Regardons maintenant comment Iptables filtre les paquets.
Filtrage
Ipatbles, pour filtrer ses paquets, se base sur plusieurs propriétés du paquet :
L’entête IP
Le TCP ou UDP header
Iptables se basant sur ce datagramme, vous pouvez filtrer les paquets sur tout ce qui compose la structure du datagramme.
Vous vous intéresserez sûrement plus particulièrement :
Pour l’entête IP :
Aux flags, pour la fragmentation
Aux Protocol (en général TCP, UDP ou ICMP)
A l’Adresse source et destination
Pour l’entête source ou destination :
Aux ports source et destination.
Aux flags pour le protocole TCP (nous y reviendrons dans un prochain chapitre)
Une règle de filtrage pourra donc par exemple être :
Interdire les paquets avec adresses source X.X.X.X
Interdire les paquets avec adresses destination X.X.X.X
Interdire les paquets TCP
Interdire les paquets UDP
Interdire les paquets avec port de destination 22 (pour la connexion SSH)
Toutes ces règles peuvent bien sûr aussi être autorisées et ajoutées les unes aux autres :
Autoriser les paquets TCP avec adresse destination X.X.X.X sur le port 22.
Interdire les paquets UDP avec adresse source X.X.X.X.
Chacune de ces règles peuvent être appliquées aux trois chaînes, INPUT, OUTPUT et FORWARD.
Lisez les règles, une par une
Ces règles sont séquentielles, c’est-à-dire qu’elles sont lues dans l’ordre, l’une après l’autre.
Si un paquet tombe sur une règle qui le concerne, qu’il l’accepte ou le refuse, l’acceptant ou le refusant, la lecture s’arrête.
Le risque majeur est qu’une règle globale englobe justement une règle plus fine qui ne sera jamais lue.
Pour en savoir plus, relisez le chapitre : Définissez les accès utilisateur avec les ACLs (Access control list) du cours Administrez une architecture réseau avec Cisco.
Ce qu'il vous est permis de faire avec un firewall traditionnel est donc de lire l’en-tête d’un paquet. C’est un peu comme lire le titre d’un livre, mais sans avoir accès à son contenu.
Filtrez une application
Filtrer une application, que vous trouverez sous le nom de Deep packet inspection (DPI), vous permet donc de lire le livre, c’est-à-dire de filtrer au niveau de la couche application du modèle OSI. C’est le rôle d’une architecture proxy.
Le DPI est encore à son commencement, contrairement au firewall de type Iptables qui est aujourd’hui éprouvé. L’une des techniques qu’il utilise pour contrôler le réseau est empruntée au monde des antivirus : l’empreinte.
Le constructeur du DPI analyse des attaques, comme les spams, les virus, ou des types de trafic, comme celui de Facebook, YouTube ou des logiciels de peer-to-peer. Cette analyse lui permet d’établir une empreinte (une signature) pour chaque type de trafic.
Il enregistre ensuite ses empreintes dans sa base de données, que vous possédez dans votre firewall. Votre firewall est donc en mesure de savoir ce qui se passe sur votre réseau en analysant le trafic et en le comparant aux empreintes fournies par le constructeur.
L’avantage de cette technique est que cela vous facilite énormément le travail. Analyser le trafic pour un administrateur est simplement impossible, surtout lorsque la bande passante augmente en permanence.
L'inconvénient est que votre vendeur se doit de mettre à jour régulièrement sa base de données, car les pirates ne sont pas idiots et changent leur façon de procéder afin de modifier leurs empreintes, ce qui n’est pas trop le cas pour des sites comme Facebook ou Youtube. Le deuxième gros défaut, et je vous l’ai déjà dit dans un chapitre précédent, est qu’une telle analyse demande de grandes ressources.
Voilà un aperçu de la façon dont procède un firewall, que ce soit au niveau de la couche réseau et transport, ou au niveau de la couche application. Tout cela, encore une fois, dépendra de votre compréhension du réseau et des règles à appliquer plus que de la technologie à acheter.
Vous verrez dans le prochain chapitre, les différents protocoles qui sont le plus souvent traités par les firewalls, en raison de leurs utilisations par les utilisateurs, ou par les pirates.
Ce qu’il faut retenir
Vous pouvez filtrer des paquets en fonction de la couche réseau et transport ou en fonction de la couche application.
Vous pouvez filtrer les paquets en fonction de leurs sens, s’ils entrent vers le firewall, s’ils ne passent pas le firewall, ou s’ils sortent du firewall.
Il est possible de filtrer un paquet en fonction de son en-tête :
Source et destination IP
Protocole utilisé
Port source et destination
Le Deep packet inspection, permet de lire les données transmises dans les paquets. Ce qui permet de voir des potentielles attaques ainsi que le type de trafic utilisé par les utilisateurs.
Le Deep packet inspection est encore récent pas suffisamment éprouvé pour être 100 % fiable.
Le Deep packet inspection est très gourmand en ressource, plus votre connexion Internet est puissante et votre utilisation du DPI grande, plus votre firewall devra être puissant (RAM et CPU).