Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
iptables [Le 19/07/2026, 18:24] – [Script iptables] BeAvEriptables [Le 20/07/2026, 10:45] (Version actuelle) – niveau titre (h1) | pas de maj à iptables | liens wpfr | icône | mise en forme krodelabestiole
Ligne 1: Ligne 1:
 {{tag>pare-feu sécurité réseau}} {{tag>pare-feu sécurité réseau}}
-{{ /iptables.jpg?340nolink| Iptables}} 
----- 
  
-=====Iptables=====+{{ :icons:ufw.png?100|Icône iptables}} 
 +====== iptables ======
  
 FIXME: Depuis une Ubuntu 23.10, le package [[apt>iptables]] semble être maintenu, voir : https://changelogs.ubuntu.com/changelogs/pool/main/i/iptables/iptables_1.8.9-2ubuntu2/changelog -- [[utilisateurs:BeAvEr]], en date du : ✨✨ **////__(14/09/2023)__** ✨✨ FIXME: Depuis une Ubuntu 23.10, le package [[apt>iptables]] semble être maintenu, voir : https://changelogs.ubuntu.com/changelogs/pool/main/i/iptables/iptables_1.8.9-2ubuntu2/changelog -- [[utilisateurs:BeAvEr]], en date du : ✨✨ **////__(14/09/2023)__** ✨✨
Ligne 9: Ligne 8:
 ---- ----
  
-Iptables est une interface en ligne de commande permettant de configurer Netfilter. En plus de Iptables, depuis la version 8.04, Ubuntu est installé avec la surcouche [[:ufw|UFW]] qui permet de contrôler simplement Netfilter, [[:ufw|UFW]] est toutefois moins complet que iptables.+**[[wpfr>iptables]]** est une interface en ligne de commande permettant de configurer Netfilter. En plus de **iptables**, depuis la version 8.04, Ubuntu est installé avec la surcouche [[:UFW]] qui permet de contrôler simplement [[wpfr>Netfilter]], [[:UFW]] est toutefois moins complet que **iptables**.
  
-Cette documentation est une introduction à Iptables, elle est destinée à ceux qui souhaitent mettre en place un [[:pare-feu]] et/ou un partage de connexion, sur une machine Linux, sans passer par une interface graphique. Seule la table par défaut (Filter) d'Iptables est présentée ici et seules les chaînes utilisées par Filter (Input, Forward et Output) y sont exposées.+Cette documentation est une introduction à **iptables**, elle est destinée à ceux qui souhaitent mettre en place un [[:pare-feu]] et/ou un partage de connexion, sur une machine Linux, sans passer par une interface graphique. Seule la table par défaut (//Filte//r) d'iptables est présentée ici et seules les chaînes utilisées par //Filter// (//Input////Forward// et //Output//) y sont exposées.
  
 Les lecteurs désirant approfondir leur recherche et aborder l'utilisation des autres tables (Nat, Mangle, Row et Security) ainsi que des chaînes non utilisables par Filter (Prerouting et Postrouting) se tourneront vers les nombreuses documentations disponibles sur l'Internet. Ceux désirant configurer un [[:pare-feu]] par l'intermédiaire d'une interface graphique se tourneront vers Gufw ou encore vers Shorewall pour une utilisation sur serveur. Les lecteurs désirant approfondir leur recherche et aborder l'utilisation des autres tables (Nat, Mangle, Row et Security) ainsi que des chaînes non utilisables par Filter (Prerouting et Postrouting) se tourneront vers les nombreuses documentations disponibles sur l'Internet. Ceux désirant configurer un [[:pare-feu]] par l'intermédiaire d'une interface graphique se tourneront vers Gufw ou encore vers Shorewall pour une utilisation sur serveur.
  
-iptables existe aussi pour ipv6, pour cela il suffit d'utiliser la commande ip6tables au lieu de iptables+**iptables** existe aussi pour l'IPv6, pour cela il suffit d'utiliser la commande ''ip6tables'' au lieu de ''iptables''.
- +
-Pour une bonne compréhension d'Iptables (et des pare-feux en général) il est conseillé d'avoir des notions en réseaux informatiques, au minima connaître le principe de fonctionnement des protocoles TCP et UDP.+
  
 +Pour une bonne compréhension d'**iptables** (et des pare-feux en général) il est conseillé d'avoir des notions en réseaux informatiques, au minima connaître le principe de fonctionnement des protocoles [[wpfr>Transmission_Control_Protocol|TCP]] et [[wpfr>User_Datagram_Protocol|UDP]].
  
 ===== Configuration du pare-feu ===== ===== Configuration du pare-feu =====
Ligne 28: Ligne 26:
 Afin de ne pas avoir de problème au moment où on crée ces règles, nous allons d'abord créer les autorisations, puis nous enverrons le reste en enfer. Afin de ne pas avoir de problème au moment où on crée ces règles, nous allons d'abord créer les autorisations, puis nous enverrons le reste en enfer.
  
-En tapant « ''sudo iptables -L'' », une liste de vos règles actuelles est affichée. Si vous (ou un logiciel) n'avez encore jamais touché à //iptables//, les chaînes sont vides, et vous devriez voir :+En tapant « ''sudo iptables -L'' », une liste de vos règles actuelles est affichée. Si vous (ou un logiciel) n'avez encore jamais touché à **iptables**, les chaînes sont vides, et vous devriez voir :
 <code> <code>
 Chain INPUT (policy ACCEPT) Chain INPUT (policy ACCEPT)
Ligne 45: Ligne 43:
 Par défaut, « ''sudo iptables -L'' » n'affiche que la table "filter". Pour consulter les autres tables, vous devez ajouter l'option -t suivie de "nat", "mangle" ou "raw". Pour la configuration d'un [[:pare-feu]] la table "filter" est toutefois la seule nécessaire. Par défaut, « ''sudo iptables -L'' » n'affiche que la table "filter". Pour consulter les autres tables, vous devez ajouter l'option -t suivie de "nat", "mangle" ou "raw". Pour la configuration d'un [[:pare-feu]] la table "filter" est toutefois la seule nécessaire.
  
-<note warning>ATTENTION, si vous avez modifié la règle par défaut pour le blocage (iptables -P INPUT DROP  voir plus bas) et que vous tapez iptables -F vous bloquerez tous les accès ... y compris celui en cours. Ceci est particulièrement problématique  sur  une machine sur laquelle vous accédez à distance (serveur etc.).</note>+<note warning>ATTENTION, si vous avez modifié la règle par défaut pour le blocage (''iptables -P INPUT DROP'' voir plus bas) et que vous entrez ''iptables -F'' vous bloquerez tous les accès... y compris celui en cours. Ceci est particulièrement problématique  sur  une machine sur laquelle vous accédez à distance (serveur etc.).</note>
  
 Si vous avez déjà modifié la configuration et que vous voulez la réinitialiser, tapez : Si vous avez déjà modifié la configuration et que vous voulez la réinitialiser, tapez :
Ligne 69: Ligne 67:
 === Permettre le trafic entrant sur un port spécifique === === Permettre le trafic entrant sur un port spécifique ===
  
-Pour permettre le trafic entrant sur le port 22 (traditionnellement utilisé par SSH, vous devrez indiquer à iptables tout le trafic TCP sur le port 22 de votre adaptateur réseau.+Pour permettre le trafic entrant sur le port 22 (traditionnellement utilisé par [[:SSH]], vous devrez indiquer à **iptables** tout le trafic TCP sur le port 22 de votre adaptateur réseau.
 <code> <code>
 sudo iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT sudo iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
Ligne 197: Ligne 195:
 Vous avez testé vos règles, ça marche au poil, alors il reste à les appliquer au démarrage. Vous avez testé vos règles, ça marche au poil, alors il reste à les appliquer au démarrage.
  
-iptables-persistent propose de sauvegarder les règles dans le dossier **/etc/iptables**, fichier **rules.v4** pour les règles IPv4 et **rules.v6** pour les règles IPv6. Le script peut s’appeler via :+iptables-persistent propose de sauvegarder les règles dans le répertoire ''/etc/iptables'', fichier ''rules.v4'' pour les règles IPv4 et ''rules.v6'' pour les règles IPv6. Le script peut s’appeler via :
  
   sudo iptables-save   sudo iptables-save
  
-Il prend les arguments : **save** pour sauvegarder les règles, **flush** pour vider toutes les règles et **reload** pour les recharger depuis les fichiers précités.+Il prend les arguments : ''save'' pour sauvegarder les règles, ''flush'' pour vider toutes les règles et ''reload'' pour les recharger depuis les fichiers précités.
  
 ==== Via un fichier ==== ==== Via un fichier ====
  
-<note important>Depuis l'utilisation du daemon **systemd-networkd**, il n'est plus possible de lancer votre script iptables via l'emplacement **/etc/network/if-pre-up.d/** de votre Ubuntu. Pour vérifier si vous êtes concerné par cette note, veuillez ouvrir un [[:terminal]], avec pour contenu **pidof systemd-networkd**, si vous avez un retour, merci de vous référer au chapitre **3.2.1**.+<note important>Depuis l'utilisation du daemon **systemd-networkd**, il n'est plus possible de lancer votre script iptables via l'emplacement ''/etc/network/if-pre-up.d/'' de votre Ubuntu. Pour vérifier si vous êtes concerné par cette note, veuillez ouvrir un [[:terminal]], avec pour contenu **pidof systemd-networkd**, si vous avez un retour, merci de vous référer au chapitre **3.2.1**.
 </note> </note>
  
-Commencez par éditer un fichier en root, que vous enregistrerez sous **/etc/network/if-pre-up.d/**+Commencez par éditer un fichier en root, que vous enregistrerez sous ''/etc/network/if-pre-up.d/''
  
 La première ligne de ce fichier doit être : La première ligne de ce fichier doit être :
Ligne 220: Ligne 218:
   iptables-restore < /etc/iptables.test.rules   iptables-restore < /etc/iptables.test.rules
  
-Le reste du fichier doit contenir les commandes //iptables// que vous avez générées.+Le reste du fichier doit contenir les commandes **iptables** que vous avez générées.
  
 Déplacez le script iptables dans /etc/network/if-pre-up.d/ : Déplacez le script iptables dans /etc/network/if-pre-up.d/ :
Ligne 351: Ligne 349:
 </code>  </code> 
  
-===== Documentations supplémentaires =====+===== Voir aussi ===== 
 + 
 +==== Documentations supplémentaires ====
  
 En anglais : En anglais :
Ligne 365: Ligne 365:
   * [[https://www.it-connect.fr/supprimer-une-regle-precise-dans-iptables/|Supprimer une règle précise sous Iptables]] sur IT-Connect.fr   * [[https://www.it-connect.fr/supprimer-une-regle-precise-dans-iptables/|Supprimer une règle précise sous Iptables]] sur IT-Connect.fr
   * [[https://wiki.visionduweb.fr/index.php?title=Configurer_le_pare-feu_Iptables|Quelques notes avec des exemples ainsi que des liens valides vers des tutoriels pour utiliser Iptables]] depuis le wiki de Visionduweb.   * [[https://wiki.visionduweb.fr/index.php?title=Configurer_le_pare-feu_Iptables|Quelques notes avec des exemples ainsi que des liens valides vers des tutoriels pour utiliser Iptables]] depuis le wiki de Visionduweb.
-===== Sources =====+ 
 +==== Sources ====
  
   * Basé sur [[https://wiki.ubuntu.com/IptablesHowTo]]   * Basé sur [[https://wiki.ubuntu.com/IptablesHowTo]]
-  * Merci à Rusty Russell et son How-To, il est la base de cette page. +  * Merci à Rusty Russell et son //How-To//, il est la base de cette page. 
   * Et merci surtout pour son travail au sein de l'équipe de développement de Netfilter. :-)   * Et merci surtout pour son travail au sein de l'équipe de développement de Netfilter. :-)
  
- +---- 
-//Contributeurs : [[utilisateurs:Kmeleon]], [[utilisateurs:eks]], [[utilisateurs:BeAvEr]] (Création du script iptables et modification majeure de la documentation), [[utilisateurs:maverick62]],  [[utilisateurs:mydjey]] (mise à jour et refonte).//+//[[:Contributeurs]] : [[:utilisateurs:Kmeleon]], [[:utilisateurs:eks]], [[:utilisateurs:BeAvEr]] (création du script iptables et modification majeure de la documentation), [[:utilisateurs:maverick62]],  [[:utilisateurs:mydjey]] (mise à jour et refonte).//