Was ist nftables? Was ist der Unterschied zwischen iptables?
Fast jeder Linux-Administrator hat iptables verwendet, eine Firewall für Linux-Systeme. Möglicherweise kennen Sie jedoch nftables nicht, eine neue Firewall, die uns einige notwendige Upgrades bietet und möglicherweise iptables ersetzt.
Warum nftables verwenden?
Nftables wurde von der Netfilter-Organisation entwickelt, die derzeit iptables verwaltet. Nftables wurde entwickelt, um die Leistungs- und Skalierbarkeitsprobleme von iptables zu lösen.Abgesehen von einigen Upgrades und geänderter Syntax funktioniert nftables fast genauso wie iptables. Ein weiterer Grund für die Einführung von nftables ist, dass das iptables-Framework etwas komplizierter geworden ist. iptables, ip6tables, arptables und ebtables haben alle unterschiedliche, aber ähnliche Funktionen.
Zum Beispiel ist es sehr ineffizient, IPv4-Regeln in iptables und IPv6-Regeln in ip6tables zu erstellen und beide synchron zu halten. Nftables zielt darauf ab, all dies zu ersetzen und eine zentralisierte Lösung zu werden.
Obwohl nftables seit 2014 im Linux-Kernel enthalten ist, ist es in letzter Zeit mit zunehmender Akzeptanz immer beliebter geworden. In der Linux-Welt vollzieht sich der Wandel nur langsam, und es dauert oft ein paar Jahre oder länger, bis veraltete Dienstprogramme auslaufen und durch aktualisierte ersetzt werden.
Heute stellen wir kurz die Unterschiede zwischen nftables und iptables vor und zeigen Beispiele für die Konfiguration von Firewall-Regeln in der neuen nftables-Syntax.
Ketten und Regeln in nftables
In iptables gibt es drei Standardketten: Eingabe, Ausgabe und Weiterleitung. Diese drei „Ketten“ (sowie andere Ketten) enthalten „Regeln“, und iptables funktioniert, indem es den Netzwerkverkehr einer Liste von Regeln in der Kette zuordnet. Wenn der überprüfte Datenverkehr keiner Regel entspricht, wird die Standardrichtlinie der Kette (z. B. ACCEPT oder DROP) auf den Datenverkehr angewendet.Nftables funktioniert ähnlich, es gibt auch „Ketten“ und „Regeln“. Es beginnt jedoch ohne zugrunde liegende Kette, was die Konfiguration flexibler macht.
Ein Aspekt der Ineffizienz von iptables besteht darin, dass alle Netzwerkdaten eine oder mehrere der oben genannten Ketten durchlaufen müssen, auch wenn der Datenverkehr keinen Regeln entspricht. Auch wenn Sie den Link nicht konfigurieren, prüft iptables Ihre Netzwerkdaten und verarbeitet sie.
Nftables unter Linux installieren
nftables ist in allen gängigen Linux-Distributionen verfügbar und kann mit dem Paketmanager der Distribution installiert werden.In Ubuntu- oder Debian-basierten Systemen können Sie den folgenden Befehl verwenden:
sudo apt install nftables
sudo systemctl enable nftables.service
Die Syntax Unterschiede zwischen iptables und nftables
Im Vergleich zu iptables ist die Syntax von nftables einfacher, aber die Syntax in iptables kann auch in nftables verwendet werden.Sie können das Tool iptables-translate verwenden, das iptables-Befehle akzeptiert und in entsprechende nftables-Befehle übersetzt. Dies ist eine einfache Möglichkeit, den Unterschied zwischen den beiden Syntaxen zu verstehen.
Installieren Sie iptables-translate auf Ubuntu- und Debian-basierten Distributionen mit dem folgenden Befehl:
sudo apt install iptables-nftables-compat
Schauen wir uns unten einige spezifische Grammatikbeispiele an.
Eingehende Verbindungen blockieren
Der folgende Befehl blockiert eingehende Verbindungen von der IP-Adresse 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
Eingehende SSH-Verbindungen zulassen
Lassen Sie die SSH-Verbindungsberechtigungen los: $ 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
Eingehende SSH-Verbindungen aus einem bestimmten IP-Bereich zulassen
Wenn Sie nur eingehende SSH-Verbindungen von 192.168.1.0/24 zulassen möchten:允许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
Das obige ist der detaillierte Inhalt vonWas ist nftables? Wie unterscheidet es sich von iptables?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!