Réseaux & Télécoms PDF Gratuit

Cours Utilisation des iptables en PDF (Intermédiaire)

Utilisation des iptables : Ce qu'il faut savoir. Iptables est l'interface utilisateur pour manipuler Netfilter : Netfilter constitue le moteur de filtrage intégré au noyau Linux tandis qu'iptables fournit les commandes en espace utilisateur pour définir, lister et appliquer des règles. Organisées en tables et chaînes, ces règles dirigent le traitement des paquets vers des cibles (ACCEPT, DROP, REJECT, ...). Maîtriser cet outil permet de construire des pare‑feu hôtes, d'implémenter du NAT et d'automatiser des politiques de sécurité au niveau paquet dans un contexte d'administration réseau rigoureux.

Objectifs du cours : Maîtriser le pare-feu Linux

  • Tables et chaînes Netfilter — identifier les tables (filter, nat, mangle) et le rôle des chaînes (INPUT, OUTPUT, FORWARD) pour diriger le traitement des paquets ; positionner une règle selon le hook impacte routage et NAT.
  • Commandes et gestion des règles — syntaxe essentielle, méthodes sûres pour ajouter, supprimer et lister des règles, et bonnes pratiques d'automatisation. Exemple concret :
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    Tester les règles avant déploiement et consigner les modifications dans des scripts versionnés est recommandé.
  • Politiques de filtrage et inspection protocolaire — construire des règles pour TCP, UDP et ICMP en s'appuyant sur ports, flags et états de connexion ; distinguer SYN/ACK et gérer les états améliore la sécurité des services.
  • NAT et traduction d'adresses — principes de réécriture d'en‑têtes IP, cas d'usage pour publication de services et masquage de réseaux internes, et impact sur l'établissement des sessions TCP.
  • Organisation pratique — intégrer les règles dans des scripts, créer des chaînes dédiées pour simplifier la maintenance et préparer des scénarios de validation avant production.

📑 Sommaire du document

Prérequis théoriques

  • Modèle OSI : notions des couches et interactions entre couche réseau et transport pour situer le rôle d'iptables.
  • Encapsulation IP : comprendre enchaînement des en‑têtes (Ethernet → IP → TCP/UDP) afin d'identifier où et comment les champs sont modifiés.
  • Fonctionnement des ports TCP/UDP : différences entre état de connexion, ports source/destination et impact sur les sélecteurs de règles.

Concepts fondamentaux : Modèle OSI et Netfilter

Iptables intervient principalement au niveau 3 (couche Réseau) et au niveau 4 (couche Transport) du modèle OSI : il inspecte et filtre des paquets IP en se basant sur les adresses et sur les en‑têtes TCP/UDP (ports, flags, états). Netfilter fournit les hooks côté noyau permettant d'intercepter les paquets lors du routage, de la pré‑routage, de la post‑routage et lors des traitements locaux ; ces points d'insertion déterminent si une réécriture NAT ou un filtrage s'applique avant ou après la décision de routage. Cette séparation explique pourquoi certaines règles NAT doivent être placées dans la table nat tandis que les politiques de filtrage résident dans filter. Comprendre ces niveaux facilite le diagnostic des flux et la conception de règles efficaces sans altérer l'établissement des connexions.

Installation et configuration de Netfilter

  • Activer les modules noyau requis et installer les utilitaires adaptés à la distribution (iptables/iproute).
  • Vérifier la présence des hooks Netfilter et charger les modules si nécessaire pour les fonctionnalités attendues.
  • Configurer les paramètres système pertinents, par exemple net.ipv4.ip_forward pour activer le routage IPv4 nécessaire au NAT.
  • Sur des environnements gérés, automatiser l'application des règles via scripts ou playbooks pour faciliter l'audit et la reproductibilité des changements.

Mise en place d'un pare-feu Linux avec iptables

La mise en place commence par définir une politique par défaut et structurer les chaînes personnalisées pour séparer l'infrastructure des règles applicatives. Prioriser les règles les plus restrictives en haut de la chaîne réduit les évaluations inutiles. Lors d'un déploiement, documenter chaque règle et inclure des tests fonctionnels permet d'éviter des interruptions de service.

Exemples de scripts de pare-feu

#!/bin/bash
# Script minimal : définir politiques et règles de base
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
# journaliser et sauvegarder ensuite avec iptables-save

Gestion des paquets et filtrage réseau

Un filtrage efficace combine règles d'accès, inspection protocolaire et gestion des états de connexion pour limiter la surface d'attaque tout en préservant la connectivité légitime. Classer les règles par service, utiliser des chaînes dédiées et préférer des sélecteurs précis (ports, adresses, états) améliore la lisibilité et la maintenabilité des politiques.

Persistance des règles et automatisation

Assurer la persistance évite de perdre la configuration lors d'un redémarrage ou d'une mise à jour. Intégrer l'export et l'import des règles dans les procédures d'administration réseau permet une restauration fiable et reproductible.

Automatisation avec iptables-save

Les utilitaires d'export/import facilitent la gestion centralisée des configurations. iptables-save exporte l'état actif sous forme lisible par iptables-restore, tandis que iptables-restore applique en bloc un fichier d'état. En pratique, on exporte l'état courant, on versionne ce fichier dans un dépôt d'administration réseau, puis on restaure automatiquement au démarrage via un script ou un playbook. Cette méthode garantit la reproductibilité et simplifie le déploiement sur plusieurs hôtes.

# sauvegarder l'état courant
iptables-save > /etc/iptables/rules.v4

# restaurer depuis le fichier
iptables-restore < /etc/iptables/rules.v4

💡 Pourquoi choisir ce cours ?

Patrick Cegielski, enseignant en réseaux à l'Université Paris XII (IUT Sénart‑Fontainebleau), articule rappels sur le modèle TCP/IP et analyse des protocoles avec une approche opérationnelle: progression du conceptuel vers des scripts de déploiement. Les chapitres sur le NAT et les politiques de filtrage proposent un équilibre théorie/pratique pertinent pour les administrateurs systèmes.

👤 À qui s'adresse ce cours ?

  • Public cible : étudiants en réseaux, administrateurs systèmes et ingénieurs sécurité amenés à configurer des pare‑feu hôtes, gérer le NAT ou écrire des scripts de filtrage sur serveurs Linux.
  • Prérequis : notions de base du modèle TCP/IP (adresses IP, ports), maîtrise élémentaire de la ligne de commande Linux et familiarité avec l'administration système.

❓ Foire Aux Questions (FAQ)

Comment iptables réalise-t-il la traduction d'adresse (NAT) ?

  • La table nat contient des chaînes exécutées lors de la création de connexions et permet de réécrire les en‑têtes IP pour la translation source ou destination.
  • Le hook nat détermine l'effet sur l'établissement des sessions et sur le routage ; certaines réécritures interviennent avant le routage, d'autres après.
  • Tester les règles NAT en préproduction permet d'anticiper les conséquences sur les relais de connexions TCP.

Quelle différence pratique entre DROP et REJECT dans une politique de filtrage ?

  • DROP : le paquet est silencieusement abandonné, réduisant les informations renvoyées à l'initiateur.
  • REJECT : un message d'erreur (ICMP ou RST selon le protocole) est renvoyé, informant l'initiateur de l'indisponibilité.
  • Le choix dépend de la tactique de sécurité et de l'expérience client attendue (détection rapide vs discrétion).