Les deux pare-feu peuvent filtrer le trafic VPN transféré, et ils rattachent les règles au chemin du paquet de manières différentes. iptables possède des chaînes intégrées à l’intérieur d’une table, donc FORWARD existe comme point de crochet nommé. nftables sépare le nom d’une chaîne de son type, de son crochet et de sa priorité, ce qui signifie qu’une chaîne ordinaire nommée FORWARD ne filtre absolument rien. Comparer les deux modèles explique pourquoi une entrée qui semble correcte dans un outil n’a aucun effet dans l’autre.

Une chaîne est un conteneur. Que le noyau la consulte dépend de l’implémentation et de la façon dont le jeu de règles la rattache.

Deux modèles, deux rattachements différents

Dans iptables, la table filter fournit trois chaînes intégrées, INPUT, FORWARD et OUTPUT, et -N crée une chaîne définie par l’utilisateur qui ne prend effet que lorsqu’on y saute depuis l’une d’elles. Le manuel de nftables définit plutôt des chaînes de base, qui déclarent leur type, leur crochet et leur priorité, et des chaînes ordinaires, qui ne le font pas. Une chaîne de base peut porter n’importe quel nom, et une chaîne ordinaire nommée FORWARD ne gagne aucune propriété de son étiquette. Toute la différence est là, et elle est invisible dans un tutoriel qui n’affiche que le texte des règles.

Les backends de compatibilité ajoutent une seconde raison de ne pas déduire un comportement du nom d’une commande. La documentation d’iptables signale des opérations qui diffèrent sous iptables-nft, alors traitez nftables natif, iptables-nft et un ancien jeu de règles comme trois systèmes et non comme trois orthographes d’un seul.

Lisez l’erreur dans son contexte réel

Une table absente, un échec de permission, une fonctionnalité du noyau indisponible et une chaîne nommée absente sont quatre constats différents, et un seul concerne la chaîne. Notez la version de l’outil, la famille d’adresses et la table demandées, l’espace de noms réseau et la première erreur exacte. Vérifiez ensuite quel composant possède le jeu de règles : un service de pare-feu ou une passerelle gérée par un produit peut générer ses propres chaînes et son ordre. Ajouter une chaîne native à côté d’elles laisse la politique gérée intacte et rend l’inventaire plus confus.

L’espace de noms d’un conteneur peut contenir un jeu de règles différent de celui de l’hôte, donc une commande exécutée dans le mauvais contexte ne peut pas montrer quelle chaîne a vu un paquet transféré. Élever les privilèges parce qu’une chaîne attendue n’était pas visible n’est pas un diagnostic.

Les compteurs prouvent la portée, pas le verdict

Les compteurs de règles vous disent qu’une règle a été atteinte. Ils ne vous disent pas qu’une règle ultérieure a autorisé l’opération, et ils ne prouvent pas que toutes les voies alternatives ont été refusées. Lisez-les pendant un flux autorisé et inoffensif, avec l’ordre des règles et le rattachement de la chaîne, et traitez-les comme une observation et non comme un verdict. Un compteur non nul sur une règle de rejet signifie que le trafic l’a atteinte ; il ne dit rien du trafic qui ne l’a pas atteinte.

Le transfert IP du noyau est un réglage entièrement distinct. Qu’une chaîne existe n’active pas le transfert, et l’absence d’une étiquette familière ne signifie pas que le transfert s’est arrêté.

Décrivez le flux que vous comptez protéger

Notez une requête client après la décapsulation : sa source, sa destination, la famille d’adresses et si elle se termine à la passerelle ou la traverse. L’entrée du service local et le trafic transféré s’observent à des points différents, ils demandent donc des règles et des tests différents. Pour un VPN ponté, vérifiez aussi le chemin du pont, car une chaîne au niveau IP ne contrôle pas automatiquement les trames Ethernet.

Conservez un accès de secours indépendant avant de modifier une passerelle distante. Confirmez ensuite le flux prévu et les refus nécessaires sous le même jeu de règles. Une nouvelle chaîne vide au nom familier n’est pas une réparation.

La comparaison se termine par une question : quel crochet le noyau appelle-t-il réellement pour ce paquet ? Répondez-y, et le nom de la chaîne cesse d’avoir de l’importance.

Articles similaires