Netfilter

Netfilter est le module qui apporte à Linux les fonctions de pare-feu, de traduction d'adresse et d'historisation du trafic réseau.

Recherche sur Google Images :


Source image : www.formation.ssi.gouv.fr
Cette image est un résultat de recherche de Google Image. Elle est peut-être réduite par rapport à l'originale et/ou protégée par des droits d'auteur.

Page(s) en rapport avec ce sujet :

  • Netfilter est un module qui sert à filtrer et de manipuler les paquets... La table apporte : une chaîne INPUT pour filtrer les paquets à destination du ... (source : fr.wikibooks)
  • netfilter est un sous-ensemble du noyau de GNU/Linux qui permet d'interagir sur le ... Quand un paquet IP est pris en charge par le noyau, il effectue un voyage dans les ... netfilter fonctionne avec tables et de chaines.... (source : aidounix)
  • La table "Filter". Table par défaut. Cette table va contenir l'ensemble des règles qui permettront de filtrer les paquets. Cette table contient trois chaînes :... (source : pagesperso-orange)
Image:netfilter-logo.png
Développeur L'équipe Netfilter[1]
Environnement GNU/Linux
Type Pare-feu
Licence GNU GPL[2]
Site web www. netfilter. org

Netfilter est le module qui apporte à Linux les fonctions de pare-feu, de traduction d'adresse et d'historisation du trafic réseau. Netfilter fonctionne en mode noyau. Il intercepte et manipule les paquets IP avant et après le routage.

iptables est la commande autorise un administrateur réseaux de configurer Netfilter en espace utilisateur. iptables configure la gestion des paquets réseaux IPv4. Pour la gestion des paquets réseaux IPv6, on utilise la commande ip6tables.

Historique et appellation

Netfilter a été intégré au noyau Linux à partir de la version 2.4. Il est issu de la réécriture d'ipchains qui fonctionnait dans la série des noyaux 2.2. Pour favoriser la transition, les paramètres d'iptables ressemblent à ceux de son prédécesseur.

Le nom iptables est fréquemment utilisé pour parler de toute l'infrastructure Netfilter mais il n'est que l'outil servant au configurer à partir d'un interpréteur de commandes.

Fonctionnement général

Cheminement des paquets IP à travers netfilter[3]

Netfilter installe des accroches (hooks) dans la gestion des paquets réseau du noyau Linux. Les accroches sont spécifiques à chaque protocole réseau. Quand elles sont chargées, les tables de Netfilter inscrivent des chaînes sur ces accroches. Chacune de ces chaînes peut contenir des règles qui déterminent le traitement à effectuer sur les paquets qui traversent l'accroche. L'administrateur peut manipuler directement les règles des chaînes avec l'outil iptables.

Par exemple en IPv4, l'accroche NF_IP_LOCAL_IN est installée après le routage d'un paquet qui arrive d'une interface réseau et avant qu'il soit envoyé aux processus. La table filter installe une chaîne appelée INPUT sur cette accroche. L'administrateur peut alors ajouter dans cette chaîne des règles qui autorisent ou non les paquets entrants.

Chaque règle spécifie des critères de sélection (adresse source, protocole, etc. ) et ce qui doit advenir des paquets correspondants (rejet, autorisation, archivage, etc. ). Les critères disponibles et les actions envisageables ne sont pas forcément les mêmes suivant la chaîne dans laquelle on ajoute la règle. Suivant l'action choisie, le paquet parcourt ou non les règles suivantes de la chaîne. Si aucune règle ne correspond au paquet, c'est la politique par défaut de la chaîne qui décide du sort du paquet.

Tables

Netfilter est apporté avec plusieurs tables principales, mais des modules d'extension peuvent en créer de nouvelles. Chaque table contient des chaînes prédéfinies à travers lesquelles les paquets vont passer. L'administrateur peut ajouter et retirer des chaînes personnelles dans n'importe quelle table. Au départ, l'ensemble des chaînes sont vides et leur politique par défaut est d'accepter les paquets.

Tables pour les paquets réseaux IPv4

Pour la gestion des paquets réseaux IPv4, Netfilter dispose de 3 tables : filter, nat et mangle. Elles se paramètrent avec la commande iptables.

filter

La table filter est responsable du filtrage des paquets. Son utilisation principale est de jeter (DROP) ou de laisser passer (ACCEPT) les paquets. La table apporte :

nat

La table nat est responsable de la traduction d'adresses et de ports. Seul le premier paquet de chaque connexion passe à travers cette table. Les règles déterminent comment seront modifiés l'ensemble des paquets relatifs à cette connexion. Les chaînes apportées :

mangle

La table mangle est responsable de la transformation des options des paquets comme par exemple la qualité de service. Elle permet surtout d'apposer une marque (interne au noyau) qui est parfois utilisée pour la couche routage ou les fonctions avancées de qualité de service comme Diffserv. L'ensemble des paquets passent à travers cette table dans une ou plusieurs chaînes. Ils passent :


Tables pour les paquets réseaux IPv6

Pour la gestion des paquets IPv6, Netfilter dispose de 3 autres tables : filter, raw et mangle. Elles se paramètrent avec la commande ip6tables.

filter

La table filter comporte 3 chaînes : INPUT, FORWARD et OUTPUT

raw

La table raw comporte 2 chaînes : PREROUTING et OUTPUT

mangle

La table mangle comporte 5 chaînes : PREROUTING, INPUT, FORWARD, OUTPUT et POSTROUTING.

Qualités

Défauts

Exemples d'utilisation

Comme énormément de logiciels du projet GNU, la commande iptables accepte une forme longue et une forme courte pour ses paramètres. Par exemple pour vider la chaine INPUT de la table filter (la table par défaut), l'administrateur peut utiliser :

iptables --flush INPUT

ou

iptables -F INPUT

Pour vider la chaine d'une autre table, la syntaxe est la suivante :

iptables --table nat --flush POSTROUTING

La politique par défaut est d'accepter l'ensemble des paquets, ce qui est le plus souvent un mauvais choix pour la sécurité. Pour changer cette règle sur la chaine FORWARD de la table filter, la syntaxe est :

iptables --policy FORWARD DROP

ou encore

iptables -P FORWARD DROP

Pour laisser passer les paquets sur le port telnet qui viennent d'un réseau local (forme longue)  :

iptables --append INPUT --protocol tcp --destination-port telnet --source 192.168.13.0/24 --jump ACCEPT

Pour ignorer les autres paquets entrants sur le port telnet (forme courte)  :

iptables -A INPUT -p tcp --dport telnet -j DROP

Pour rejeter les paquets entrants sur le port 3128, fréquemment utilisé par les proxies :

iptables -A INPUT -p tcp --dport 3128 -j REJECT --reject-with tcp-reset

Pour effectuer une traduction d'adresse automatique pour l'ensemble des paquets partant par l'interface ppp0 qui représente fréquemment la connexion internet :

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Interfaces graphiques

Ces programmes permettent de configurer Netfilter graphiquement :

Les autres pare-feu libres

Liens externes

Source

Notes

Recherche sur Amazone (livres) :




Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/Iptables.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 23/03/2009.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu