Maison > Opération et maintenance > Nginx > le corps du texte

Qu'est-ce que nftables ? En quoi est-il différent d'iptables ?

WBOY
Libérer: 2023-06-09 21:34:37
avant
2449 Les gens l'ont consulté

什么是 nftables ? 它与 iptables 的区别是什么?

Qu'est-ce que nftables ? Quelle est la différence entre lui et iptables ?

Presque tous les administrateurs Linux ont utilisé iptables, qui est un pare-feu pour les systèmes Linux. Mais vous n'êtes peut-être pas familier avec nftables, un nouveau pare-feu qui nous fournit certaines mises à niveau nécessaires et peut remplacer iptables.

Pourquoi utiliser nftables ?

Nftables a été développé par l'organisation Netfilter, qui gère actuellement iptables. Nftables est conçu pour résoudre les problèmes de performances et d'évolutivité d'iptables.

À l'exception de quelques mises à niveau et d'une syntaxe modifiée, nftables fonctionne presque de la même manière qu'iptables. Une autre raison pour laquelle nftables a été introduit est que le framework iptables est devenu un peu compliqué. iptables, ip6tables, arptables et ebtables ont tous des fonctions différentes mais similaires.

Par exemple, créer des règles IPv4 dans iptables et des règles IPv6 dans ip6tables et garder les deux synchronisées est très inefficace. Nftables vise à remplacer tout cela et à devenir une solution centralisée.

Bien que nftables soit inclus dans le noyau Linux depuis 2014, il est devenu de plus en plus populaire récemment à mesure que son adoption se développe. Le changement est lent dans le monde Linux et il faut souvent quelques années, voire plus, pour que les utilitaires obsolètes soient progressivement supprimés et remplacés par des utilitaires mis à niveau.

Aujourd'hui, nous présenterons brièvement les différences entre nftables et iptables, et montrerons des exemples de configuration de règles de pare-feu dans la nouvelle syntaxe nftables.

Chaînes et règles dans nftables

Dans iptables, il existe trois chaînes par défaut : entrée, sortie et transfert. Ces trois "chaînes" (ainsi que d'autres chaînes) contiennent des "règles" et iptables fonctionne en faisant correspondre le trafic réseau à une liste de règles de la chaîne. Lorsque le trafic inspecté ne correspond à aucune règle, la politique par défaut de la chaîne (telle que ACCEPT ou DROP) sera appliquée au trafic.

Nftables fonctionne de la même manière, il existe également des "chaînes" et des "règles". Cependant, il démarre sans aucune chaîne sous-jacente, ce qui rend la configuration plus flexible.

Un aspect de l'inefficacité d'iptables est que toutes les données du réseau doivent traverser une ou plusieurs des chaînes ci-dessus, même si le trafic ne correspond à aucune règle. Même si vous ne configurez pas le lien, iptables inspectera toujours les données de votre réseau et les traitera.

Installation de nftables sous Linux

nftables est disponible dans toutes les principales distributions Linux et peut être installé à l'aide du gestionnaire de packages de la distribution.

Dans les systèmes basés sur Ubuntu ou Debian, vous pouvez utiliser la commande suivante :

sudo apt install nftables
Copier après la connexion

Pour configurer nftables pour qu'il démarre automatiquement au redémarrage du système, vous pouvez effectuer les opérations suivantes :

sudo systemctl enable nftables.service
Copier après la connexion

La syntaxe entre iptables et nftables Différences

Par rapport à iptables, la syntaxe de nftables est plus simple, mais la syntaxe d'iptables peut également être utilisée dans nftables.

Vous pouvez utiliser l'outil iptables-translate, qui accepte les commandes iptables et les traduit en commandes nftables équivalentes. C'est un moyen simple de comprendre la différence entre les deux syntaxes.

Installez iptables-translate sur les distributions basées sur Ubuntu et Debian à l'aide de la commande suivante :

sudo apt install iptables-nftables-compat
Copier après la connexion

Après l'installation, vous pouvez transmettre la syntaxe iptables à la commande iptables-translate et elle renverra la commande équivalente nftables.

Regardons quelques exemples de grammaire spécifiques ci-dessous.

Bloquer les connexions entrantes

La commande suivante bloquera les connexions entrantes à partir de l'adresse IP 192.168.2.1 :

$ iptables-translate -A INPUT -s 192.168.2.1 -j DROPnft add rule ip filter INPUT ip saddr 192.168.2.1 counter drop
Copier après la connexion

Autoriser les connexions SSH entrantes

Le Pas d'autorisations de connexion SSH :

$ iptables-translate -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT tcp dport 22 ct state new,established counter accept
Copier après la connexion

Autoriser les connexions SSH entrantes à partir d'une plage IP spécifique

Si vous souhaitez autoriser uniquement les connexions SSH entrantes à partir de 192.168.1.0/24 :

$ iptables-translate -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT ip saddr 192.168.1.0/24 tcp dport 22 ct state new,established counter accept
Copier après la connexion

允许MySQL连接到eth0网络接口

$ iptables-translate -A INPUT -i eth0 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT iifname eth0 tcp dport 3306ct state new,established counter accept
Copier après la connexion

允许传入HTTP和HTTPS流量

为了允许特定类型的流量,以下是这两个命令的语法:

$ iptables-translate -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT ip protocol tcp tcp dport { 80,443} ct state new,established counter accept
Copier après la connexion

从这些例子中可以看出,nftables 语法与 iptables 非常相似,但命令更直观一些。

nftables 日志

上述nft命令示例中的“counter”选项告诉nftables统计规则被触碰的次数,就像默认情况下使用的iptables一样。

在nftables中,需要指定:

nft add rule ip filter INPUT ip saddr 192.168.2.1 counter accept
Copier après la connexion

nftables内置了用于导出配置的选项。它目前支持XML和JSON。

nft export xml
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!