50 % de réduction sur tous les plans, durée limitée. À partir de $2.48/mo
14 min restantes
Sécurité et réseau

Lister et supprimer des règles Iptables sur Linux : aide-mémoire pour débutants

Lily Carnell By Lily Carnell 14 min de lecture Mis à jour le 18 sept. 2023
Guide pour lister et supprimer des règles Iptables

Les accès non autorisés et les attaques sur les serveurs constituent des menaces sérieuses. C'est pourquoi il est essentiel d'intégrer un pare-feu à votre stratégie de sécurité réseau. Savoir manipuler les règles Iptables est l'un des atouts fondamentaux pour réduire ces risques sur vos systèmes Linux. Ce tutoriel vous guidera à travers les concepts de base du pare-feu, notamment l'affichage et la suppression des règles iptables dans Ubuntu, afin de vous aider à exécuter des commandes simples pour y parvenir. Avant d'aborder comment lister ou supprimer des règles iptables, voyons ce qu'elles sont et pourquoi on les utilise.

Qu'est-ce qu'Iptables ?

iptables est un utilitaire de pare-feu en ligne de commande qui autorise ou bloque le trafic via des chaînes de politique. Lorsqu'une connexion tente de s'établir sur votre système, iptables parcourt la liste des règles à la recherche d'une correspondance. Si aucune règle ne correspond, il applique l'action par défaut.

iptables est presque toujours préinstallé sur toute distribution Linux. Vous pouvez utiliser la commande suivante pour le mettre à jour ou l'installer :

sudo apt-get install iptables

Pourquoi utiliser Iptables ?

En tant que pare-feu en ligne de commande Linux, iptables permet aux administrateurs système de gérer le trafic entrant et sortant via des règles de tables configurables. iptables utilise un ensemble de tables contenant des chaînes, elles-mêmes composées de règles intégrées ou définies par l'utilisateur.

Comme mentionné dans la section précédente, iptables joue un rôle clé dans la sécurité réseau de la plupart des systèmes Linux. La suite de cet article se concentre principalement sur les règles iptables : comment les afficher et comment les supprimer.

Plus précisément, cet article couvre les opérations essentielles d'iptables : lister les règles, réinitialiser les compteurs de paquets et d'octets, supprimer une règle iptables, vider des chaînes, et supprimer toutes les chaînes en acceptant tout le trafic.

Guide complet d'Iptables sous Ubuntu

Avant d'aborder l'affichage des règles iptables, assurez-vous de disposer d'un serveur Linux avec la commande iptables installée, ainsi que des privilèges sudo. Lorsque vous travaillez avec des pare-feu, veillez à ne pas vous bloquer l'accès à votre serveur en bloquant le trafic SSH (port 22 par défaut). Si vous perdez l'accès à cause de vos paramètres de pare-feu, vous devrez peut-être vous connecter via une console hors bande pour corriger le problème.

À lire aussi : Comment changer le port SSH dans Linux : guide pas à pas pour configurer votre port SSH

Lister les règles par spécification

Vous pouvez consulter vos règles iptables actives sous forme de tableau ou en tant que liste de spécifications de règles. Ces deux méthodes fournissent les mêmes informations dans des formats différents. Pour lister toutes les règles iptables actives par spécification, exécutez la commande iptables avec l'option option -S:

sudo iptables -S

Après avoir exécuté cette commande, vous obtiendrez un résultat similaire à celui-ci :

résultat de la commande d'affichage des règles
résultat de la commande d'affichage des règles

Lister une chaîne spécifique

Pour limiter l'affichage des règles iptables à une chaîne particulière comme INPUT, OUTPUT ou TCP, vous pouvez indiquer le nom de la chaîne directement après l'option -S. Par exemple, la commande suivante affiche les règles de la chaîne TCP :

sudo iptables -S TCP

résultat de l'affichage de la chaîne TCP
résultat de l'affichage de la chaîne TCP

Comme mentionné précédemment, il existe une autre façon de consulter les règles iptables : les afficher sous forme de tableau. Voici comment procéder.

Lister les règles sous forme de tableau

Afficher les règles iptables sous forme de tableau facilite la comparaison entre différentes règles. Exécutez la commande iptables suivante avec l'option option -L pour lister toutes les règles actives dans un tableau :

sudo iptables -L

Cette commande affiche toutes les règles actives, classées par chaînes. Vous pouvez restreindre l'affichage à une chaîne précise, comme INPUT, OUTPUT, TCP, etc., en indiquant son nom directement après l'option -L. Voici un exemple limité à la chaîne INPUT :

sudo iptables -L INPUT

résultat de la commande iptables limitée à la chaîne INPUT
résultat de la commande iptables limitée à la chaîne INPUT

La première ligne du résultat indique le nom de la chaîne (ici INPUT) et sa politique par défaut (DROP). La ligne suivante contient les en-têtes de colonnes du tableau ainsi que les règles de la chaîne. Voici ce que chaque colonne représente :

  • Target : si un paquet correspond à la règle, cette colonne détermine l'action à lui appliquer. Le paquet peut être accepté, rejeté, journalisé ou renvoyé vers une autre chaîne pour y être évalué.
  • prot : le protocole (par exemple TCP, udp, ICMP ou all)
  • opt : indique les options IP (rarement utilisé)
  • source : affiche l'adresse IP ou le sous-réseau source du trafic 
  • destination : indique l'adresse IP ou le sous-réseau de destination du trafic

La colonne sans libellé regroupe les options d'une règle qui n'apparaissent dans aucune des colonnes précédentes. Ces informations peuvent inclure les ports source et destination, ou encore l'état de connexion des paquets.

À lire aussi : Installer OpenVPN sur VPS – Configuration du client OpenVPN 🔑

Comment afficher le nombre de paquets et la taille agrégée ?

Lors de l'affichage des règles iptables, il est possible d'inclure le nombre de paquets et le volume total en octets correspondant à chaque règle — ce qui aide à identifier quelles règles sont effectivement sollicitées. Pour cela, utilisez les options -L et combinées -v pour y parvenir ceci.

Voici un exemple dans lequel nous utilisons à nouveau la chaîne INPUT, avec l'option -v :

sudo iptables -L INPUT -v

Afficher le nombre de paquets et la taille agrégée
résultat de l'affichage du nombre de paquets et de la taille agrégée

Notez que notre liste comporte maintenant deux colonnes supplémentaires nommées pkts et bytes. Nous avons vu différentes façons d'exécuter les commandes iptables pour afficher toutes les règles. Il est maintenant temps de savoir comment réinitialiser le nombre de paquets et la taille agrégée.

Comment réinitialiser le nombre de paquets et la taille agrégée ?

Utilisez l'option -Z pour remettre à zéro les compteurs de paquets et d'octets de vos règles. Ces compteurs sont également réinitialisés au redémarrage, ce qui est utile pour vérifier si le serveur reçoit du nouveau trafic correspondant à vos règles existantes.

Vous pouvez remettre à zéro les compteurs de toutes les chaînes et de toutes les règles en utilisant l'option -Z seule :

sudo iptables -Z

Pour remettre à zéro les compteurs de toutes les règles d'une chaîne spécifique, utilisez l'option -Z en précisant le nom de la chaîne. Par exemple, la commande suivante remet à zéro les compteurs de la chaîne INPUT :

sudo iptables -Z INPUT

Pour remettre à zéro les compteurs d'une règle précise, indiquez le nom de la chaîne et le numéro de la règle. Par exemple, la commande suivante remet à zéro les compteurs de la première règle de la chaîne INPUT :

sudo iptables -Z INPUT 1

En plus de connaître les commandes iptables pour afficher toutes les règles et les méthodes pour réinitialiser les compteurs de paquets et d'octets, il est utile de savoir comment supprimer une règle iptables.

À lire aussi : Comment installer un serveur PPTP VPN sur votre VPS

Comment supprimer des règles iptables ?

Plusieurs commandes permettent de supprimer des règles iptables, voire de vider entièrement une chaîne. Nous allons passer en revue ces méthodes,

Supprimer des règles par spécification

L'une des façons de supprimer des règles iptables est de passer par la spécification de la règle. Cette méthode consiste à exécuter la commande iptables avec l'option -D et la spécification de la règle. Pour supprimer des règles de cette façon, vous pouvez vous appuyer sur la sortie de la liste des règles, iptables -S.

Par exemple, pour supprimer la règle qui rejette les paquets entrants invalides (-A INPUT -m conntrack –ctstate INVALID -j DROP), exécutez la commande suivante :

sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

Notez que l'option -A sert à indiquer la position de la règle lors de sa création et ne doit pas figurer ici.

Supprimer des règles par chaîne et par numéro

L'autre méthode pour supprimer des règles iptables consiste à utiliser le nom de la chaîne et le numéro de ligne. Tapez la commande suivante pour afficher les règles au format tableau avec leur numéro de ligne, en ajoutant l'option –line-numbers:

sudo iptables -L --line-numbers

Supprimer des règles par chaîne et par numéro
résultat de la suppression de règles par chaîne et par numéro

Après exécution, chaque règle iptables affiche son numéro de ligne, indiqué par l'en-tête num.

Une fois que vous savez quelle règle supprimer, notez sa chaîne et son numéro de ligne. Utilisez la commande iptables -D en précisant la chaîne et le numéro de règle. Par exemple, pour supprimer la règle INPUT qui rejette les paquets invalides, vous pouvez voir qu'il s'agit de la règle 3 de la chaîne INPUT. Exécutez donc cette commande :

sudo iptables -D INPUT 3

Comment vider des chaînes ?

Il est possible de supprimer toutes les règles iptables d'une chaîne en une seule opération, c'est ce qu'on appelle vider une chaîne. Nous allons passer en revue les différentes méthodes pour le faire. Avant d'aller plus loin, veillez à ne pas perdre l'accès au serveur via SSH lors du vidage d'une chaîne dont la politique par défaut est drop ou deny. Dans ce cas, vous devrez peut-être vous y connecter via la console pour rétablir votre accès.

Vider une chaîne spécifique

Pour vider une chaîne spécifique, c'est-à-dire supprimer toutes ses règles, vous pouvez utiliser -F ou l'équivalent –option de vidage suivi du nom de la chaîne concernée. Par exemple, pour supprimer toutes les règles de la chaîne INPUT, rien de plus simple, exécutez la commande suivante :

sudo iptables -F INPUT

Vider toutes les chaînes

Pour supprimer toutes les règles de toutes les chaînes, utilisez l'option -F ou son équivalent –flush seule :

sudo iptables -F

Comment vider toutes les règles, supprimer toutes les chaînes et tout accepter ?

Nous allons maintenant expliquer comment supprimer toutes les règles, tables et chaînes du pare-feu et autoriser tout le trafic réseau. Attention : cette opération désactive complètement le pare-feu. Ne suivez cette section que si vous souhaitez repartir de zéro dans la configuration de votre pare-feu.

Commencez par définir la politique par défaut de chaque chaîne intégrée sur ACCEPT. Cela garantit que vous ne perdrez pas l'accès au serveur via SSH :

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Videz ensuite les tables nat et mangle, supprimez toutes les règles de toutes les chaînes (-F), puis supprimez toutes les chaînes non par défaut (-X) comme ceci :

sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X

Après avoir exécuté ces commandes, le pare-feu autorise tout le trafic réseau. Si vous listez vos règles à ce stade, vous constaterez qu'il n'en reste aucune : seules les trois chaînes par défaut INPUT, FORWARD et OUTPUT sont présentes.

Comment configurer iptables dans Ubuntu ?

Comme pour tout pare-feu, les règles iptables sont lues dans l'ordre où elles apparaissent dans chaque chaîne. Il est donc important de les définir dans le bon ordre. Les nouvelles règles ajoutées avec append sont placées en fin de liste. Pour insérer une règle à une position précise, utilisez iptables -I <index> -command. La <index> correspond au numéro de position où vous souhaitez insérer la règle. Pour savoir quel numéro d'index utiliser, exécutez la commande suivante :

sudo iptables -L --line-numbers

Le numéro en début de chaque ligne indique la position de la règle dans la chaîne. Pour insérer une nouvelle règle au-dessus d'une règle existante, utilisez le numéro d'index de cette règle. Par exemple, pour placer une règle en tête de chaîne, utilisez la commande suivante avec l'index 1 :

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

Quelle est la différence entre iptables et firewalld ?

iptables et firewalld sont deux outils efficaces pour gérer les pare-feu sur différents systèmes Linux, tous deux conçus pour le filtrage de paquets (filtrage statique). Le filtrage de paquets est une stratégie de pare-feu qui permet de contrôler l'accès à un réseau en gérant les paquets entrants et sortants : chaque paquet est autorisé ou bloqué selon des règles prédéfinies portant sur les protocoles, les ports et les adresses IP source et destination. Ces règles constituent des mécanismes de sécurité efficaces, faisant du filtrage de paquets une bonne protection contre les équipements extérieurs au LAN (Local Area Network) du système.

À noter que firewalld a été initialement conçu pour simplifier la gestion d'iptables et en faciliter l'utilisation. Maintenant que nous avons présenté ces deux outils, comparons-les plus en détail.

iptables vs firewalld : configuration système

Firewalld et iptables utilisent des configurations et des mécanismes de stockage par défaut différents. Avec iptables, chaque modification implique de vider toutes les règles existantes et de recharger les nouvelles, ce qui nécessite un redémarrage du système. Avec firewalld, en revanche, les règles ne sont pas recréées depuis zéro : seules les différences et les modifications sont appliquées aux règles existantes, et les changements prennent effet immédiatement à l'exécution.

iptables vs firewalld : interface utilisateur

Firewalld propose une interface graphique (GUI), tandis qu'iptables repose sur une interface en ligne de commande (CLI), ce qui peut rendre l'accès aux règles du pare-feu noyau Linux plus complexe pour certains utilisateurs. Cela fait de firewalld une option plus accessible. Il faut toutefois garder à l'esprit qu'iptables offre un temps de réponse plus court, car les commandes utilisées sont concises. Ces différences mises à part, chaque outil a ses cas d'usage : choisissez celui avec lequel vous êtes le plus à l'aise.

Conclusion : afficher les règles iptables

Iptables est un utilitaire de pare-feu très flexible, conçu spécifiquement pour les systèmes d'exploitation Linux. Que vous soyez un débutant passionné de Linux ou un administrateur système expérimenté, les règles iptables peuvent vous être utiles d'une façon ou d'une autre. Cet article a présenté les commandes de base de cet utilitaire de pare-feu, notamment l'affichage et la suppression de règles iptables, dans le but de passer en revue les capacités de Linux. Vous pouvez également utiliser nos solutions d'hébergement Linux VPS pour tirer pleinement parti de ce système d'exploitation. Chez Cloudzy, nous proposons différents plans Linux VPS basés sur KVM, adaptés à de nombreux cas d'usage : hébergement web, déploiement d'application web, ou encore mise en place d'un environnement de développement, de test et d'automatisation du code.

Questions fréquemment posées

Comment lister toutes les règles iptables Linux par spécification ?

Pour lister toutes les règles iptables actives par leur spécification ou leur fonction, utilisez la commande iptables suivie du flag -S. Faites attention à bien utiliser le sudo mot-clé dans ce cas :

sudo iptables -S

Comment supprimer des règles iptables ?

Pour supprimer une chaîne spécifique, ce qui effacera toutes les règles qu'elle contient, vous devez utiliser l'option -F ou –flush ainsi que le nom de la chaîne. Supposons que vous souhaitiez supprimer toutes les règles de la chaîne OUTPUT. Que faire ? Il vous suffit d'exécuter cette commande :

 sudo iptables -F OUTPUT

Comment fonctionne iptables dans Ubuntu ?

Le pare-feu iptables compare le trafic réseau à un ensemble de règles. Ces règles définissent les caractéristiques d'un paquet à faire correspondre, ainsi que l'action à effectuer en cas de correspondance. Il existe bien sûr de nombreuses options pour spécifier quels paquets correspondent à une règle donnée.

Les règles iptables prennent-elles effet immédiatement ? Pourquoi ?

Oui, les règles iptables prennent effet immédiatement : votre script ajoute des règles aux chaînes INPUT et OUTPUT, et celles-ci sont insérées à la fin de ces chaînes.

Partager

À lire sur le blog

Continuez la lecture.

Image d'en-tête Cloudzy pour un guide MikroTik L2TP VPN, montrant un ordinateur portable se connectant à une baie de serveurs via un tunnel numérique lumineux bleu et or avec des icônes de bouclier.
Sécurité et réseau

Configuration MikroTik L2TP VPN (avec IPsec) : guide RouterOS (2026)

Dans cette configuration MikroTik L2TP VPN, L2TP gère le tunneling tandis qu'IPsec assure le chiffrement et l'intégrité. Leur association vous offre une compatibilité native avec les clients sans dépendance tierce.

Rexa CyrusRexa Cyrus 9 min de lecture
Fenêtre de terminal affichant un message d'avertissement SSH sur le changement d'identification de l'hôte distant, avec le titre du guide de correction et le logo Cloudzy sur fond bleu-vert foncé.
Sécurité et réseau

Avertissement : l'identification de l'hôte distant a changé - comment résoudre ce problème

SSH est un protocole réseau sécurisé qui établit un tunnel chiffré entre des systèmes. Il reste très utilisé par les développeurs qui ont besoin d'un accès distant à des machines sans interface graphi

Rexa CyrusRexa Cyrus 10 min de lecture
Illustration du guide de dépannage du serveur DNS avec des symboles d'avertissement et un serveur bleu sur fond sombre, pour les erreurs de résolution de noms Linux
Sécurité et réseau

Échec temporaire de la résolution de noms : que signifie cette erreur et comment la corriger ?

Lors de l'utilisation de Linux, vous pouvez rencontrer une erreur d'échec temporaire de la résolution de noms en tentant d'accéder à des sites web, de mettre à jour des paquets ou d'exécuter des tâches nécessitant une connexion internet

Rexa CyrusRexa Cyrus 12 min de lecture

Prêt à déployer ? À partir de 2,48 $/mois.

Cloud indépendant, depuis 2008. AMD EPYC, NVMe, 40 Gbps. Remboursement sous 14 jours.