Nftables Visualisiert

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Ü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):

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

nft-inet1

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 forward → drop, output → accept

Aktuellen Regelstand anzeigen

nft list ruleset