Von iptables zu nftables – Migrations-Guide für Linux-Server

iptables war lange Standard – heute führt kein Weg mehr an nftables vorbei. Dieser Guide zeigt dir, wie du deine Linux-Firewall sauber migrierst.

· 2 Minuten zu lesen
Von iptables zu nftables – Migrations-Guide für Linux-Server

Warum nftables?

Viele Distributionen setzen intern bereits auf nftables, auch wenn das Kommando iptables noch vorhanden ist. Mittelfristig gilt: Neue Firewall-Regeln sollten auf nftables basieren. In diesem Artikel schauen wir uns an, was sich ändert, wie die Syntax funktioniert und wie du bestehende iptables-Regeln migrierst.

iptables vs. nftables – Kurzüberblick

  • iptables: klassische, tabellenbasierte Firewall, lange Zeit Standard
  • nftables: moderner Nachfolger, einheitliche Syntax für IPv4/IPv6, performanter, flexiblere Sets und Maps
  • Viele Distros nutzen bereits iptables-wrapper, die intern nftables aufrufen

Prüfen, ob nftables bereits aktiv ist

sudo nft list ruleset
sudo systemctl status nftables

Wenn du eine Ausgabe bei nft list ruleset erhältst, ist bereits ein Regelwerk aktiv. Mit systemctl siehst du, ob der Dienst läuft.

nftables Grundkonzept

Die wichtigsten Objekte:

  • Table – z. B. inet filter
  • Chain – z. B. input, forward, output
  • Rule – konkrete Regel

Beispiel: Minimaler nftables-Regelsatz

table inet filter {
  chain input {
    type filter hook input priority 0;
    policy drop;

    # Bestehende Verbindungen erlauben
    ct state established,related accept

    # Loopback erlauben
    iif lo accept

    # SSH erlauben
    tcp dport 22 accept

    # Ping erlauben (optional)
    ip protocol icmp accept
    ip6 nexthdr icmpv6 accept
  }

  chain forward {
    type filter hook forward priority 0;
    policy drop;
  }

  chain output {
    type filter hook output priority 0;
    policy accept;
  }
}

Aktivieren des Regelsatzes

Speichere den obigen Inhalt z. B. nach /etc/nftables.conf und lade ihn mit:

sudo nft -f /etc/nftables.conf
sudo systemctl enable --now nftables

iptables-Regeln in nftables übernehmen

Viele Systeme bieten ein Kompatibilitätswerkzeug, das bestehende iptables-Regeln in ein nftables-Regelwerk übersetzt.

iptables-Regeln anzeigen

sudo iptables -S
sudo ip6tables -S

Migration (Konzeptuell)

Typische iptables-Regel:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

entspricht in nftables grob:

add rule inet filter input tcp dport 22 accept

Statt vieler Einzelregeln kannst du in nftables z. B. Ports in Sets organisieren:

define ALLOWED_SSH = { 22, 2222 }

table inet filter {
  chain input {
    type filter hook input priority 0;
    policy drop;

    ct state established,related accept
    iif lo accept

    tcp dport $ALLOWED_SSH accept
  }
}

Schrittweise Migration in der Praxis

  1. Bestehende iptables-Regeln dokumentieren (iptables -S)
  2. Neuen nftables-Regelsatz in einer separaten Datei entwerfen
  3. Regelsatz testweise laden (nft -f) – bei SSH-Tests immer eine zweite Session offen lassen
  4. nftables-Dienst aktivieren und Autostart konfigurieren
  5. iptables-Regeln entfernen bzw. iptables-Dienste deaktivieren

Fehlerquellen und Tipps

  • Nie ohne Rückfalloption testen: Immer eine zweite SSH-Session offen lassen.
  • Log-Regeln ergänzen (log prefix "nftables-drop: "), um Probleme schneller zu finden.
  • Konfiguration versionieren (Git-Repository für /etc/nftables.conf).

Fazit

nftables ist der moderne Standard für Firewall-Regeln unter Linux. Mit einem strukturierten Migrationsplan kannst du bestehende iptables-Konfigurationen sauber migrieren und profitierst von einer einheitlichen, flexiblen und zukunftssicheren Firewall-Syntax.

Kommentare