Réseaux & Télécoms PDF Gratuit

Cours Utilisation des iptables en PDF (Intermédiaire)

Utilisation des iptables. Iptables est l'outil en espace utilisateur du framework Netfilter : il permet de définir des règles de filtrage de paquets et de traduction d'adresses pour les hôtes Linux via des tables et des chaînes qui organisent les politiques de traitement. La maîtrise des tables, des chaînes et des règles est essentielle pour contrôler le flux TCP, UDP et ICMP sur un réseau local ou un routeur. Ce document traite iptables en tant que Firewall Linux et rassemble la théorie réseau nécessaire ainsi que des exemples pratiques à télécharger pour tester des scripts et des configurations.

🎯 Ce que vous allez apprendre

  • Tables et chaînes — identification des tables principales et du rôle des chaînes intégrées : comment une table sépare filtrage, NAT et traitement de paquets, pourquoi cette séparation structure la stratégie de sécurité et comment rédiger des règles cohérentes qui s'insèrent dans ces chaînes.
  • Commandes et gestion des règles — syntaxes de base and opérations courantes pour ajouter, supprimer et lister des règles ; organisation d'un jeu de règles reproductible et automatisable, et compréhension de l'impact de chaque commande sur le traitement des paquets. Inclut l'usage de iptables-save et iptables-restore pour la gestion des règles persistantes.
  • Filtrage protocoles (TCP/UDP/ICMP) — principes de filtrage applicables selon le transport : ports, états de connexion et types ICMP ; conception de règles ciblées qui réduisent la surface d'attaque sans perturber les services essentiels.
  • Traduction d'adresse (NAT) et camouflage — mécanismes de traduction d'adresse source et de destination ainsi que le camouflage des adresses locales ; compréhension de quand utiliser la traduction pour l'accès sortant, la redirection de ports ou l'équilibrage de services.
  • Politique et scripts — mise en place d'une politique de filtrage par défaut, création de nouvelles chaînes et automatisation via scripts ; production d'un script de démarrage fiable et méthodes de test pour vérifier sa robustesse en production.
  • Exercices pratiques et études de cas — travaux dirigés et exemples concrets fournis dans le document pour appliquer les concepts sur des captures avec Wireshark/tcpdump et valider le comportement des règles en conditions réelles.

Architecture Netfilter et fonctionnement d'iptables

Netfilter est l'architecture noyau qui fournit des points d'accroche pour l'inspection et la modification des paquets. Iptables agit en espace utilisateur pour manipuler les tables et chaînes exposées par Netfilter : chaque table regroupe des chaînes traitant le filtrage, le NAT ou le mangle, et chaque chaîne contient des règles évaluées en séquence. Comprendre l'ordre des hooks, les états de connexion et la priorité des chaînes permet d'écrire des règles prévisibles et efficaces pour un pare-feu Linux.

Les 3 chaînes de la table Filter

  • INPUT — gère les paquets destinés au système local ; toute règle sur la chaîne INPUT détermine si le système accepte ou refuse des connexions entrantes vers ses services.
  • FORWARD — concerne les paquets traversant l'hôte lorsqu'il agit comme routeur ; la chaîne FORWARD contrôle le transit entre interfaces sans toucher aux paquets destinés à la machine elle‑même.
  • OUTPUT — traite les paquets générés localement par le système ; utile pour restreindre ou tracer les connexions initiées depuis l'hôte.

Installation et prérequis système

Iptables est disponible nativement sur la plupart des distributions Linux traditionnelles. Sur Debian/Ubuntu et dérivés, les paquets standards installent les outils en espace utilisateur ; sur CentOS/RHEL, iptables et ses utilitaires sont fournis par les dépôts officiels. Prérequis : accès root pour appliquer des règles, connaissances de base en réseau (adresses IP, ports) et aisance avec la ligne de commande. Le document précise aussi les équivalences avec nftables lorsque pertinent.

Sauvegarde et restauration des règles (iptables-save)

La persistance des règles est essentielle pour garantir que la politique réseau survive à un redémarrage. Les outils iptables-save et iptables-restore exportent et importent l'ensemble des règles d'une table au format lisible par iptables. Cette section décrit les bonnes pratiques : emplacement des fichiers de sauvegarde, automatisation au démarrage et vérification après restauration pour limiter les interruptions de service.

Persistance des règles

Utilisez iptables-save pour exporter l'état courant et iptables-restore pour recharger un jeu de règles identique sur une machine. Exemple d'usage courant pour rendre persistantes des règles :

sudo iptables-save > /etc/iptables/rules.v4
sudo iptables-restore < /etc/iptables/rules.v4

Adopter une stratégie de sauvegarde régulière et conserver des versions permet de revenir rapidement à une configuration connue en cas d'incident.

Commandes iptables essentielles

Options courantes d'iptables
Option Action Usage typique
-A Append Ajouter une règle à la fin d'une chaîne
-D Delete Supprimer une règle existante
-L List Lister les règles d'une chaîne
-F Flush Vider toutes les règles d'une chaîne
-P Policy Définir la politique par défaut d'une chaîne

Syntaxe et commandes de base d'iptables

La gestion efficace d'iptables repose sur des commandes simples et reproductibles pour inspecter, réinitialiser ou purger l'état des règles. Outre les options -A, -D, -L, -F et -P, on utilise fréquemment -Z pour remettre à zéro les compteurs de paquets/bytes d'une chaîne. La pratique recommandée consiste à lister les règles en mode verbeux et sans résolution DNS pour un diagnostic rapide puis à appliquer des sauvegardes validées avant toute modification en production.

Commande courante pour lister l'état actuel des règles sans résolutions et en affichage détaillé :

sudo iptables -L -v -n

Pour réinitialiser les compteurs : sudo iptables -Z. Pour vider une chaîne : sudo iptables -F. Utiliser ces commandes dans des scripts de maintenance permet de conserver une visibilité précise sur le comportement du pare-feu.

Filtrage protocoles (TCP/UDP/ICMP)

Principes de filtrage applicables selon le transport : ports, états de connexion et types ICMP. Conception de règles ciblées qui réduisent la surface d'attaque sans perturber les services essentiels. Exemples de critères : matches par état (-m conntrack --ctstate), par interface, par adresse source/destination, ou par plage de ports.

Traduction d'adresse (NAT) et camouflage

Mécanismes de traduction d'adresse source et de destination ainsi que le camouflage des adresses locales ; compréhension de quand utiliser la traduction pour l'accès sortant, la redirection de ports ou l'équilibrage de services. La redirection de ports est couramment employée pour exposer un service interne sur une adresse publique.

Politique et scripts

Mise en place d'une politique de filtrage par défaut, création de nouvelles chaînes et automatisation via scripts ; production d'un script de démarrage fiable et méthodes de test pour vérifier sa robustesse en production. Documenter l'objectif de chaque chaîne et adopter une politique par défaut explicite (par exemple politique par défaut DROP) facilite les audits et la maintenance.

Exercices pratiques et études de cas

Travaux dirigés et exemples concrets pour appliquer les concepts sur des captures avec Wireshark/tcpdump. Les études de cas décrivent la mise en place d'un firewall sur une passerelle, la gestion du NAT pour l'accès Internet et la validation des règles en conditions réelles à l'aide d'outils de capture.

📑 Sommaire du document

💡 Pourquoi choisir ce cours ?

Rédigé par Patrick Cegielski (Université Paris XII - IUT Sénart-Fontainebleau), ce document combine les fondamentaux réseau et une montée progressive vers la configuration d'iptables, avec une approche méthodique adaptée aux TP et à l'exploitation. Le support relie l'analyse de paquets (tcpdump, Wireshark) à la mise en œuvre pratique des règles, NAT et politiques de retransmission pour une compréhension opérationnelle mesurable. Ce PDF propose une présentation plus pédagogique et structurée que le tutoriel brut d'Oskar Andreasson, en expliquant pas à pas les choix de conception et les tests associés.

👤 À qui s'adresse ce cours ?

  • Public cible : étudiants en réseaux/TI, administrateurs systèmes et techniciens réseau souhaitant sécuriser et gérer le trafic IPv4 sur des machines Linux, ou préparer des TP en IUT/BUT.
  • Prérequis : notions de l'architecture TCP/IP (adresses IP, ports), compréhension basique des couches réseau et transport, aisance avec la ligne de commande Linux et droits root pour appliquer des règles.

❓ Foire Aux Questions (FAQ)

En quoi la table NAT diffère-t-elle de la table de filtrage ?

La table NAT modifie les adresses ou ports des paquets (traduction d'adresse source ou de destination), alors que la table de filtrage applique des décisions de laisser/refuser le passage. En pratique, NAT est utilisé pour l'accès sortant et la redirection de services, tandis que la table de filtrage impose la politique de sécurité et contrôle le trafic en fonction d'états et de ports.

Comme structurer une politique de filtrage sûre et maintenable ?

Définir une politique par défaut explicite (DROP ou REJECT selon le contexte), regrouper les règles par finalité dans des chaînes logiques et documenter l'objectif de chaque chaîne. Automatiser le déploiement via des scripts et utiliser des sauvegardes régulières permet de tester et valider les règles avec des captures réseau avant mise en production, limitant ainsi les régressions.