Linux & Systèmes PDF Gratuit

Cours iptables en PDF (Intermédiaire)

Les iptables : Ce qu'il faut savoir. Iptables est l'interface du sous‑système Netfilter du noyau Linux, utilisée pour définir des règles de filtrage, de NAT et de modification d'en‑têtes sur le parcours des paquets. Cette fiche met en perspective l'architecture (tables raw, mangle, nat, filter), le parcours des chaînes (PREROUTING, INPUT, OUTPUT, FORWARD, POSTROUTING) et les commandes essentielles pour administrer un pare‑feu (firewall) sur une machine Linux ; elle cite des exemples de commandes et un petit script présent dans le PDF gratuit à télécharger pour reproduire les configurations.

La sécurité périmétrique repose sur une politique claire, une compréhension des hooks noyau et une application cohérente des règles : une règle mal placée peut laisser passer des flux non désirés ou casser la connectivité. Adopter une approche méthodique réduit les risques et facilite la maintenance.

Netfilter est le cadre de filtrage et de manipulation des paquets intégré au noyau Linux. L'outil en espace utilisateur traduit les intentions administratives en règles appliquées par Netfilter ; ces règles sont évaluées au niveau des hooks (PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING). Comprendre cette relation permet d'anticiper l'ordre d'application des règles, l'impact sur le routage et l'interaction avec conntrack.

Netfilter vs Iptables : comprendre la différence

Netfilter fournit les points d'accrochage et les mécanismes (hooks, tables, connexion), tandis que l'outil en espace utilisateur expose la syntaxe et les commandes pour définir des règles persistantes ou temporaires. Cette distinction est essentielle pour diagnostiquer des comportements inattendus : un problème peut provenir d'une règle mal formulée ou d'une interaction au niveau noyau (modules, ordre des hooks, conntrack).

Tutoriel iptables : guide pratique

Approche pragmatique pour configurer un pare‑feu sur une machine de test avec accès root : définir des politiques par défaut, autoriser des services, mettre en place du NAT et tester les règles. Les exemples ci‑dessous sont accompagnés d'explications pas à pas pour limiter les erreurs lors d'un déploiement en production.

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Les commandes incluent des précisions sur les effets secondaires (conntrack, loopback, ordre des tables) afin de sécuriser les postes et services tout en maintenant la connectivité légitime.

Comprendre Netfilter et le filtrage

Netfilter fonctionne au niveau noyau et définit des hooks où les paquets sont examinés et éventuellement transformés. Les tables (raw, mangle, nat, filter) organisent les types d'opérations : traduction d'adresses, marquage et filtrage strict. La cohérence entre la table choisie et le hook garantit le comportement attendu du pare‑feu.

  • TCP : Gestion stateful via conntrack ; filtrage par flags TCP (--tcp-flags), par ports (--dport/--sport) et par états de connexion (ESTABLISHED, RELATED, NEW) pour autoriser uniquement les flux voulus.
  • UDP : Trafic sans état — filtrage basé sur ports et adresses, prévoir des règles de timeout et des règles explicites pour limiter les services.
  • ICMP : Contrôle fin des types ICMP pour autoriser, limiter ou bloquer les messages (echo-request, destination-unreachable). Autoriser les ICMP nécessaires permet le diagnostic réseau tout en réduisant la surface d'attaque.

Pare-feu (Firewall)

Un pare‑feu contrôle le passage des paquets entre interfaces et zones réseau en appliquant des règles déterministes. Dans le contexte Linux, il permet de mettre en œuvre une politique d'accès, d'isoler des services exposés et d'appliquer des traductions d'adresses. Documenter chaque règle, ordonner correctement les tables et tester en environnement isolé sont des pratiques indispensables pour maintenir un pare‑feu robuste et traçable.

Configuration d'un pare-feu Linux avec iptables

Exemples et recommandations pour une configuration de base : définir des politiques par défaut (DROP ou ACCEPT selon stratégie), autoriser le loopback, permettre les connexions établies et exposer des services spécifiques via DNAT/SNAT. Les notions suivantes aident à la configuration firewall et à l'écriture de règles iptables reproductibles tout en tenant compte des interactions avec Netfilter.

Comparatif rapide des protocoles gérés par Netfilter
Protocole Caractéristiques Considérations pour le pare‑feu Linux
TCP Orientation connexion, flags, contrôle d'état Utiliser conntrack, filtrer par états (NEW, ESTABLISHED), valider flags TCP
UDP Sans état, faible overhead Règles explicites par port, gestion des timeouts, marquage possible via mangle
ICMP Messages de diagnostic et d'erreur Limiter par type (echo-request, unreachable), préserver le diagnostic réseau

Compétences visées

  • Architecture Netfilter et tables : Comprendre la séparation fonctionnelle entre raw, mangle, nat et filter pour ordonner correctement les transformations et le filtrage.
  • Parcours des chaînes et hooks noyau : Saisir le trajet d'un paquet aux hooks kernel pour prévoir l'effet global d'une règle.
  • Syntaxe et commandes : Maîtriser les options de base (-L, -A, -D, -F, -P) et la structure iptables [-t table] command [match] [target].
  • Matchs avancés et filtrage : Filtrer par interface, adresse CIDR, protocole, ports et flags pour concevoir des politiques fines.
  • NAT et targets spécifiques : Distinguer DNAT, SNAT et MASQUERADE et comprendre leurs emplacements dans le flux des paquets.

📑 Sommaire du document

  • Cours iptables en PDF (Intermédiaire)

💡 Pourquoi choisir ce cours ?

Le document combine l'analyse du modèle noyau (Netfilter) avec des exemples pratiques et scripts pour faciliter le passage de la théorie à la mise en production. Une attention particulière est portée à l'ordre d'application des règles et aux effets collatéraux (conntrack, cache DNS, loopback) afin de réduire le risque d'erreurs d'administration.

👤 À qui s'adresse ce cours ?

  • Public cible : Administrateurs système et réseau, ingénieurs sécurité et étudiants en systèmes Linux souhaitant configurer un pare‑feu local et comprendre le traitement des paquets au niveau noyau.
  • Prérequis : Maîtrise de la ligne de commande Linux et des privilèges super‑utilisateur, connaissances de base en IP/TCP/UDP/ICMP et familiarité avec l'adressage CIDR et les ports.

❓ Foire Aux Questions (FAQ)

Comment Netfilter utilise‑t‑il le suivi de connexion (conntrack) ? Le suivi de connexion maintient un état pour chaque flux lorsque le module est chargé, permettant des décisions stateful (ACCEPT des paquets associés à une connexion établie). Le PDF précise que conntrack fonctionne en tâche de fond et influe sur le comportement des règles exposées.

Quand modifier un champ d'en‑tête avec la table mangle plutôt que faire du NAT ? La table mangle sert à altérer des champs d'en‑tête (TOS, MARK, TTL) pour le routage ou la QoS, tandis que la table nat traduit les adresses (DNAT en PREROUTING, SNAT/MASQUERADE en POSTROUTING). Utiliser mangle pour marquer ou qualifier des paquets et nat pour changer l'adresse source ou destination.

Rédigé par Patrick Cegielski. Le document suit une méthodologie structurée avec exemples reproductibles et tests en environnement isolé pour assurer rigueur et traçabilité.