Skip to content

Chapitre II — Firewalls

Created on Dec 4, ’22 ・ Updated on Mar 26, ’23
  • Point d'étranglement pour le contrôle et la surveillance du trafic réseau.
  • Interconnecte des réseaux dont les niveaux de confiance sont différents.
  • Impose des restrictions sur des services réseau.
  • Idéalement à l'abri des intrusions.

Firewall « appareil »

  • Appareil dont la seule fonction est d'être un firewall.
  • Matériel dédié, puissant mais cher.

Firewall « réseau »

  • Sur un routeur ou switch : protège un réseau entier.
  • Sur un ordinateur ou serveur : flexible et peu cher mais plus lent

Fonctionnement

  • Utilise des informations de la couche transport :
    • adresses IP et ports, source et destination
    • protocol, e.g. TCP, UDP, ICMP
    • flags TCP, e.g. SYN, ACK, RST
    • type de message ICMP
  • Certains firewall peuvent aussi analyser la couche application

Règles de filtrage

  • Autorisation par défaut
  • Interdiction par défaut
    • penser à autoriser les réponses
    • et à utiliser des règles statefull
  • Accès conditionné

Firewall statefull

  • Garde une trace de chaque paquet sortant afin de le faire correspondre avec un ou plusieurs paquets entrant.
  • Fonctionne aussi avec les protocol stateless comme UDP.

Architectures possibles

Firewall personnel

  • Tourne en local, sur la machine.
  • Bon marché et simple.

Firewall intégré au routeur

  • Tourne sur le routeur.
  • Tout trafic passe par le routeur, et donc par le firewall.
  • Un serveur peut compromettre tout le réseau.

Firewall standalone

  • Tourne sur sa propre machine.
  • Placé après le routeur.
  • Surface d'attaque plus petite.

Zone démilitarisée (DMZ)

  • Isolée du réseau privé interne.
  • Contient des services devant être plus exposés à Internet pour fonctionner.
  • Le firewall se trouve à l'intersection entre le routeur, le LAN et la DMZ.

Double firewall (sandwich)

  • Deux firewalls sont utilisés, un après le routeur et avant la DMZ, l'autre après la DMZ et avant le LAN.

Firewall application (proxy)

  • Route le trafic d'un port à l'autre.
  • Comprend le trafic des protocol applicatifs (HTTP, etc.).
  • Inconvénient : il faut écrire un proxy pour chaque service, performances moindres.
  • Avantage : bonne sécurité, conscience de la couche application.

En pratique : netfilter et iptables

  • netfilter : framework du kernel Linux, permet des opérations réseau au niveau des paquets.
  • iptables : outils de configuration pour netfilter (fonctionnalités NAT et firewall)

iptables

  • Contient des tables (e.g. filter, nat, mangle).
  • Ces tables contiennent des chaînes (e.g. INPUT, OUTPUT, FORWARD).
  • Chaque chaîne contient une politique ainsi que des règles.
  • Chaque règle contient un critère et une cible. Si le critère est respecté la cible est exécutée. Si un paquet ne correspond à aucune règle, la politique de la chaîne est exécutée.
  • Exemples de critères : protocole, adressse et port (source et destination)
  • Exemples de cibles/politique : ACCEPT, DROP, REJECT
# Acceptation des paquet sortant du firewall à destination du port 53.
$ iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

Module conntrack

  • Permet d'avoir des règles statefull. Activation avec l'option -m state ou -m conntrack.
  • Utilisation avec l'option --ctstate avec les valeurs suivantes :
    • NEW : premier paquet d'une connexion
    • ESTABLISHED : paquet d'une connexion en cours
    • RELATED : paquet apparenté à une autre connexion (e.g. FTP qui utilise deux ports différents)
    • INVALID : paquet sans état approprié
$ iptables -t filter -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
$ iptables -t filter -A INPUT -m conntrack --ctstate INVALID -j DROP