Filtrage & NAT avec IPTables (Netfilter)

Netfilter (souvent nommé “iptables” est le logiciel inclus dans le noyau Linux pour manipuler les paquets IP. Il permet de faire du filtrage et de la translation de paquets sous Linux. La commande utilisée pour configurer les règles NetFilter est iptables. Sous Netfilter, il existe différentes tables (filter, NAT, Mangle, raw) qui des utilités différentes.

Voici la liste des tables par défaut (il est possible d'en créer d'autres) :

  • Filter : table qui permet de filtrer les paquet en provenance, à destination, ou traversants la machine.
  • NAT : table qui permet de faire de la traduction d'adresses réseau et de la redirection de ports (NAT/PAT).
  • Mangle : table qui permet de modifier le contenu des paquets.
  • Raw : table utilisée avant les 3 autres qui permet de filtrer ou modifier les paquets avant de passer par les autres tables.

Chaque table contient des “chaînes” qui servent à spécifier à quel moment chaque règle doit être appliquée :

  • PREROUTING : Avant le routage des paquets
  • POSTROUTING : Après le routage des paquets
  • FORWARD : pendant le routage des paquets
  • INPUT : en entrée de netfilter
  • OUTPUT : en sortie de netfilter

Filtrage

La table Filter permet d'effectuer le filtrage de paquets. Il existe 4 actions possibles sur les règles :

  • ACCEPT : Accepter les paquets correspondants à la règle.
  • REJECT : Bloquer les paquets correspondants à la règle en renvoyant un message ICMP pour indiquer que le port est fermé (Ne pas utiliser sur Internet, à utiliser plutôt en LAN).
  • DROP : Détruire les paquets correspondants à la règle (Plus adapté pour Internet).
  • LOG : Journaliser les paquets correspondants à la règle.

NAT/PAT

Divers