nftables
À quoi il sert
nftables est le successeur d'iptables au sein de Netfilter, le sous-système de filtrage du noyau, dans lequel il est entré avec Linux 3.13. La commande nft écrit des règles dans le noyau puis se termine : c'est le noyau qui filtre. Il n'impose aucune table prédéfinie, la famille inet couvre IPv4 et IPv6 dans une même table, et les ensembles (sets), éventuellement dynamiques et avec expiration, remplacent de longues listes de règles. Un fichier complet se charge par nft -f en une seule transaction : une erreur, et rien n'est appliqué.
Quand le choisir
Pour écrire directement la politique de filtrage d'un serveur Debian, où il est le moteur par défaut depuis Debian 10 : un fichier /etc/nftables.conf chargé au démarrage par nftables.service. Il est aussi le moteur sous-jacent des outils de plus haut niveau : firewalld sur Red Hat, et iptables-nft, la commande iptables des distributions actuelles, qu'utilisent ufw et Docker. Sur Ubuntu, où ufw est fourni, on garde en général ufw : un seul outil par machine.
Points d'attention
- Sur Debian 13, le paquet n'active ni ne démarre le service, et le fichier livré accepte tout : un Debian fraîchement installé ne filtre rien.
- Validez avant d'appliquer (
nft -c -f /etc/nftables.conf), et programmez un retour arrière automatique (systemd-run --on-active=5min ...) quand vous travaillez à distance. - Les règles ajoutées à chaud (
nft add,nft insert) sont perdues au redémarrage : ce qui doit durer va dans le fichier, versionné. add ruleplace la règle en fin de chaîne, derrière une éventuelle règle finale ;insert ... position <handle>la place avant (nft -aaffiche les identifiants).- Entre chaînes de base qui partagent un crochet, un
acceptn'est pas définitif alors qu'undropl'est : avec ufw ou Docker en plus d'une table écrite à la main, un paquet doit être accepté par toutes. flush ruleset(etsystemctl stop nftablessur Debian) vide aussi les tables de Docker ; sur un tel hôte, ne supprimez que votre table.- Les tables créées par
iptables-nftse modifient avec iptables, jamais avecnft. - N'oubliez pas ICMP et ICMPv6 : sans eux, découverte du MTU du chemin et découverte des voisins IPv6 cessent de fonctionner.
Par où commencer
La leçon Le pare-feu de l'hôte du cours Linux : administration système, qui écrit le fichier nftables de sig-outils, l'applique avec un filet de sécurité et le diagnostique avec les compteurs et nft monitor trace. Puis la page de manuel nft(8) et le wiki nftables, notamment les pages sur les crochets de Netfilter et la configuration des chaînes.