Was ist nftables? Wie unterscheidet es sich von iptables?

WBOY
Freigeben: 2023-06-09 21:34:37
nach vorne
2441 Leute haben es durchsucht

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

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
Nach dem Login kopieren

Um festzulegen, dass nftables beim Neustart des Systems automatisch gestartet wird, können Sie die folgenden Vorgänge ausführen:

sudo systemctl enable nftables.service
Nach dem Login kopieren

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
Nach dem Login kopieren

Nach der Installation können Sie die iptables-Syntax an den Befehl iptables-translate übergeben und dieser gibt den nftables-äquivalenten Befehl zurück.

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
Nach dem Login kopieren

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
Nach dem Login kopieren

Eingehende SSH-Verbindungen aus einem bestimmten IP-Bereich zulassen

Wenn Sie nur eingehende SSH-Verbindungen von 192.168.1.0/24 zulassen möchten:

$ 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
Nach dem Login kopieren

允许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
Nach dem Login kopieren

允许传入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
Nach dem Login kopieren

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

nftables 日志

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

在nftables中,需要指定:

nft add rule ip filter INPUT ip saddr 192.168.2.1 counter accept
Nach dem Login kopieren

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

nft export xml
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!