nftables-Konfiguration & Sicherheit
Diese Anleitung zeigt, wie Sie mit nftables, dem Nachfolger von iptables, eine Default-Deny-Firewall unter Debian, Ubuntu, AlmaLinux oder Rocky Linux einrichten. Sie behandelt eine vollständige /etc/nftables.conf, das Öffnen von Ports, Rate-Limiting und das dauerhafte Speichern der Regeln.
iptables oder nftables? Auf aktuellen Distributionen wie Debian 13, Ubuntu 24.04, AlmaLinux und Rocky Linux ist nftables der 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 eine zweite SSH-Sitzung offen und nutzen Sie im Notfall den Rescue-Modus im PowerPanel.
nftables vs. iptables — Die wichtigsten Unterschiede
| Merkmal | iptables | nftables |
|---|---|---|
| Werkzeuge | 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 |
1. Installation & Vorbereitung
Auf den meisten modernen Distributionen ist nftables bereits vorinstalliert. Prüfen und installieren Sie es bei Bedarf:
Falls noch iptables-Regeln aktiv sind, setzen Sie vorher die Policies zurück und leeren Sie die Regeln, um Konflikte und Aussperrungen zu vermeiden:
2. Grundlegende Regelstruktur
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.
3. Default-Deny-Firewall einrichten
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.
4. Einzelne Ports gezielt öffnen
Regeln können entweder direkt in die Konfigurationsdatei eingetragen oder per Befehl hinzugefügt werden:
Weiteren Port öffnen (z. B. für ein Spiel)
Datenbankzugriff auf eine IP beschränken
Kritische Ports wie MySQL sollten nur für bekannte IP-Adressen freigegeben werden:
UDP-Port öffnen (z. B. für einen Game Server)
5. Rate-Limiting & Schutzmechanismen
SSH-Brute-Force-Schutz
Begrenzt neue SSH-Verbindungsversuche auf 5 pro Minute (insgesamt, nicht pro IP). Ersetzen Sie in der input-Chain Ihrer Konfigurationsdatei die Zeile tcp dport 22 accept durch diese beiden Zeilen:
Ungültige Pakete verwerfen
Bereits in der Basiskonfiguration enthalten — blockiert Pakete, die zu keiner bekannten Verbindung gehören:
Logging verworfener Pakete
Fügen Sie diese Regel am Ende der input-Chain ein, direkt vor der impliziten DROP-Policy. limit muss vor log stehen, sonst wird jedes Paket protokolliert:
6. Regeln prüfen & persistent speichern
Aktuelle Regeln anzeigen
Aktuelle Regeln in Datei speichern
Exportieren Sie die laufende Konfiguration direkt in die persistente Konfigurationsdatei:
Dienst aktivieren (automatisch beim Booten laden)
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, und ergänzen Sie nach dem Export wieder flush ruleset als erste Zeile. Unter AlmaLinux und Rocky Linux lädt der Dienst stattdessen /etc/sysconfig/nftables.conf — speichern Sie Ihre Regeln dort oder binden Sie Ihre Datei dort per include ein.
Weiterführende Dokumentation
Für eine vollständige Referenz aller nftables-Optionen empfehlen wir die offizielle Dokumentation.