Table des matières

Nftables

Éléments théoriques

Tables

Contrairement à Iptables, il n'y a pas de tables prédéfinies. Il existe par contre des familles de tables correspondants aux outils utilisés :

Commandes

Général

Tables

Chains

Création de chains

Nous avons donc vu qu'il fallait créer une chaine INPUT pour traiter les paquets qui arrivaient sur l'interface et une chaine OUPUT pour traiter ceux qui sortaient de l'interface réseau. Pour rappel, nous ne travaillerons ici qu'en IPv4 sur notre table mon_filtreIPv4 :

nft add chain ip mon_filtreIPv4 input { type filter hook input priority 0 \; }

nft add chain ip mon_filtreIPv4 output { type filter hook output priority 0 \; }

Ici, quelques explications s'imposent, on a donc dans une première partie une syntaxe assez claire. On va utiliser “nft” pour ajouter (“add”) une chaine dans la famille “ip” et dans la table “mon_filtreIPv4”. Ce qui suit permet de former une base chain.

Chain ? base chain ? Quelle différence ?

Une base chain est une chaine qui va directement se rattacher à un hook alors qu'une “simple” chain n'est pas rattaché à un Hook. c'est pour cela que l'on précise ensuite “type filter hook input”. Notre chaine INPUT va donc se rattacher au hook “INPUT”. Il s'agit là juste d'une précision quant à la nomenclature à utiliser. Dans la réalité, on parle toujours de chaine.

On retrouve également une notion de priorité. La priorité est ici importante, car elle permet de gérer les cas où plusieurs chaines sont positionnées sur le Hook INPUT par exemple. Nous avons en effet vu qu'une table pouvait avoir plusieurs chaines, et chaque chaine peut être positionnée sur un Hook souhaité, on peut très bien avoir une chaine “INPUT_1” et une chaine “INPUT_2” pour des besoins organisationnels. La priorité la plus basse prend ainsi le pas sur les autres priorités.

Note : il est possible d'avoir des priorités négatives (Exemple : -100) qui sont alors prioritaires sur une priorité 0.

Extrait de IT-connect.fr - Creative Commons License BY-NC-ND 4.0

Règles

Sauvegarde de la configuration

Appliquer les règles au démarrage

Créer le service Nftables et son lancement au démarrage :

systemctl enable nftables

Sauvegarder la configuration dans le fichier de configuration de Nftables :

nft list table mon_filtreIPv4 > /etc/nftables.conf

Sources/Ressources