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.
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.