linux-rhel-centos-fedora security firewall iptables rhel legacy nftables

Legacy iptables on RHEL: Backward Compatibility (Artikel 096)

Umgang mit veralteten Firewall-Konfigurationen unter RHEL. Erfahren Sie, wie die Kompatibilitätsschicht iptables-nft arbeitet und wie Sie Alt-Systeme sicher migrieren.

# Legacy iptables: Überleben im nftables-Zeitalter

TL;DR / Management Summary Seit RHEL 8 ist der Kernel-Standard für Paketfilterung nftables. Dennoch begegnen uns in Enterprise-Umgebungen ständig alte Skripte oder Applikationen, die nach iptables verlangen. RHEL bietet hierfür die iptables-nft Schicht: Sie erlaubt die Nutzung der alten Syntax, übersetzt diese aber im Hintergrund transparent in nftables-Regeln. Ein Senior Admin muss diesen Mechanismus verstehen, um Konflikte zwischen firewalld und alten Skripten zu vermeiden.


# 1. Einführung & Architektur

Der Translator im Hintergrund.

In modernen RHEL-Systemen ist das Kommando /usr/sbin/iptables ein Symlink auf /usr/sbin/xtables-nft-multi.

# Die Schichten (Mermaid)

graph TD
    A[Legacy Script / Admin] -->|iptables command| B[iptables-nft Translation Layer]
    B -->|Generates| C[nftables API]
    D[firewalld Daemon] -->|Native| C
    C --> E[Kernel: nftables sub-system]

Gefahr: Wenn Sie gleichzeitig firewalld und manuelle iptables Skripte nutzen, entsteht eine unübersichtliche Regel-Hölle. nftables erlaubt mehrere “Tables”, die sich gegenseitig beeinflussen können.


# 2. Nutzung von iptables-services

Der Weg zurück (nur wenn nötig).

Manchmal brauchen Sie den klassischen iptables.service, um eine Datei /etc/sysconfig/iptables beim Booten zu laden.

# Installation & Aktivierung

sudo dnf install iptables-services
sudo systemctl stop firewalld
sudo systemctl mask firewalld # Wichtig: Verhindert Parallelbetrieb!
sudo systemctl enable --now iptables

# 3. Analyse der Regeln

Was passiert wirklich im Kernel?

Da iptables-nft nur ein Frontend ist, sehen Sie mit dem nativen Tool oft mehr:

# Zeigt Regeln in der alten Syntax
sudo iptables -L -n

# Zeigt die echten, übersetzten Regeln in nftables Syntax
sudo nft list ruleset

# 4. Day-2 Operations: Migration zu nftables

Die Zukunft ist jetzt.

Anstatt alte Skripte ewig mitzuschleifen, sollten Sie diese konvertieren. Red Hat bietet dafür ein spezielles Tool.

# Konvertierung mit iptables-restore-translate

# Exportieren der alten Regeln
sudo iptables-save > legacy.rules

# Übersetzen in nftables Format
iptables-restore-translate -f legacy.rules > modern.nft

# 5. Troubleshooting & “War Stories”

Wenn die Firewall Geister sieht.

# Story 1: “Die verschwundenen Regeln”

Symptom: Ein Admin fügt eine Regel mit iptables -A INPUT ... hinzu. Kurz darauf ist sie wieder weg. Ursache: firewalld läuft im Hintergrund. Bei jedem Reload (firewall-cmd --reload) flusht firewalld die Tables und schreibt sein eigenes Regelwerk neu. Manuelle iptables Kommandos werden dabei gelöscht. Lösung: Nutzen Sie firewall-cmd --direct (siehe Artikel 092) oder migrieren Sie die Regel komplett in eine Zone.

# Story 2: “Duplicate Matching”

Symptom: Traffic wird blockiert, obwohl eine iptables Regel ihn erlaubt. Ursache: Es existiert eine nftables-Chain (z.B. von firewalld), die den Traffic vorher per drop verwirft. Bei nftables gilt: Wenn eine Chain drop sagt, ist das Paket weg – egal was spätere Chains sagen. Lösung: Nutzen Sie immer nft list ruleset, um die gesamte Kette zu sehen.


# 6. Fazit & Empfehlung

  • Vermeidung: Nutzen Sie kein iptables mehr auf neuen RHEL 9 Systemen.
  • Wahl: Wenn Sie maximale Kontrolle brauchen, nutzen Sie natives nftables via /etc/nftables.conf.
  • Sicherheit: Das alte iptables (legacy) Kernel-Modul ist in RHEL 9 offiziell nicht mehr vorhanden. Alles läuft über die Translation-Layer.

# Anhang: Cheatsheet

Aufgabe Befehl
Regeln speichern iptables-save > /etc/sysconfig/iptables
Regeln laden iptables-restore < /file
nftables-Status nft list ruleset
Translation Test iptables-translate -A INPUT -p tcp --dport 22 -j ACCEPT
Kernel Module check `lsmod