Aller au contenu principal
Sujet: La gestion de Parefeu Software Linux (Lu 333 fois) sujet précédent - sujet suivant

La gestion de Parefeu Software Linux

Presque 1 an, en message privé sur le forum, on m'avait sollicité pour aborder le sujet de la configuration de pare-feu sur Linux.

J'avais répondu que le pare-feu le pratiquant depuis pas mal de temps,  j'en avais que les bases pour les besoins de la maison : NAS, accès depuis l'extérieur, transfert automatique des donnés vers home. 
La gestion de pare-feu étant très complexe on ne peut que se cultiver selon les besoin du moment.
Mais par-contre les bases,  il fallait au moins les connaitre (pas les maitriser) , mais les connaitre pour savoir de quoi on parle et comment configurer un pare-feu le cas échéant.

Ayant un peu de temps, et étant en pleine configuration de pare-feu avec Neftables (j'ai abandonné FirewallD), je partage avec vous ma mise jour de la connaissance d'un pare-feu, avant de partager dans un autre poste ma configuration Neftables.

1. Définition d'un parefeu software  & Netfilter 
Un pare-feu logiciel Linux est un programme qui contrôle le trafic réseau entrant et sortant sur un système d'exploitation Linux, en se basant sur des règles de sécurité prédéfinies. Il s'intègre directement au noyau Linux et utilise le framework Netfilter pour filtrer les paquets.
Netfilter est donc le framework de filtrage de paquets intégré au noyau Linux depuis la version 2.4

2. Architecture de base de Netfilter 
L'architecture de Netfilter comprend plusieurs composants clés :
  • Hooks (points d'accroche)
  • Tables
  • Chaînes
  • Règles

3. Hooks Netfilter 
Les hooks sont des points d'interception dans la pile réseau du noyau. Les cinq hooks principaux sont :
  • NF_IP_PRE_ROUTING : Avant le routage
  • NF_IP_LOCAL_IN : Pour les paquets entrants destinés au système local
  • NF_IP_FORWARD : Pour les paquets routés
  • NF_IP_LOCAL_OUT : Pour les paquets générés localement
  • NF_IP_POST_ROUTING : Après le routage

4. Tables 
Les tables regroupent les règles selon leur fonction. Les tables principales sont :
  • filter : Pour le filtrage de paquets (pare-feu)
  • nat : Pour la traduction d'adresses réseau
  • mangle : Pour la modification des paquets
  • raw : Pour la configuration d'exemptions de suivi de connexion

5. Chaînes 
Les chaînes sont des séquences de règles attachées aux hooks. Les chaînes standard sont :
  • PREROUTING (hook PRE_ROUTING)
  • INPUT (hook LOCAL_IN)
  • FORWARD (hook FORWARD)
  • OUTPUT (hook LOCAL_OUT)
  • POSTROUTING (hook POST_ROUTING)

6. Règles 
Les règles sont des instructions spécifiques pour le traitement des paquets. Chaque règle comprend :
  • Des critères de correspondance (adresse IP, port, protocole, etc.)
  • Une action à effectuer (voir la liste des actions ci-dessous)

7. Actions (Verdicts) de Netfilter
  • ACCEPT : Accepte le paquet
  • DROP : Rejette silencieusement le paquet
  • QUEUE : Envoie le paquet vers l'espace utilisateur
  • RETURN : Arrête le traitement dans la chaîne actuelle et retourne à la chaîne appelante
  • REJECT : Rejette le paquet et envoie une réponse
  • LOG : Journalise les informations sur le paquet
  • MARK : Marque le paquet
  • DNAT : Modifie l'adresse de destination du paquet
  • SNAT : Modifie l'adresse source du paquet
  • MASQUERADE : Forme spéciale de SNAT pour les interfaces dynamiques
  • REDIRECT: Redirige le paquet vers un port local
  • TEE: Copie le paquet vers une autre destination
  • CONNMARK : Marque la connexion associée au paquet

8. Flux de traitement des paquets
  • Le paquet arrive à un hook.
  • Les chaînes associées à ce hook sont parcourues dans l'ordre.
  • Les règles de chaque chaîne sont évaluées séquentiellement.
  • La première règle correspondante détermine l'action à effectuer.
  • Si aucune règle ne correspond, la politique par défaut de la chaîne est appliquée.

9. Connection Tracking
Netfilter inclut un système de suivi de connexion qui permet de maintenir l'état des connexions réseau, facilitant le filtrage basé sur l'état.

10. Interaction avec l'espace utilisateur
Netfilter fournit des interfaces pour permettre aux outils en espace utilisateur (comme iptables ou nftables) de configurer les règles de filtrage et de NAT.

En Conclusion :

Cette présentation offre une vue d'ensemble complète & détaillée de  Netfilter, couvrant ses composants principaux, son fonctionnement hiérarchique et ses capacités au niveau du noyau Linux.

C'est sur cette base que l'on utilise à partir du point : (4) :
  • iptables
  • neftables
  • ufw
  • FirewallD
  • etc ect .... La base est Netfilter dans le noyau Linux

Sources :
Wikipedia Netfilter
Site Netfilter
IT CONNECT