nftables

Informations Développé par |  Patrick McHardy/Pablo Neira

|

Dernière version |  1.1.3 (22 avril 2025)[1]
Dépôt |  git.netfilter.org/nftables
État du projet  |  En développement
Écrit en |  C
Système d'exploitation |  GNU/Linux et Android
Environnement |  Noyau Linux et Linux-libre
Type  |  Logiciel utilitaire
Application console (en)
Pare-feu
Licence |  Licence publique générale GNU version 2
Site web |  netfilter.org/projects/nftables

modifier \- modifier le code \- voir Wikidata (aide)

`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.

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 (en) 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 -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 | 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 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 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.

## Références

[modifier | modifier le code]

1. ↑ Pablo Neira Ayuso (d), « [ANNOUNCE] nftables 1.1.3 release », 22 avril 2025 (consulté le 22 avril 2025)
2. ↑ « xtables-translate », sur man7.org (consulté le 22 octobre 2021)

v · m

GNU/Linux

* GNU
* Noyau Linux

Histoire |

* Projet GNU
* Tux
* Controverse de nommage
* SCO et Linux

Noyau Linux |

* Pile graphique Linux
* DRI
* KMS
* V4L2
* Pile audio Linux
* ALSA
* JACK
* OSS
* PortAudio
* PipeWire
* PulseAudio
* Réseau
* Netfilter
* nftables
* BPfilter
* autre
* evdev
* inotify
* LVM

Distributions |

* Liste des distributions GNU/Linux
* Paquets logiciels
* Gestionnaire de paquets
* Distribution live
* Liste de live CD
* Live USB
* Mini Linux

Applications |

* ALSA
* LAMP
* Bureau
* Embarqué
* Jeux
* liste
* Matériel
* Client léger (LTSP)

Personnalités liées |

* Ulrich Drepper
* Gaël Duval
* Jon Hall
* Benjamin Mako Hill
* Ian Murdock
* Bruce Perens
* Lennart Poettering
* Daniel Robbins
* Mark Shuttleworth
* Jane Silber (en)
* Richard Stallman
* Linus Torvalds
* Patrick Volkerding
* Jeff Waugh

Médias |

* Linuxfr
* Linux Journal
* Linux Pratique
* GNU/Linux magazine France
* OMG! Ubuntu!
* Phoronix
* Planète Linux
* LWN

Mobile |

* Access Linux Platform
* Android
* Bada
* Firefox OS
* KaiOS
* LiMo
* Ubuntu Touch
* UBports
* Linaro
* MeeGo
* Mer
* Mobilinux
* OpenMoko
* Picotux
* Sailfish OS
* Tizen
* Ubuntu Netbook Edition
* Yun OS

Autres sujets |

* Fondation Linux
* Groupe d'utilisateurs Linux (GUL)
* Linux Standard Base (LSB)
* Compteur Linux

* Portail des logiciels libres
* Portail de Linux
* Portail de la sécurité des systèmes d'information

*[v]: Voir ce modèle.
*[m]: Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.