Linux & Systèmes PDF Gratuit

Tutoriel iptables en PDF (Intermédiaire)

Les iptables : Ce qu'il faut savoir. Iptables est l'interface utilisateur de Netfilter sous Linux permettant de définir des règles de filtrage, de NAT et de modification d'en‑têtes au niveau noyau. Cet outil orchestre le parcours des paquets via des tables (raw, mangle, nat, filter) et des chaînes (PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING) pour contrôler l'accès et la traduction d'adresses. Documenté ici en 15 pages avec exemples et scripts, ce PDF gratuit fournit les commandes pratiques à exécuter en tant que super‑utilisateur pour construire une politique de sécurité réseau. Compatible avec Debian, Ubuntu et CentOS, le contenu pose les bases fondamentales avant une migration vers nftables, afin de faciliter la transition et de préserver les concepts de netfilter hooks lors de la montée en compétence.

Installation et prérequis

Prérequis : accès root (su/sudo), un environnement de test et une sauvegarde préalable des configurations. Sur Debian/Ubuntu, installer les paquets de persistance courants :

apt-get update
apt-get install iptables-persistent

Sur CentOS/RHEL, utiliser yum ou dnf pour installer les services de firewall natifs. Vérifier la présence des outils iptables-save et iptables-restore avant toute modification majeure.

Ce que vous allez apprendre

  • Architecture Netfilter et parcours des paquets — comprendre le rôle des hooks noyau et la trajectoire d'une trame à travers les tables raw, mangle, nat et filter. Identifier où intervenir (PREROUTING, INPUT, OUTPUT, POSTROUTING) pour appliquer un DNAT, SNAT ou marquer un paquet.
  • Syntaxe et usage des commandes — maîtriser la forme générale iptables [-t table] command [match] [target] et les options courantes (-L, -A, -D, -P, -F). Rédiger des règles reproductibles et diagnostiquer l'état des chaînes avec des listings clairs.
  • Politiques et gestion des chaînes — définir des politiques par défaut ACCEPT ou DROP et gérer l'ordre des règles en utilisant --append et --delete. Concevoir une politique sûre (ex : DROP par défaut + règles explicites) sans bloquer le loopback ni les connexions établies.
  • Filtrage TCP/UDP/ICMP avancé — usage des matches protocoles, --dport/--sport, et des drapeaux TCP (--tcp-flags) pour écrire des règles granulaires. Autoriser SSH, ICMP et services spécifiques tout en fermant les vecteurs d'attaque évidents.
  • NAT et translation d'adresses — distinguer les usages de la table nat et les moments d'application (PREROUTING/POSTROUTING), et comprendre les cibles SNAT, DNAT et MASQUERADE. Configurer le partage Internet et la redirection de ports.
  • Scripting et automatisation — intégrer des règles dans un script bash exécutable pour restaurer rapidement une configuration (exemple présent : script moniptables.sh). Rendre vos politiques persistantes et reproductibles lors des redémarrages.

Installation d'iptables sur Debian et Ubuntu

Sur les distributions basées Debian, les paquets utiles incluent les utilitaires de gestion et le mécanisme de persistance. Après installation, valider l'état avec iptables -L -n -v et exporter la configuration de référence. Ces étapes permettent de sécuriser serveur Debian ou Ubuntu rapidement et de préparer une restitution automatique en cas de redémarrage.

Configuration d'un pare-feu Linux pas à pas

Approche recommandée : appliquer une politique restrictive, autoriser explicitement les services nécessaires, tester en environnement isolé puis déployer. Inclure toujours des règles pour le loopback et pour les états ESTABLISHED,RELATED. Documenter chaque modification afin d'assurer traçabilité et reproductibilité des règles de filtrage.

📑 Sommaire du cours PDF

  • Mise en place
  • Tables et chaînes
  • Les commandes iptables
  • Gestion des chaînes
  • Règles de filtrage

💡 Pourquoi choisir ce cours ?

Approche pragmatique : exposition du modèle Netfilter (avec figure de traversal) suivie d'exemples de commandes réels et d'un script d'initialisation. Patrick Cegielski ancre la présentation sur le comportement du noyau (hooks, conntrack) et sur des commandes opérationnelles testables. Le format synthétique facilite une mise en production rapide tout en conservant la précision technique nécessaire pour un déploiement sûr.

Référence historique : le "Iptables Tutorial" d'Oskar Andreasson est cité comme source de référence pour les concepts fondamentaux. Ce document complète ce tutoriel en proposant des exemples orientés production et des scripts d'automatisation, tout en rappelant les bonnes pratiques issues de cet ouvrage de référence.

👤 À qui s'adresse ce cours ?

  • Public cible: administrateurs système et ingénieurs réseau souhaitant gérer le filtrage et la NAT sur des serveurs Linux; techniciens sécurité qui configurent des pare‑feux au niveau hôte.
  • Prérequis: bonne maîtrise du shell Linux et des droits super‑utilisateur (su/sudo), notions d'adressage IPv4/CIDR, compréhension de TCP/UDP/ICMP et familiarité avec les services et numéros de ports.

❓ Foire Aux Questions (FAQ)

Quelle est la différence pratique entre la table nat et la table mangle ? La table nat est destinée à la traduction d'adresses et de ports (DNAT en PREROUTING, SNAT/MASQUERADE en POSTROUTING) tandis que mangle sert à modifier des champs d'en‑tête (TOS, TTL, MARK) pour QoS ou routage. En production, utiliser nat pour redirection/masquage et mangle pour marquage et modification d'en‑têtes.

Quand préférer une politique DROP plutôt qu'ACCEPT ? Une posture restrictive commence par bloquer puis autoriser explicitement les services nécessaires. Ajouter des règles pour le loopback et pour les connexions établies évite les interruptions de services légitimes tout en limitant la surface d'attaque.

iptables-persistent et netfilter-persistent

Pour la persistance des règles après redémarrage, utiliser le paquet iptables-persistent sur Debian/Ubuntu ; il exporte et restaure les configurations via /etc/iptables/rules.v4. Sur d'autres distributions, netfilter-persistent ou iptables-services remplissent la même fonction. Ces mécanismes garantissent que les règles de filtrage sont appliquées dès le boot, ce qui est essentiel pour tout pare-feu Linux destiné à sécuriser serveur Debian en production.

Sauvegarde et persistance

Exporter l'état courant avec iptables-save vers un fichier de configuration permet de conserver une politique vérifiée :

iptables-save > /etc/iptables/rules.v4

Restaurer avec iptables-restore ou via les services de persistance de la distribution. L'automatisation de ces étapes facilite la reproductibilité et la traçabilité des règles de filtrage, et réduit les risques lors des redémarrages.

Exemple de script de base

Exemple minimal prêt à être adapté : règles pour accepter le loopback, autoriser SSH et préserver les connexions déjà établies. Tester dans un environnement de recette avant déploiement en production.

#!/bin/sh
# script minimal iptables
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# loopback
iptables -A INPUT -i lo -j ACCEPT

# connexions existantes
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# SSH
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT

# sauvegarde optionnelle
# iptables-save > /etc/iptables/rules.v4

Comparatif : Iptables vs Nftables

Iptables reste un standard largement déployé et bien documenté, pertinent pour des environnements hérités et des outils existants. Nftables propose un moteur unifié et des performances améliorées ; la migration nécessite de comprendre les netfilter hooks et la traduction des règles. Maîtriser les concepts présentés ici facilite la transition vers nftables sans perdre la compréhension du modèle sous-jacent.

Commandes de diagnostic réseau

Commandes pratiques pour vérifier l'état du filtrage et diagnostiquer des problèmes réseau : utiliser iptables -L -n -v et iptables -t nat -L -n -v pour lister règles et compteurs, iptables-save pour exporter la configuration en clair, et ss -tuln ou netstat pour vérifier les sockets locaux. Pour le suivi des connexions, le paquet conntrack fournit conntrack -L. Ces outils aident à identifier les règles qui bloquent du trafic et à affiner la politique de sécurisation sans interruption prolongée des services.