Nftables Visualisiert
Ü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
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.
acceptoderdrop), 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
policylegt fest, was mit Paketen passiert, auf die keine Regel zutrifft. Typisch inputundforward→drop,output→accept.}}
Aktuellen Regelstand anzeigen
nft list ruleset

