Nftables Visualisiert: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 98: Zeile 98:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
{{Hinweis|Die <code>policy</code> legt fest, was mit Paketen passiert, auf die '''keine Regel''' zutrifft. Typisch: <code>input</code> und <code>forward</code> → <code>drop</code>, <code>output</code> → <code>accept</code>.}}
+
;Hinweis Die <code>policy</code> legt fest, was mit Paketen passiert, auf die '''keine Regel''' zutrifft. Typisch: <code>input</code> und <code>forward</code> → <code>drop</code>, <code>output</code> → <code>accept</code>
  
 
= Aktuellen Regelstand anzeigen =
 
= Aktuellen Regelstand anzeigen =

Aktuelle Version vom 7. Mai 2026, 05:11 Uhr

Überblick

nftables verwendet dieselbe Netfilter-Infrastruktur wie das ältere iptables – neu ist lediglich das Framework zur Paketklassifizierung.

Das folgende Schaubild zeigt alle Netfilter-Hooks und Paketfamilien im Überblick. Für den Einstieg konzentrieren wir uns auf die IP-Familie (mittlere Ebene):

Nf-hooks.png

Hooks und Paketfluss

Pakete durchlaufen das System je nach Ziel unterschiedliche Hooks:

Hook Wann greift er? Typischer Einsatz
prerouting Jedes eingehende Paket, vor der Routing-Entscheidung DNAT, Connection Tracking
input Pakete, die an diese Maschine adressiert sind Firewall für lokale Dienste
forward Pakete, die weitergeleitet werden (Router-Betrieb) Firewall zwischen Netzsegmenten
output Pakete, die von dieser Maschine erzeugt werden Ausgehende Filterung
postrouting Jedes ausgehende Paket, nach der Routing-Entscheidung SNAT, Masquerade
Hinweis Damit der forward-Hook greift, muss IP-Forwarding aktiviert sein
echo 1 > /proc/sys/net/ipv4/ip_forward

Ketten in nftables

Im Gegensatz zu iptables, das an jedem Hook vordefinierte Ketten mitbringt (z. B. INPUT, FORWARD), definiert nftables überhaupt keine Ketten. Man muss sie explizit anlegen und einem Hook zuweisen – das nennt sich Base Chain.

Regelverarbeitung

Regeln werden sequenziell auf ein Paket angewandt:

  • Greift eine Regel → Aktion wird ausgeführt (z. B. accept oder drop), Verarbeitung stoppt.
  • Greift keine Regel → die Default Policy der Kette wird angewandt.
filter table
INPUT FORWARD OUTPUT
rule 1 rule 1 rule 1
rule 2 rule 2 rule 2
rule 3 rule 3
rule 4
POLICY POLICY POLICY

Tabellen und Ketten anlegen

Tabelle anlegen

nft add table inet filter

Die Familie inet deckt gleichzeitig IPv4 und IPv6 ab – empfohlen für den modernen Einsatz.

Tabelle löschen

nft delete table inet filter

Base Chains anlegen

Jede Kette wird einem Hook und einer Priorität zugewiesen. Priorität 0 ist der Standardwert für Filterregeln.

input

nft add chain inet filter input '{ type filter hook input priority 0 ; policy drop ; }'

forward

nft add chain inet filter forward '{ type filter hook forward priority 0 ; policy drop ; }'

output

nft add chain inet filter output '{ type filter hook output priority 0 ; policy accept ; }'
Hinweis Die policy legt fest, was mit Paketen passiert, auf die keine Regel zutrifft. Typisch
input und forwarddrop, outputaccept

Aktuellen Regelstand anzeigen

nft list ruleset