Chapitre 2. Démarrer avec nftables


Le cadre nftables classe les paquets et succède aux utilitaires iptables, ip6tables, arptables, ebtables et ipset. Il offre de nombreuses améliorations en termes de commodité, de fonctionnalités et de performances par rapport aux outils de filtrage de paquets précédents, notamment :

  • Tableaux de consultation intégrés au lieu d'un traitement linéaire
  • Un cadre unique pour les protocoles IPv4 et IPv6
  • Toutes les règles sont appliquées de manière atomique au lieu d'aller chercher, de mettre à jour et de stocker un ensemble complet de règles
  • Prise en charge du débogage et du traçage dans l'ensemble de règles (nftrace) et surveillance des événements de traçage (dans l'outil nft )
  • Syntaxe plus cohérente et plus compacte, pas d'extensions spécifiques au protocole
  • Une API Netlink pour les applications tierces

Le cadre nftables utilise des tableaux pour stocker les chaînes. Les chaînes contiennent des règles individuelles pour effectuer des actions. L'utilitaire nft remplace tous les outils des cadres de filtrage de paquets précédents. Vous pouvez utiliser la bibliothèque libnftnl pour une interaction de bas niveau avec nftables Netlink API par le biais de la bibliothèque libmnl.

Pour afficher l'effet des modifications apportées au jeu de règles, utilisez la commande nft list ruleset. Comme ces utilitaires ajoutent des tables, des chaînes, des règles, des jeux et d'autres objets au jeu de règles nftables, sachez que les opérations sur le jeu de règles nftables, telles que la commande nft flush ruleset, peuvent affecter les jeux de règles installés à l'aide de la commande iptables.

2.1. Migrer d'iptables à nftables

Si votre configuration de pare-feu utilise encore les règles iptables, vous pouvez migrer vos règles iptables vers nftables.

Important

Les paquetages ipset et iptables-nft ont été dépréciés dans Red Hat Enterprise Linux 9. Cela inclut la dépréciation de nft-variants tels que les utilitaires iptables, ip6tables, arptables, et ebtables. Si vous utilisez l'un de ces outils, par exemple, parce que vous avez effectué une mise à niveau à partir d'une version antérieure de RHEL, Red Hat vous recommande de migrer vers l'outil de ligne de commande nft fourni par le paquetage nftables.

2.1.1. Quand utiliser firewalld, nftables ou iptables ?

Voici un bref aperçu des scénarios dans lesquels vous devez utiliser l'un des utilitaires suivants :

  • firewalld: Utilisez l'utilitaire firewalld pour des cas d'utilisation simples de pare-feu. L'utilitaire est facile à utiliser et couvre les cas d'utilisation typiques de ces scénarios.
  • nftables: Utilisez l'utilitaire nftables pour configurer des pare-feu complexes et critiques en termes de performances, par exemple pour l'ensemble d'un réseau.
  • iptables: L'utilitaire iptables sur Red Hat Enterprise Linux utilise l'API du noyau nf_tables au lieu de l'interface legacy. L'API nf_tables offre une compatibilité ascendante de sorte que les scripts qui utilisent les commandes iptables fonctionnent toujours sur Red Hat Enterprise Linux. Pour les nouveaux scripts de pare-feu, Red Hat recommande d'utiliser nftables.
Important

Pour éviter que les différents services de pare-feu ne s'influencent mutuellement, exécutez un seul d'entre eux sur un hôte RHEL et désactivez les autres services.

2.1.2. Conversion des jeux de règles iptables et ip6tables en nftables

Utilisez les utilitaires iptables-restore-translate et ip6tables-restore-translate pour traduire les jeux de règles iptables et ip6tables en nftables.

Conditions préalables

  • Les paquets nftables et iptables sont installés.
  • Le système a configuré les règles iptables et ip6tables.

Procédure

  1. Inscrivez les règles iptables et ip6tables dans un fichier :

    # iptables-save >/root/iptables.dump
    # ip6tables-save >/root/ip6tables.dump
  2. Convertir les fichiers dump en instructions nftables:

    # iptables-restore-translate -f /root/iptables.dump > /etc/nftables/ruleset-migrated-from-iptables.nft
    # ip6tables-restore-translate -f /root/ip6tables.dump > /etc/nftables/ruleset-migrated-from-ip6tables.nft
  3. Examinez et, si nécessaire, mettez à jour manuellement les règles générées sur nftables.
  4. Pour permettre au service nftables de charger les fichiers générés, ajoutez ce qui suit au fichier /etc/sysconfig/nftables.conf:

    include "/etc/nftables/ruleset-migrated-from-iptables.nft"
    include "/etc/nftables/ruleset-migrated-from-ip6tables.nft"
  5. Arrêtez et désactivez le service iptables:

    # systemctl disable --now iptables

    Si vous avez utilisé un script personnalisé pour charger les règles iptables, assurez-vous que le script ne démarre plus automatiquement et redémarrez pour vider toutes les tables.

  6. Activez et démarrez le service nftables:

    # systemctl enable --now nftables

Vérification

  • Affichez l'ensemble de règles nftables:

    # nft list ruleset

2.1.3. Conversion de règles iptables et ip6tables en règles nftables

Red Hat Enterprise Linux fournit les utilitaires iptables-translate et ip6tables-translate pour convertir une règle iptables ou ip6tables en une règle équivalente pour nftables.

Conditions préalables

  • Le paquet nftables est installé.

Procédure

  • Utilisez l'utilitaire iptables-translate ou ip6tables-translate au lieu de iptables ou ip6tables pour afficher la règle nftables correspondante, par exemple :

    # iptables-translate -A INPUT -s 192.0.2.0/24 -j ACCEPT
    nft add rule ip filter INPUT ip saddr 192.0.2.0/24 counter accept

    Notez que certaines extensions ne prennent pas en charge la traduction. Dans ce cas, l'utilitaire imprime la règle non traduite préfixée par le signe #, par exemple :

    # iptables-translate -A INPUT -j CHECKSUM --checksum-fill
    nft # -A INPUT -j CHECKSUM --checksum-fill

Ressources supplémentaires

  • iptables-translate --help

2.1.4. Comparaison des commandes iptables et nftables les plus courantes

Voici une comparaison des commandes courantes iptables et nftables:

  • Liste de toutes les règles :

    iptablesnftables

    iptables-save

    nft list ruleset

  • L'inscription d'une certaine table et d'une certaine chaîne :

    iptablesnftables

    iptables -L

    nft list table ip filter

    iptables -L INPUT

    nft list chain ip filter INPUT

    iptables -t nat -L PREROUTING

    nft list chain ip nat PREROUTING

    La commande nft ne précrée pas les tables et les chaînes. Elles n'existent que si un utilisateur les a créées manuellement.

    Liste des règles générées par firewalld :

    # nft list table inet firewalld
    # nft list table ip firewalld
    # nft list table ip6 firewalld

2.1.5. Ressources supplémentaires

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat, Inc.