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