- Comprendre la commande Linux nftables
Comprendre Linux nftables Command #
Le nftables command est un puissant outil de pare-feu Linux qui remplace iptables, ip6tables, arptables, ainsi ebtables. Avec une syntaxe unifiée, nftables Simplifie le filtrage des paquets réseau, la traduction d'adresses réseau (NAT) et d'autres configurations réseau avancées. Cette commande fonctionne avec nft utilitaire qui communique avec le sous-système netfilter du noyau pour gérer les règles du réseau.
Syntaxe de base et structure du nft Command #
Le nft la commande suit généralement cette structure :
nft [OPTIONS] COMMAND
- OPTIONS: Des drapeaux comme
-a(afficher les poignées de règles) ou-j(sortie au format JSON). - COMMAND:L'action spécifique, telle que
add,delete,list,flush, utilisé pour gérer des tables, des chaînes ou des règles.
nft Tableau de triche des commandes #
| Command | Description |
nft list tables |
Lister tous les tableaux |
nft add table inet filter |
Créer une nouvelle table nommée filter dans le inet famille |
nft delete table inet filter |
Supprimer l' filter tableau dans le inet famille |
nft list ruleset |
Répertoriez toutes les tables, chaînes et règles dans un format lisible par l'homme |
nft flush ruleset |
Supprimer toutes les tables, chaînes et règles (vider l'ensemble des règles) |
nft add chain inet filter input { type filter hook input priority 0; } |
Ajouter un input chaîne à la filter table avec input crochet |
nft add rule inet filter input tcp dport 22 accept |
Accepter le trafic SSH entrant sur le port 22 |
nft delete rule inet filter input handle <handle_number> |
Supprimer une règle dans le input chaîne en spécifiant le handle de la règle |
nft add rule inet filter forward counter |
Ajoutez une règle de compteur à la forward chaîne de surveillance du trafic |
Ajout et gestion des tables #
In nftablesLes tables sont des conteneurs pour les chaînes et les règles. Voici comment les créer et les gérer :
Créer une table #
nft add table inet my_table
Cette commande crée une nouvelle table nommée my_table au sein du inet famille, qui prend en charge à la fois IPv4 et IPv6.
Supprimer une table #
nft delete table inet my_table
Supprime le my_table du inet Black Angus XNUMX.
Chaînes dans nftables #
Les chaînes sont des séquences de règles qui définissent la gestion des paquets. Chaque chaîne possède un hook, qui détermine l'étape de filtrage des paquets (par exemple, input, output, forward).
Créer une chaîne #
nft add chain inet my_table my_chain { type filter hook input priority 0; }
Cela crée un input chaîne dans my_table pour filtrer les paquets avec une priorité de 0.
Supprimer une chaîne #
nft delete chain inet my_table my_chain
Supprime le my_chain à partir de my_table.
Règles en nftables #
Les règles spécifient les actions à entreprendre pour les paquets remplissant certaines conditions. Vous trouverez ci-dessous des exemples d'ajout, de liste et de suppression de règles.
Ajout de règles #
nft add rule inet my_table my_chain tcp dport 80 accept
Cette règle autorise le trafic sur le port TCP 80 (HTTP).
Règles d'inscription #
nft list chain inet my_table my_chain
Affiche toutes les règles dans my_chain.
Suppression de règles #
nft delete rule inet my_table my_chain handle <handle_number>
Supprime une règle en spécifiant son numéro de handle, qui peut être affiché par nft list chain inet my_table my_chain -a.
Exemple nftables Configuration : configuration de base du pare-feu #
Voici une configuration de pare-feu de base qui autorise les connexions SSH et HTTP/HTTPS entrantes, tout en bloquant tout autre trafic :
nft add table inet filter nft add chain inet filter input { type filter hook input priority 0\; policy drop\; } nft add rule inet filter input tcp dport 22 accept # Autoriser SSH nft add rule inet filter input tcp dport 80 accept # Autoriser HTTP nft add rule inet filter input tcp dport 443 accept # Autoriser HTTPS nft add rule inet filter input ct state established,related accept # Autoriser les connexions établies
Avancé : Règles avec état avec suivi des connexions #
nftables dispose d'un support intégré pour le suivi des connexions, vous permettant de gérer les règles avec état.
Exemple : Autoriser les connexions associées et établies #
nft add rule inet filter input ct state established,related accept
Cela autorise les paquets provenant de connexions déjà établies ou liées à des connexions existantes, contribuant ainsi à réduire le retraitement inutile des connexions précédemment autorisées.
Résumé #
Le nftables La commande est un outil moderne et polyvalent de filtrage de paquets réseau, offrant une syntaxe unifiée et des options flexibles pour la gestion des règles de pare-feu. nftables, vous pouvez créer des configurations de pare-feu efficaces et maintenables adaptées aux configurations simples et aux environnements d'entreprise complexes.