nftables

logiciel utilitaire pour le filtrage de paquets Linux

nftables

Informations
Développé par Patrick McHardy/Pablo Neira
Dernière version 1.0.9 ()[1]Voir et modifier les données sur Wikidata
Dépôt git.netfilter.org/nftablesVoir et modifier les données sur Wikidata
État du projet En développement
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation GNU/Linux et AndroidVoir et modifier les données sur Wikidata
Environnement Noyau Linux et Linux-libreVoir et modifier les données sur Wikidata
Type Logiciel utilitaire
Application console (en)
Pare-feuVoir et modifier les données sur Wikidata
Licence Licence publique générale GNU version 2Voir et modifier les données sur Wikidata
Site web netfilter.org/projects/nftablesVoir et modifier les données sur Wikidata

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 [2].

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, 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 iptables, 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

syntaxe de la ligne de commande modifier

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 -t filter -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[2].

L'histoire modifier

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 . 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 hackeur 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 , 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 , Pablo Neira Ayuso a proposé une couche de compatibilité pour iptables et a annoncé l'inclusion éventuelle du projet dans le noyau principal.

Le , 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 avec la publication de la version 3.13 du noyau Linux.

Vue d'ensemble modifier

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.

Références modifier

  1. (en) Pablo Neira Ayuso (d), « nftables 1.0.9 release », (consulté le )
  2. « xtables-translate », sur man7.org (consulté le )