Maison > Article > Opération et maintenance > Qu’est-ce que nftables ? En quoi est-il différent d’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
sudo systemctl enable nftables.service
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
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
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
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 :允许MySQL连接到eth0网络接口 允许传入HTTP和HTTPS流量 为了允许特定类型的流量,以下是这两个命令的语法: 从这些例子中可以看出,nftables 语法与 iptables 非常相似,但命令更直观一些。 nftables 日志 上述nft命令示例中的“counter”选项告诉nftables统计规则被触碰的次数,就像默认情况下使用的iptables一样。 在nftables中,需要指定: nftables内置了用于导出配置的选项。它目前支持XML和JSON。$ 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
$ 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
$ 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
nft add rule ip filter INPUT ip saddr 192.168.2.1 counter accept
nft export xml
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!