nftables

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
nftables

Informations
Développé par Patrick McHardy/Pablo Neira
Dernière version 0.9.0[1]
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation LinuxVoir et modifier les données sur Wikidata
Environnement Linux
Type Packet_Filter
Licence GNU GPL
Site web www.netfilter.org

tc concerne le planificateur de paquets du noyau Linux en tant que iptables pour netfilter et nft pour nftables. Tous sont des programmes CLI d'espace utilisateur utilisés pour configurer leur sous-système de noyau Linux respectif.

nftables est un sous-système du noyau Linux fournissant le filtrage et la classification des paquets. Il est disponible depuis le noyau Linux 3.13 publié le 19 janvier 2014 [2].

nftables, ayant pour ambition de remplacer le framework iptables, est aussi censé remplacer certaines parties de Netfilter, tout en les conservant et les réutilisant.

Parmi les avantages de nftables sur netfilter, il y a moins de duplication de code et plus de débit. nftables est configuré via l'utilitaire espace utilisateur nft, tandis que netfilter est configuré via les utilitaires iptables, ip6tables, arptables et ebtables.

nftables utilise les blocs de construction de l'infrastructure Netfilter, tels que les points d'ancrage existants dans la pile de réseau, le système de suivi de connexion, le composant de mise en file d'attente de l'espace utilisateur et le sous-système de journalisation.

nft[modifier | modifier le code]

syntaxe de la ligne de commande[modifier | modifier le code]

Une commande pour supprimer tous les paquets avec l'adresse IP de destination 1.2.3.4 :

nft add rule ip filter output ip daddr 1.2.3.4 drop

La syntaxe de iptables est différente:

iptables -A OUTPUT -d 1.2.3.4 -j DROP

En outre, il existe une couche de compatibilité prévue pour la traduction des règles de pare-feu iptables déjà existantes en leurs équivalents nftables.[citation nécessaire]

L'histoire[modifier | modifier le code]

Le projet a été présenté pour la première fois au public lors de l'atelier Netfilter 2008 par Patrick McHardy de l'équipe principale de Netfilter. La première version préliminaire de l’implémentation du noyau et de l’espace utilisateur a été publiée en mars 2009. Bien que l’outil ait été appelé "... le plus grand changement apporté au pare-feu Linux depuis l’introduction d’iptables en 2001", il n’a reçu que peu de presse. Le pirate informatique Fyodor Vaskovich (Gordon Lyon) a déclaré qu'il "attend avec impatience sa publication générale dans le noyau Linux traditionnel".

Le projet est resté en phase alpha et le site Web officiel a été supprimé en 2009. En mars 2010, des courriels de l'auteur figurant sur les listes de diffusion du projet montraient que le projet était toujours actif et sur le point de sortir d'une version bêta, mais cette dernière n'a jamais été officiellement expédiée. En octobre 2012, Pablo Neira Ayuso a proposé une couche de compatibilité pour iptables et a annoncé l'inclusion éventuelle du projet dans le noyau principal.

Le 16 octobre 2013, Pablo Neira Ayuso a soumis une demande d'extraction nftables core à l'arborescence principale du noyau Linux. Il a été fusionné dans la ligne principale du noyau le 19 janvier 2014 avec la publication de la version 3.13 du noyau Linux.

Vue d'ensemble[modifier | modifier le code]

Le moteur de noyau nftables ajoute une simple machine virtuelle au noyau Linux, capable d'exécuter du bytecode pour inspecter un paquet réseau et de décider de la manière dont ce paquet doit être traité. Les opérations implémentées par cette machine virtuelle sont intentionnellement rendues basiques. Il peut extraire des données du paquet lui-même, consulter les métadonnées associées (interface entrante, par exemple) et gérer les données de suivi de connexion. Des opérateurs arithmétiques, binaires et de comparaison peuvent être utilisés pour prendre des décisions en fonction de ces données. La machine virtuelle est également capable de manipuler des ensembles de données (généralement des adresses IP), ce qui permet de remplacer plusieurs opérations de comparaison par une recherche d'ensemble unique.

L'organisation décrite ci-dessus est contraire au code de pare-feu d'iptables, dont la connaissance du protocole est tellement intégrée à la logique que le code a dû être répliqué à quatre reprises - pour les ponts IPv4, IPv6, ARP et Ethernet - comme pare-feu Les moteurs sont trop spécifiques au protocole pour être utilisés de manière générique.

Les principaux avantages de nftables par rapport à iptables sont la simplification de l’ABI du noyau Linux, la réduction de la duplication de code, l’amélioration du rapport d’erreurs et l’exécution, le stockage et les modifications incrémentielles plus efficaces des règles de filtrage. Iptables, ip6tables, arptables et ebtables (utilisés respectivement pour les ponts IPv4, IPv6, ARP et Ethernet) sont censés être remplacés par nft (8) en tant qu'implémentation unifiée unique, fournissant une configuration de pare-feu au-dessus de la machine virtuelle intégrée au noyau. .

nftables propose également une API utilisateur améliorée qui permet le remplacement atomique d’une ou de plusieurs règles de pare-feu au sein d’une même transaction Netlink. Cela accélère les changements de configuration du pare-feu pour les configurations ayant de grands ensembles de règles; cela peut également aider à éviter les conditions de concurrence pendant l'exécution des modifications de règles. En outre, une couche de compatibilité prévue fournira la traduction des règles de pare-feu iptables déjà existantes en leurs équivalents nftables.

References[modifier | modifier le code]

  1. « News of the netfilter/iptables project », sur netfilter.org, (consulté le 8 juin 2018)