nftables Firewall Generator
nftables Firewall Generator
Erstelle moderne nftables-Regeln für Linux mit inet/ip/ip6-Families, Sets, Maps, NAT und Port-Forwarding. Mit Live-Skript-Generierung.
Hinweis: Dieser Generator erstellt nftables-Regeln für Linux-Systeme. nftables ist seit Linux 3.13 (2014) im Kernel und ersetzt schrittweise iptables. Für bestehende Systeme: iptables-nft bietet Kompatibilität.
Inhaltsverzeichnis
Schnellübersicht
- Regel-Generator: inet/ip/ip6/arp/bridge/netdev-Families
- Moderne Syntax: nft add rule mit Sets und Maps
- NAT & Port-Forwarding: DNAT, SNAT, Masquerade
- Sets: Effiziente Regeln für viele IPs/Ports
- Live-Vorschau: Generiertes nftables-Skript
- Beispiel-Setups: Webserver, Router, Docker, VPN
- Theorie: Über nftables, Families und Syntax
- FAQ: Häufige Fragen zu nftables
1. nftables Regel-Generator
Füge Regeln hinzu, ordne sie und generiere das nftables-Skript.
inet
IPv4 und IPv6 kombiniert – der moderne Standard.
nft add table inet filter
ip
Nur IPv4 – klassisch wie bei iptables.
nft add table ip filter
ip6
Nur IPv6 – für reine v6-Setups.
nft add table ip6 filter
arp
Für ARP-Filterung (ARP-Spoofing).
nft add table arp filter
bridge
Für Bridging (Layer 2 Filtering).
nft add table bridge filter
netdev
Sehr früh im Stack (vor Netfilter).
nft add table netdev filter
Regeln anzeigen
nft list ruleset – alles
nft list table inet filter
nft list chains
Regeln speichern
nft list ruleset > /etc/nftables.conf
systemctl enable nftables
systemctl start nftables
Regeln löschen
nft flush ruleset – alles löschen
nft delete table inet filter
nft delete rule inet filter input handle 5
Regeln testen
nft -c -f /etc/nftables.conf – Syntax prüfen
nft -f /etc/nftables.conf – laden
nft monitor – Live-Trace
2. Theorie – nftables
Verstehe die moderne Firewall-Architektur von nftables.
Was ist nftables?
nftables ist der moderne Nachfolger von iptables:
- Seit Linux 3.13: 2014 im Kernel
- Nachfolger: Ersetzt iptables/ip6tables/arptables/ebtables
- Ein Tool:
nftfür alles - Kombiniert: IPv4 + IPv6 in einer Table (inet)
Vorteile gegenüber iptables
nftables ist moderner und leistungsfähiger:
- Performance: Schnellere Regelverarbeitung
- Sets & Maps: Effizient für viele IPs/Ports
- IPv4 + IPv6: Kombiniert in einer Table
- Saubere Syntax: Konsistent, lesbarer
- Atomare Updates: Regeln in einem Rutsch
- Kein Kernel-Modul pro Match: Alles nativ
Sets & Maps
Sets und Maps sind mächtige Werkzeuge:
- Set: Liste von IPs/Ports
- Map: Zuordnung (z.B. Port → IP)
- Inline:
{ 22, 80, 443 } - Benannt: Wiederverwendbar mit Updates
Best Practices
- inet: IPv4 + IPv6 kombiniert nutzen
- Default-Policy: drop auf input/forward
- Loopback:
iif lo accept - Stateful:
ct state established,related accept - Sets: Für viele IPs/Ports nutzen
- Persistenz:
/etc/nftables.conf+ systemd
- Erst SSH erlauben, dann Policy setzen:
nft add rule inet filter input tcp dport 22 accept - Remote-Server: Immer einen zweiten Zugang (Provider-Konsole) bereithalten.
- Testen:
nft -c -f /etc/nftables.confprüft Syntax ohne zu laden! - Backup:
nft list ruleset > /root/nftables-backup.conf - Persistenz: Regeln in
/etc/nftables.conf+systemctl enable nftables
Wussten Sie schon?
nftables ist seit Debian 10 (Buster) und RHEL 8 der Standard. Die Kompatibilitätsschicht iptables-nft übersetzt iptables-Befehle automatisch auf nftables. So können bestehende Skripte weiter genutzt werden, während man schrittweise auf native nftables-Syntax umsteigt.
3. Geschichte von nftables
Von iptables zur modernen Firewall-Architektur.
Projekt-Start
Patrick McHardy beginnt die Entwicklung von nftables als Nachfolger von iptables. Ziel: bessere Performance, sauberere Syntax und native IPv4/IPv6-Unterstützung.
Linux 3.13
nftables wird offiziell in den Linux-Kernel aufgenommen. Die Kernel-Komponente heißt nf_tables. Erste Distributionen beginnen mit der Integration.
iptables-nft
Die Kompatibilitätsschicht iptables-nft wird eingeführt. Sie übersetzt iptables-Befehle transparent auf nftables. Bestehende Skripte laufen weiter.
Debian 10 & RHEL 8
Debian 10 (Buster) und RHEL 8 machen nftables zum Standard. iptables-Befehle werden über die Kompatibilitätsschicht verarbeitet.
Ubuntu 21.10
Ubuntu wechselt mit 21.10 zu nftables als Standard-Backend für UFW. Die Syntax bleibt für Nutzer gleich, das Backend ist modern.
firewalld default
firewalld nutzt nftables als Standard-Backend. Damit ist nftables auf allen großen Distributionen (Debian, Ubuntu, RHEL, Fedora) angekommen.
nftables ist Standard
nftables ist auf allen modernen Distributionen der Standard. iptables wird nur noch über die Kompatibilitätsschicht unterstützt. Neue Projekte sollten native nftables-Syntax nutzen.
4. FAQ – Häufige Fragen
Häufige Fragen zu nftables
| Merkmal | iptables | nftables |
|---|---|---|
| Eingeführt | 2001 (Linux 2.4) | 2014 (Linux 3.13) |
| Performance | Gut | Besser |
| IPv4/IPv6 | Getrennt | Nativ kombiniert (inet) |
| Syntax | Kryptisch | Moderner, konsistent |
| Sets/Maps | Nur ipset | Nativ eingebaut |
| Atomare Updates | Nein | Ja |
| Status | Legacy | Standard |
Empfehlung:
- Neue Systeme: native nftables-Syntax
- Bestehende Skripte: iptables-nft (Kompatibilität)
- Frontends: UFW/firewalld nutzen nftables-Backend
inet kombiniert IPv4 und IPv6 in einer einzigen Table:
- Vorteil: Regeln gelten für beide Protokolle
- Weniger Duplizierung: Kein separates iptables/ip6tables
- Familie-spezifisch: Bei Bedarf
meta nfproto ipv4
Beispiel:
nft add rule inet filter input tcp dport 22 accept- Diese Regel gilt für IPv4 und IPv6
Wann ip/ip6 nutzen? Wenn du protokoll-spezifische Regeln brauchst (z.B. nur IPv6 blocken).
Sets und Maps sind mächtige Werkzeuge für effiziente Regeln:
Sets (Liste):
- Inline:
tcp dport { 22, 80, 443 } accept - Benannt:
nft add set inet filter ssh_ips { type ipv4_addr; } - Mit Timeout:
flags timeout - Für viele IPs/Ports ideal
Maps (Zuordnung):
- Port → IP:
dnat to ip saddr map { 1.2.3.4 : 10.0.0.1 } - Zur Laufzeit änderbar
- Für dynamische Konfigurationen
Vorteil: Ein einziger Regel-Lookup statt vieler Einzelregeln.
Standardverfahren:
- 1. Konfiguration speichern:
nft list ruleset > /etc/nftables.conf - 2. Service aktivieren:
systemctl enable nftables - 3. Service starten:
systemctl start nftables
Alternativ:
- Direkt schreiben: Regeln in
/etc/nftables.confmanuell pflegen - Include: Weitere Dateien via
include "/etc/nftables.d/*.conf" - Distribution-spezifisch: Auf RHEL:
/etc/sysconfig/nftables.conf
Wichtig: nft -c -f /etc/nftables.conf prüft Syntax ohne zu laden!
NAT in nftables – sauber in Chain prerouting/postrouting:
1. IP-Forwarding aktivieren:
sysctl -w net.ipv4.ip_forward=1
2. DNAT für Port-Forwarding:
nft add rule ip nat prerouting iif eth0 tcp dport 8080 dnat to 192.168.1.100:80
3. SNAT/Masquerade für Rückweg:
nft add rule ip nat postrouting oif eth0 masquerade
4. Forward erlauben (inet Table):
nft add rule inet filter forward iif eth0 oif eth1 accept
Wichtig: nftables NAT braucht eine nat-Table und passende Chains (prerouting/postrouting).
nftables nutzt Conntrack (Connection Tracking) für Stateful Inspection:
- ct state new: Neue Verbindung
- ct state established: Bestehende Verbindung
- ct state related: Verwandte Verbindung (FTP, ICMP)
- ct state invalid: Ungültig
Typische Regel-Reihenfolge:
- 1.
ct state established,related accept - 2.
ct state invalid drop - 3. Neue Verbindungen (spezifische Ports)
- 4.
drop
Vorteil: Ausgehende Verbindungen erlauben automatisch die Rückrichtung.
Mehrere Wege:
- Alles löschen:
nft flush ruleset - Table löschen:
nft delete table inet filter - Chain leeren:
nft flush chain inet filter input - Einzelne Regel:
nft delete rule inet filter input handle 5
Handle finden:
nft list ruleset -azeigt Handle-Nummern- Handle ist stabil und eindeutig
Wichtig: flush ruleset löscht wirklich alles – auch NAT und alle Tables!
Einfachster Weg: iptables-nft (Kompatibilitätsschicht):
- Installation:
apt install iptables-nft - iptables-Befehle werden auf nftables übersetzt
iptables-savefunktioniert weiter- Kein sofortiger Umstieg nötig
Manuelle Migration:
iptables-save > /tmp/iptables.rules- Konvertieren:
iptables-restore-translate -f /tmp/iptables.rules - Ausgabe prüfen und in nftables-Syntax nutzen
Empfehlung: Nicht sofort umstellen. Neue Regeln in nftables schreiben, alte in iptables-nft belassen. Schrittweise migrieren.
Zusammenfassung
Die wichtigsten Punkte
- nftables: Moderner Nachfolger von iptables (seit Linux 3.13)
- 6 Families: inet, ip, ip6, arp, bridge, netdev
- inet: Kombiniert IPv4 + IPv6 in einer Table
- Sets & Maps: Effizient für viele IPs/Ports
- Stateful: ct state established,related
- Default-Policy: drop auf input/forward
- SSH: Vor Policy erlauben!
- NAT: Sauber in nat-Table mit prerouting/postrouting
- Persistenz: /etc/nftables.conf + systemctl enable nftables
- Unser Tool: nftables-Generator mit Live-Vorschau
Weitere Tools
Klassische iptables-Regeln für Linux generieren.
Zum ToolUFW-Regeln für Ubuntu/Debian generieren.
Zum ToolDNS-Abfragen für A, AAAA, MX, NS und mehr.
Zum ToolUmfassender Subnetting-Rechner für IPv4-Adressen.
Zum Tool