Nftables – Aufbau: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „= Hooks, Chains und Tabellen = == Das Konzept – eine Analogie == Stellt euch ein Bürogebäude vor: * Die '''Büros''' sind fest eingebaut – sie existie…“) |
|||
| Zeile 17: | Zeile 17: | ||
Für den Einstieg konzentrieren wir uns auf die '''IP-Familie''' (mittlere Ebene): | Für den Einstieg konzentrieren wir uns auf die '''IP-Familie''' (mittlere Ebene): | ||
| − | + | {{#drawio:nft-inet1}} | |
Pakete durchlaufen je nach Ziel unterschiedliche Hooks: | Pakete durchlaufen je nach Ziel unterschiedliche Hooks: | ||
Aktuelle Version vom 22. Mai 2026, 04:38 Uhr
Hooks, Chains und Tabellen
Das Konzept – eine Analogie
Stellt euch ein Bürogebäude vor:
- Die Büros sind fest eingebaut – sie existieren, egal ob jemand drin sitzt. Das sind die Hooks.
- Abteilungen ziehen in diese Büros ein und erledigen dort ihre Arbeit. Das sind die Chains.
- Die Abteilungen gehören zu einer Firma – die Bestellabteilung und der Wareneingang sitzen in verschiedenen Büros, sind aber logisch zusammengefasst. Das ist die Tabelle.
Bei iptables waren die Abteilungen schon fest eingezogen – ob man sie brauchte oder nicht. Bei nftables ist das Gebäude leer. Man richtet nur das ein, was man wirklich braucht.
Hooks und Paketfluss
Das folgende Schaubild zeigt den Weg eines Pakets durch den Linux-Netzwerkstack. Für den Einstieg konzentrieren wir uns auf die IP-Familie (mittlere Ebene):
Pakete durchlaufen 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
Chains in nftables
Im Gegensatz zu iptables bringt nftables keine vordefinierten Chains mit. Man legt sie selbst an und weist ihnen einen Hook zu – das nennt sich Base Chain.
Zurück zur Analogie: Der Raum (Hook) existiert, aber die Abteilung (Chain) muss erst einziehen. Erst dann wird Arbeit erledigt – also Pakete verarbeitet.
Regelverarbeitung
Regeln werden sequenziell von oben nach unten auf ein Paket angewandt:
- Greift eine Regel → Aktion wird ausgeführt (z. B.
acceptoderdrop), Verarbeitung stoppt. - Greift keine Regel → die Default Policy der Chain wird angewandt.
| Tabelle: filter | ||
|---|---|---|
| input | forward | output |
| rule 1 | rule 1 | rule 1 |
| rule 2 | rule 2 | rule 2 |
| rule 3 | rule 3 | |
| rule 4 | ||
| policy drop | policy drop | policy accept |
Tabellen und Chains 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 Chain 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: input und forward → drop, output → accept.
Aktuellen Regelstand anzeigen
nft list ruleset
