nftables ist der moderne Nachfolger von iptables und seit Linux Kernel 3.13 verfügbar. Diese Anleitung zeigt, wie Sie eine sichere Default-Deny Firewall mit nftables einrichten.
iptables oder nftables? Auf modernen Distributionen (Debian 10+, Ubuntu 20.04+, RHEL 8+) ist nftables der empfohlene Standard. Wenn Sie einen bestehenden Server mit iptables betreiben, können Sie bei iptables bleiben — für neue Server empfehlen wir nftables. Zur iptables-Anleitung →
Reihenfolge ist kritisch! Aktivieren Sie die Default-Deny-Policy erst, nachdem Sie SSH explizit erlaubt haben — sonst sperren Sie sich sofort aus. Halten Sie immer einen Konsolenzugang über das PowerPanel bereit.
| Merkmal | iptables | nftables |
|---|---|---|
| Syntax | Separate Tools (ip6tables, arptables…) | Ein einheitliches Tool für alle Protokolle |
| Konfiguration | Zeilenbasierte Befehle | Strukturierte Regeldateien (lesbar wie Code) |
| Performance | Gut | Besser — durch optimierten Kernel-Bytecode |
| Zukunft | Legacy, wird nicht mehr aktiv entwickelt | Aktiv entwickelt, Standardtool auf neuen Distros |
Auf den meisten modernen Distributionen ist nftables bereits vorinstalliert. Prüfen und installieren Sie es bei Bedarf:
Falls noch iptables-Regeln aktiv sind, sollten diese vorher geleert werden um Konflikte zu vermeiden:
nftables verwendet Tables (Tabellen) und Chains (Ketten). Eine Table fasst mehrere Chains zusammen. Im Gegensatz zu iptables müssen Tables und Chains erst explizit erstellt werden.
Die empfohlene Methode ist das Erstellen einer vollständigen Konfigurationsdatei, die dann geladen wird. Erstellen oder bearbeiten Sie die Datei /etc/nftables.conf:
Laden Sie die Konfiguration anschließend:
SSH-Port prüfen! Falls Sie SSH auf einem anderen Port als 22 betreiben, passen Sie den Wert in der Konfiguration entsprechend an, bevor Sie die Regeln laden.
Regeln können entweder direkt in die Konfigurationsdatei eingetragen oder per Befehl hinzugefügt werden:
Kritische Ports wie MySQL sollten nur für bekannte IP-Adressen freigegeben werden:
Begrenzt neue SSH-Verbindungsversuche auf 5 pro Minute pro IP — trägt die Regel direkt in die Konfigurationsdatei ein:
Bereits in der Basiskonfiguration enthalten — blockiert Pakete die zu keiner bekannten Verbindung gehören:
Fügen Sie diese Regel am Ende der input-Chain ein, direkt vor der impliziten DROP-Policy:
Exportieren Sie die laufende Konfiguration direkt in die persistente Konfigurationsdatei:
Wenn der nftables-Dienst aktiviert ist, lädt er beim Booten automatisch /etc/nftables.conf. Stellen Sie sicher, dass Ihre Konfigurationsdatei stets aktuell ist, nachdem Sie Regeln per Befehl hinzugefügt haben.
Für eine vollständige Referenz aller nftables-Optionen empfehlen wir die offizielle Dokumentation.