Convertion automatique iptables en nfstables

Bonjour à tout le monde,

J’ai deux machines qui ont des règles de pare-feu car elle assurent le rôle de routeur.
La première est sous Raspbian 10 et la seconde sous Debian 11.

Il me semble qu’à partir de je-ne-sais-plus-quelle-version du noyau, iptables n’est plus utilisé et a été remplacé par nftables.
Est-ce que ça veut bien dire que les règles que je mets en iptables sont converties en nftables ?
Si c’est bien le cas, comme il me semble l’avoir compris, comment puis-je visualiser les règles appliquées en nftables ?

Merci pour vos réponses.

Non, iptables reste présent et utilisable dans les dernières versions du noyau de sid (6.0). J’ignore s’il y a des plans pour le retirer dans l’avenir.

A partir de buster, le paquet iptables fournit deux versions pour chaque commande iptables, iptables-save… :

  • la version traditionnelle (iptables-legacy…) qui utilise les modules iptables du noyau

  • la version compatible nftables (iptables-nft…) qui convertit les règles iptables en règles nftables et utilise les modules nftables du noyau

Par défaut, les commandes iptables pointent vers les versions nft. Cela peut être modifié via update-alternatives.

Pour voir les règles nftables actives : nft list ruleset
La commande iptables-translate affiche la traduction d’une règle iptables en règle nftables. iptables-save-translate fait de même pour un jeu de règles au format d’iptables-save.

1 J'aime

Voilà, je te remercie, c’est la commande que je cherchais.
Par contre, il y a un truc que je ne comprends pas du tout dans le résultat :

        chain SSH_CHECK {
                iifname "nut2lookout" counter packets 0 bytes 0 accept
                ip saddr 62.210.206.69 counter packets 0 bytes 0 accept
                # recent: SET name: SSH side: source mask: 255.255.255.255 counter packets 34867 bytes 2065801
                # recent: UPDATE seconds: 30 hit_count: 2 name: SSH side: source mask: 255.255.255.255 counter packets 24017 bytes 1441365 drop
                counter packets 10850 bytes 624436 accept
        }

C’est censé être pour n’accepter qu’une seule ouverture de connexion par trente secondes, sauf pour quelques exceptions.
Je vois bien les exceptions, mais je ne comprends pas pourquoi la règle est précédée de #, est-ce que ça veut dire que la règle n’est pas appliquée ?

Possible. La conversion de règles, voire nftables lui-même, ne supporte pas forcément toutes les extensions d’iptables.
Dans ce cas tu peux utiliser le support iptables natif du noyau au lieu de nftables.

Ah, du coup, tu es en train de me dire que cette règle n’est pas active parce qu’elle n’est pas gérée par nftables ?
Mais, c’est bizarre, je l’ai testée cette règle et elle fonctionne.

Je n’ai pas dit ça. Je connais très peu nftables que je n’utilise pas encore. Si les règles recent sont effectives, alors tout va bien.