Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| 130netfilter:10-fonction [le 28/03/2025 à 15:10] – prof | 130netfilter:10-fonction [le 05/04/2025 à 16:40] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. prof | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Le filtrage de paquets | + | ====== Le cœur du système |
| + | //Netfilter est un cadriciel (framework) implémentant un pare-feu au sein du noyau Linux à partir de la version 2.4 de ce dernier. Il prévoit des accroches (hooks) dans le noyau pour l' | ||
| Il y a de nombreuses raisons de faire un tel filtrage, tant en IPv4 qu'en IPv6, la plus souvent pour protéger les systèmes des agressions extérieures (pare-feu), mais pas seulement. | Il y a de nombreuses raisons de faire un tel filtrage, tant en IPv4 qu'en IPv6, la plus souvent pour protéger les systèmes des agressions extérieures (pare-feu), mais pas seulement. | ||
| - | Pour cette étude, comme d' | + | |
| - | {{ : | + | |
| - | La station qui fait office de routeur/ | + | |
| ===== Position du problème ===== | ===== Position du problème ===== | ||
| Cette station doit: | Cette station doit: | ||
| - | - assurer le routage IPv4 avec un masquage d' | + | - assurer le routage IPv4 avec un masquage d' |
| - assurer la liaison avec la délégation du bloc IPv6 2a01: | - assurer la liaison avec la délégation du bloc IPv6 2a01: | ||
| - assurer qu'il soit protégé des agressions de l' | - assurer qu'il soit protégé des agressions de l' | ||
| Ligne 14: | Ligne 14: | ||
| Normalement, | Normalement, | ||
| ===== Netfilter dans la pile IP ===== | ===== Netfilter dans la pile IP ===== | ||
| + | |||
| + | En tout état de cause, dans l' | ||
| {{ : | {{ : | ||
| - | En tout état de cause, dans l' | + | |
| - | - NF_IP_PRE_ROUTING; | + | |
| - | - NF_IP_LOCAL_IN; | + | |
| - | - NF_IP_FORWARD; | + | - NF_IP_PRE_ROUTING |
| - | - NF_IP_LOCAL_OUT; | + | - NF_IP_LOCAL_IN |
| - | - NF_IP_POSTROUTING; | + | - NF_IP_FORWARD |
| + | - NF_IP_LOCAL_OUT | ||
| + | - NF_IP_POSTROUTING | ||
| Lorsqu' | Lorsqu' | ||
| * soit il entre pour accéder à un process local, par exemple pour mettre à jour le cache DNS, ou pour interroger ce même cache, ou informer du voisinage réseau IPv6, | * soit il entre pour accéder à un process local, par exemple pour mettre à jour le cache DNS, ou pour interroger ce même cache, ou informer du voisinage réseau IPv6, | ||
| * soit il entre pour être routé dans l' | * soit il entre pour être routé dans l' | ||
| ** En se souvenant toujours que que les décisions à prendre suivront le même ordre, que ce soit enp1s0 en entrée et enp7s0 en sortie ou l' | ** En se souvenant toujours que que les décisions à prendre suivront le même ordre, que ce soit enp1s0 en entrée et enp7s0 en sortie ou l' | ||
| + | |||
| + | Les poignées de Netfilter peuvent se présenter également ainsi: | ||
| + | {{ : | ||
| + | Bien entendu, tout ceci est schématisé à l' | ||
| + | ===== Les compétences de Netfilter ===== | ||
| + | A travers ces cinq points d' | ||
| + | |||
| + | * D' | ||
| + | * D' | ||
| + | * D' | ||
| + | |||
| + | Pour réaliser ces opérations, | ||
| + | {{: | ||
| + | - Le filtrage des paquets, | ||
| + | - la translation d' | ||
| + | - le marquage des paquets. | ||
| + | |||
| + | ==== La table «Filter» ==== | ||
| + | Cette table va contenir des règles de filtrage qui permettront d'agir sur l' | ||
| + | - **ACCEPT**: Le paquet est en règle et va pouvoir poursuivre son chemin; | ||
| + | - **DROP**: Le paquet n'a pas satisfait à l' | ||
| + | - **REJECT** Ne s' | ||
| + | |||
| + | La table «Filter» peut agir sur les poignées (Hooks): | ||
| + | * **la chaîne INPUT.**\\ | ||
| + | * **la chaîne OUTPUT.\\ **Ici, ce ne sont que les paquets émis par ** l' | ||
| + | * **la chaîne FORWARD.\\ **Enfin, les paquets qui traversent l' | ||
| + | ==== La table «Nat» ==== | ||
| + | Cette table manipule les adresses de l' | ||
| + | - **DNAT** permet de changer l' | ||
| + | - **SNAT** permet de changer l' | ||
| + | - **MASQUERADE**, | ||
| + | - **REDIRECT** permet de changer le port de destination, | ||
| + | ==== La table «Mangle» ==== | ||
| + | Initialement utilisable seulement sur les poignées PREROUTING et OUTPUT, son champ d' | ||
| + | ===== Synthèse ===== | ||
| + | Tout ceci peut paraître indigeste à première vue et ça l'est même à seconde vue d' | ||
| + | |||
| + | - Lorsqu' | ||
| + | - suivant la décision de routage qui suit (le paquet concerne-t-il **après Prerouting)** un porcess local ou non ?), le paquet sera: | ||
| + | - dirigé directement vers la sortie et dans ce cas, il devra subir le jugement des filtres placés par la poignée 3 (Forwarding) qui à leur tour pourront bricoler le paquet ou même le rejeter, | ||
| + | - dirigé vers un process local, mais avant de l' | ||
| + | - Dans un cas comme dans l' | ||
Le cœur du système: Dernière modification le: 28/03/2025 à 15:10 par prof