Aller au contenu principal

Introduction iptable

Iptables est un pare-feu basé sur le noyau Linux qui permet de contrôler le trafic réseau entrant et sortant. Il est utilisé pour sécuriser les serveurs et les ordinateurs personnels.

Dans ce tutoriel, nous allons voir comment installer et configurer Iptables sur un système Linux. Nous apprendrons également à créer des règles pour autoriser ou bloquer le trafic réseau.

Prérequis

Pour suivre ce tutoriel, vous devez disposer des éléments suivants :

  • Un système Linux avec un accès sudo ou root
  • Une connexion Internet

Installation d'Iptables

Sur la plupart des distributions Linux, Iptables est installé par défaut. Pour vérifier si c'est le cas, exécutez la commande suivante pour afficher les options disponibles pour iptables :

iptables -h

Si Iptables n'est pas installé, vous pouvez l'installer en exécutant la commande suivante :

sudo apt install iptables

Liste des règles actuelles

Pour afficher la liste des règles actuelles de la table FILTER, exécutez la commande suivante :

sudo iptables -L

Cette commande affichera une liste des règles pour chaque table.

Pour afficher une liste des règles avec plus de détails, exécutez la commande suivante :

sudo iptables -nvL --line-numbers

Cette commande affichera des détails supplémentaires comme le numéro de port, le nombre de paquets, les bytes et le numéro des lignes.

Pour afficher la liste des règles actuelles de la table NAT, , exécutez la commande suivante :

sudo iptables -t nat -nvL

Syntaxe des règles

Une règle Iptables est composée de plusieurs éléments :

  • La chaine : INPUT, FORWARD, OUTPUT, PREROUTING, POSTROUTING.
  • Le protocole : le protocole du trafic à filtrer. Les protocoles courants sont TCP, UDP et ICMP.
  • La source : l'adresse IP ou le réseau source du trafic à filtrer.
  • La destination : l'adresse IP ou le réseau destination du trafic à filtrer.
  • l'action : ACCEPT, DROP, REJECT.

Voici un exemple de construction d'une règle iptables :

sudo iptables -I <chaine> -p <protocole> -s <source> -d <destination> -j <action>

Actions

Une règle Iptables peut avoir une action, qui indique ce que Iptables doit faire avec le trafic qui correspond à la règle. Les actions courantes sont :

  • ACCEPT : le trafic est accepté.
  • DROP : le trafic est rejeté.
  • REJECT : le trafic est rejeté avec un message d'erreur.

Les tables

Les tables principales sont les suivantes :

  • Filter : filtre les paquets qui arrivent sur INPUT, OUTPUT, FORWARD (Table par défaut).
  • NAT : modifie les IP/Port sur les paquets qui arrivent sur PREROUTING, POSTROUTING, OUTPUT.

Schema iptables

Il en existe d'autres comme Mangle, Raw.

Création de règles

Autoriser tout le trafic sur le réseau local

sudo iptables -A INPUT -i lo -j ACCEPT

L'option -A ajoute la règle à la fin de la liste, -i definit l'interface réseau, -j définit l'action à réaliser.

Bloquer le trafic HTTP sur le port 80

sudo iptables -I INPUT -p tcp --dport 80 -j DROP

L'option -I ajoute la règle au début de la liste, -p définit le protocol réseau, --dport définit le port.

Rediriger le trafic qui arrive sur le port 8080 vers l'ip:80 d'un conteneur

sudo iptables -t nat -I PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.122.151.191:80

Ordre des règles

Les règles d'Iptables sont appliquées dans l'ordre dans lequel elles sont définies du haut vers le bas de la liste.

Sauvegarde et restorer des règles

Les règles d'Iptables doivent être stockées dans un fichier pour être sauvegardées.

Pour sauvegarder les règles actuelles, exécutez la commande suivante :

sudo iptables-save > ./dossier/fichier.sav

Pour restorer les règles d'Iptables, exécutez la commande suivante :

sudo iptables-restore < ./dossier/fichier.sav

!!! Attention !!! la sauvegarde ne se relance pas automatiquement après un redémarrage serveur il faudra le faire manuellement.

Sauvegarde persistente des règles

Pour que la sauvegarde soit persistente et quelle se relance automatiquement après un redémarrage serveur, il faut installer un complément iptables, executez la commande suivante :

sudo apt install iptables-persistent

Pour demarrer le service netfilter-persistent, executez la commande suivante :

sudo netfilter-persistent start

Pour sauvegarder les règles de façon persistentes, executez la commande suivante :

sudo netfilter-persistent save

Par défaut, les fichiers de sauvegarde ipv4 et ipv6 sont situés dans le répertoire /etc/iptables/.

Suppression des règles

Pour supprimer une règle de la table FILTER, exécutez la commande suivante :

sudo iptables -D <chaîne> <numéro de ligne>

Pour supprimer une règle de la table NAT, exécutez la commande suivante :

sudo iptables -t nat -D <chaîne> <numéro de ligne>

Pour supprimer toutes les règles, exécutez la commande suivante :

sudo iptables -F

Conclusion

Iptables est un outil puissant qui peut être utilisé pour sécuriser votre système Linux. En suivant ce tutoriel, vous avez appris les bases de la configuration d'Iptables.

Pour plus d'informations sur Iptables, vous pouvez consulter la documentation iptables ubuntu.

Exercices

  • Autoriser le trafic HTTP.
  • Autoriser le trafic SSH.
  • Autoriser la boucle locale.
  • Autoriser le trafic seulement d'un certain hôte.
  • Utiliser des règles de pare-feu NAT.
  • Utiliser des règles de pare-feu de filtrage.
  • Utiliser des règles de pare-feu de connexion
  • Utiliser des règles de pare-feu de port-boucle.