iptables unter Linux: eine praktische, vollständige und unkomplizierte Anleitung

Letzte Aktualisierung: 9 September 2025
  • Struktur und Fluss: Tabellen, Ketten und wie der Verkehr fließt
  • Regeln und Richtlinien: Befehle, Spiele und Hauptziele
  • NAT und Veröffentlichung: SNAT/MASQUERADE und DNAT in realen Szenarien
  • Sicheres Design: Funktionale DMZ und gute Betriebspraktiken

iptables-Firewall unter Linux

Wer Linux-Distributionen verwaltet, um Sicherheit und Datenschutz zu gewährleisten , kommt früher oder später an iptables nicht vorbei. Dieses Paketfiltersystem ist das Herzstück der klassischen Firewall in GNU/Linux und kann entscheiden, welcher Datenverkehr in Netzwerke gelangt, diese verlässt oder zwischen ihnen weitergeleitet wird. Richtig konfiguriert, ist es, als hätte man einen hochqualifizierten Türsteher am Netzwerkeingang, der die Regeln fehlerfrei und mit chirurgischer Präzision durchsetzt.

Im Folgenden finden Sie einen vollständigen und aktuellen Leitfaden, der die Grundlagen abdeckt: Firewall-Konzepte , Netfilter, Tabellen und Ketten, Paketfluss, wichtige Befehle, Regelerweiterungen und erweiterte Ziele sowie praktische Szenarien wie NAT, Umleitungen, Standardrichtlinien und eine funktionsfähige DMZ. Alles wird in klarer und dennoch präziser Sprache erklärt, sodass Sie es sofort in Ihrer Infrastruktur anwenden können.

Firewalls im Kontext: Von Nachtclub-Türstehern bis zur DMZ

Eine Firewall ist im Wesentlichen ein Filter zwischen Netzwerken, der anhand von Regeln über das Schicksal jedes einzelnen Datenpakets entscheidet. Man kann sie sich wie einen Türsteher in einem Nachtclub mit einer Checkliste vorstellen : Erfüllt das Paket die Kriterien, wird es durchgelassen; andernfalls wird es abgewiesen. Diese Metapher verdeutlicht, dass die Logik der Regeln und die Reihenfolge ihrer Auswertung entscheidend sind.

Im Netzwerkdesign gibt es Topologien mit höherer Sicherheit als andere. Die DMZ (demilitarisierte Zone) ist ein Zwischennetzwerk, das öffentliche Dienste (wie Websites oder FTP-Server) hostet und diese vom Unternehmensnetzwerk trennt. Warum? Weil die Segmentierung verhindert, dass ein Angreifer, der einen öffentlichen Server kompromittiert, direkten Zugriff auf den Rest des internen Netzwerks erlangt.

Linux als Firewall: Netfilter und iptables

Der Linux-Kernel enthält Netfilter, ein Framework mit Hooks zum Abfangen und Manipulieren von Datenpaketen . Im Benutzermodus definiert iptables die Regeln, die der Kernel auf den Datenverkehr anwendet. Diese Trennung zwischen Kernel und Benutzermodus ermöglicht hohe Leistung bei gleichzeitig großer Flexibilität.

Es ist sinnvoll, die Dienstprogramme nach Protokoll zu unterscheiden: iptables (IPv4), ip6tables (IPv6), arptables (ARP) und ebtables (Ethernet-Frames) . Im Kernel ist das gemeinsame Modul x_tables, das die Logik zum Abgleich von Erweiterungen und Zielen bereitstellt. Historisch betrachtet ersetzte iptables ipchains, und nftables wiederum löste iptables in Kernel 3.13 ab , obwohl iptables weiterhin in vielen Systemen weit verbreitet ist.

Für den Betrieb benötigen Sie Administratorrechte. Führen Sie iptables als Root aus (oder mit sudo), normalerweise in /usr/sbin/iptables (Debian/Derivate) oder /sbin/iptables (Red Hat/Derivate). Die offizielle Dokumentation finden Sie unter man iptables und unter netfilter.org.

Linux-Distributionen für Server
In Verbindung stehender Artikel:
Die besten Linux-Distributionen für Server

iptables-Struktur: Tabellen, Ketten und Regeln

Iptables organisiert seine Logik in Tabellen, die aus Ketten von Regeln bestehen . Jede Regel spezifiziert Übereinstimmungsbedingungen und ein Ziel, das angewendet wird, wenn das Paket übereinstimmt.

  • Filtertabelle (standardmäßig reine Filterung)
    • SPEISUNG: Verkehr, der an die Maschine selbst gerichtet ist.
    • FORWARD: Verkehr, der durch das Gerät läuft (Routing).
    • AUSGABE: lokal erzeugter Verkehr.
  • Nat-Tisch (Adressübersetzung; wird bei neuen Verbindungen ausgewertet)
    • Vorausschauend: bevor Sie sich für eine Route entscheiden; ideal für DNAT/Portweiterleitung.
    • AUSGABE: lokal erstellte Pakete vor dem Routing.
    • POSTROUTING: nach dem Routing; typisch für SNAT/MASQUERADE.
  • Mangroventisch (Feineinstellungen des Headers: TOS, TTL, Markierung usw.)
    • PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING: durchgehend verfügbar.
  • Rohtabelle (Verbindungsverfolgungssteuerung/Conntrack)
    • Vorausschauend y AUSGABE: um Datenverkehr zu markieren, der von Conntrack übersprungen werden soll.

Wenn ein Paket eine Kette erreicht, wird es nacheinander mit jeder Regel verglichen . Stimmt es überein, wird sein Ziel ausgeführt und die Suche beendet. Erreicht es das Ende, ohne einer Regel zuzustimmen, und ist die Kette vordefiniert, wird die Standard-Kettenrichtlinie für diese Kette angewendet.

  RDNA 3.5-Hardwareunterstützung unter Linux: Aktueller Stand und nahe Zukunft

Paketfluss: Wohin und wann sie gehen

Das Verständnis des Datenverkehrspfads ist entscheidend für die korrekte Anwendung der Regeln. Ein Paket, das Ihr LAN in Richtung Internet verlässt, wird typischerweise wie folgt verarbeitet: Zuerst erfolgt das PREROUTING (möglicherweise DNAT/Mangle), dann das FORWARD (Transitfilterung) und vor dem Verlassen des Geräts das POSTROUTING (gegebenenfalls SNAT/MASQUERADE).

Umgekehrt gilt: Ist das Ziel die Firewall selbst, lautet die Route PREROUTING → INPUT ; stammt sie vom lokalen Rechner, lautet sie OUTPUT → POSTROUTING . Dieses gedankliche Schema erspart Ihnen Kopfschmerzen, wenn etwas nicht zusammenpasst.

Grundlegende Befehle: Richtlinien auflisten, löschen, erstellen und als Standard festlegen

Um den aktuellen Status zu prüfen, USA iptables -L (optional -v für Details und -n (um Namen nicht aufzulösen). Sie können Ketten auch mit erstellen und löschen -N y -X und legen Sie Standardrichtlinien fest mit -P.

Wenn Sie von vorne beginnen müssen, saubere Regeln mit -F (spülen) und ggf. Zähler. Denken Sie daran, dass Sie Tabellen mit -t und spezifische Ketten; zum Beispiel iptables -F -t nat für das NAT.

Beim Definieren von Regeln sind die gängigsten Optionen unkompliziert: -A Ente, -I einfügen, -R ersetzt und -D löschen. Dann fügen Sie Selektoren hinzu wie -p (Protokoll), -s/-d (Ursprung/Ziel), -i/-o (Schnittstellen) und das Ziel mit -j (z.B., AKZEPTIEREN, VERWERFEN oder ABLEHNEN).

Die Standardrichtlinien definieren, was passiert, wenn keine Regeln übereinstimmen. Ein typisches gehärtetes Schema auf einem Host wäre INPUT DROP, FORWARD DROP, OUTPUT ACCEPT, Blockieren aller eingehenden Daten außer dem, was ausdrücklich erlaubt ist und zulassen, was herauskommt.

Übereinstimmungserweiterungen (-m): TCP, UDP, ICMP, MAC, Stateful und Multiport

Iptables erweitert seine Filter um passende Module mit -m. Die TCP-Version ermöglicht die Optimierung über Ports und Flags: --dport/--sport y --syn beispielsweise für neue Anschlusseröffnungen.

Bei UDP können Sie auch Quell- und Zielports einschränken . Ein klassisches Beispiel: Port 80/443 für einen Webserver öffnen oder ausgehende DNS-Anfragen über Port 53/UDP zulassen.

Mit ICMP --icmp-type ermöglicht die Unterscheidung von Typen (z.B., Echo-Anfrage y Echo-Antwort für Pings). Dies ist nützlich, um Diagnosen zu ermöglichen, ohne die Tür für vollständiges ICMP offen zu lassen.

Es gibt auch das Modul mac zum Filtern nach MAC-Adresse mit --mac-source. Nützlich, wenn Sie einen verwalteten Computer mit einer dynamischen IP autorisieren möchten, die Firewall anzupingen, ohne auf die IP angewiesen zu sein.

Und, was auf operativer Ebene vielleicht am wichtigsten ist, Das Modul state (oder conntrack) mit --state NEW, ESTABLISHED, RELATEDDadurch können Antworten von bereits bestehenden Verbindungen zugelassen werden, wodurch die Anzahl der erforderlichen Regeln drastisch reduziert wird.

Um Ports zu gruppieren, multiport addieren --sports y --dports mit kommagetrennten Listen. Es ist praktisch, HTTP, HTTPS und SSH in einer einzigen Regel zu öffnen.

Ziele jenseits von ACCEPT/DROP: NAT und Co.

Neben dem Akzeptieren oder Ablehnen von Anfragen kann iptables auch Adressen und Ports umschreiben , um private Netzwerke mit dem Internet zu verbinden oder interne Dienste zu bewerben.

MASQUERADE (At POSTROUTING aus der Tabelle nat) ersetzt die Quell-IP durch die Ausgangs-IP der Firewall, ideal, wenn die öffentliche IP ist dynamisch (DHCP). Dies ist das typische ausgehende NAT für ein gesamtes LAN.

SNAT (auch in POSTROUTING) setzt explizit die Quell-IP/den Quell-Port mit --to-source. Es wird verwendet, wenn Sie eine statische öffentliche IP haben und Sie möchten die Übersetzung genau steuern.

DTA (At PREROUTING o OUTPUT) ändern Sie die Ziel-IP mit --to-destination. Es sind die berühmten "offenen Häfen": Sie empfangen Datenverkehr auf der öffentlichen IP und leiten ihn an einen Server in der DMZ um, beispielsweise eine interne Website unter 192.168.1.2.

  Debian Linux: die wichtigste Distribution des GNU-Ökosystems

Einfaches Beispiel: Filtern des Datenverkehrs zwischen zwei Netzwerken

Stellen Sie sich eine Maschine vor, die als Router/Firewall zwischen zwei Subnetzen fungiert. Wenn Sie möchten, dass nur Host B mit C kommuniziert und nur über TCP, wird die Tabelle filter und die richtige Zeichenfolge ist FORWARD, da der Verkehr durch die Geräte läuft.

Zuerst würden Sie eine standardmäßige DROP-Richtlinie für FORWARD anwenden und anschließend den B→C-Verkehr über TCP (und gegebenenfalls C→B) explizit autorisieren. Dieses Vorgehen, standardmäßig zu verweigern und nur das absolute Minimum zuzulassen, bildet die Grundlage für ein robustes Sicherheitskonzept.

Alltagsfälle auf einem Laufsteg: typische Regeln

Ein Gateway mit zwei Schnittstellen, zum Beispiel eth1 (LAN) und eth0 (WAN), muss normalerweise Pakete vom LAN zum Internet weiterleiten. Dazu fügt es hinzu FORWARD -i eth1 -o eth0 -j ACCEPTund erlaubt nur den Rückwärtsgang ESTABLISHED,RELATED mit -m state.

In der Firewall selbst empfiehlt es sich, eingehender Verkehr, der eine Antwort auf ausgehende Verbindungen ist mit INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT, und erlauben Sie immer Loopback: INPUT -i lo -j ACCEPT.

Um LAN-Computern das Browsen zu ermöglichen, wenden Sie ausgehendes NAT an: -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source X.Y.Z.W (o MASQUERADE wenn die IP dynamisch ist). Dadurch werden die privaten IPs in Ihre öffentliche IP übersetzt.

Eine grundlegende Sicherheitsmaßnahme ist das Blockieren eingehender WAN-Pakete mit unzulässigen Quell-IP-Adressen (Ihre eigene öffentliche IP-Adresse, private Bereiche 192.168.0.0/24, 127.0.0.0/8 usw.), da diese in der Regel auf Spoofing hinweisen.

Um Dienste auf der Firewall freizugeben (z. B. SMTP 25, HTTP 80, HTTPS 443 oder SSH 22), können Sie Erlauben Sie TCP-Pakete mit dem SYN-Flag an diese Zielports. Wenn Sie die Ziel-IP eingrenzen möchten, fügen Sie hinzu -d zur IP des Dienstes.

Zu den typischen Infrastrukturdiensten gehören DHCP (Datenverkehr über die Ports 68 bis 67) auf der LAN-Schnittstelle und DNS vom autoritativen Resolver (UDP 53), falls die Filterung nach Quelle erfolgt. Über diese Ports können Clients IP-Adressen beziehen und Namen auflösen.

Wenn Sie den Zugriff blockieren müssen, ist das Verwerfen eingehender SSH/Telnet-Verbindungen unkompliziert; Sie können auch ausgehende Nachrichten an blockierte IPs im lokalen Netzwerk ablehnen, sodass der Absender eine Ablehnungsbenachrichtigung erhält.

Installieren und Verwalten des Dienstes auf Red Hat/CentOS-Systemen

In Legacy-Umgebungen mit CentOS/RHEL 5/6 reichte es aus, installieren mit yum -y install iptablesObwohl viele neue Distributionen heute nftables bevorzugen, ist iptables in Produktionssystemen und -geräten immer noch vorhanden.

Integration mit SysV-Dienste berechtigt, Regeln zu verwalten und beizubehalten: service iptables start|stop|restart y service iptables save, Einsparung in /etc/sysconfig/iptables. So aktivieren Sie es beim Booten: chkconfig iptables on auf den Stufen 2–5.

Auch wenn sich in modernen Systemen die Schnittstellen ändern , bleibt die Grundidee bestehen: Regeln definieren, testen und so speichern, dass sie auch nach einem Neustart erhalten bleiben, sei es mit Systemtools oder Skripten.

Präzises Auflisten, Löschen und Bearbeiten von Regeln

Um den Status mit Regelnummern anzuzeigen, USA iptables -L --line-numbers -n -v. Auf diese Weise können Sie nach Index löschen mit -D INPUT 3 oder ersetzen durch -R ohne Verwirrung.

Wenn Sie eine selektive Löschung benötigen, Reinigen Sie nur die Kette oder das Brett, das berührt (-F FORWARD o -F -t nat). Vermeiden Sie Remote-Global-Sweeps ohne „Sicherheitsnetz“, da Sie sonst möglicherweise den SSH-Zugriff verlieren.

Als generelle Vorgehensweise empfiehlt es sich, zunächst Regeln festzulegen, die Ihre SSH-Sitzung ermöglichen , Änderungen schrittweise anzuwenden und ein Rollback-Fenster einzurichten (z. B. einen Cronjob, der die Regeln nach 5 Minuten wiederherstellt, falls Sie die Änderungen nicht übernehmen).

Persistenz mit iptables-save und iptables-restore

Um Ihre Einstellungen zu speichern, iptables-save > /ruta/backup/iptables.rules Generiert einen maschinenlesbaren Dump aller Tabellen. Ideal für Änderungskontrolle und Migrationen.

  Alternative Betriebssysteme: Jenseits der üblichen Giganten

Zum Aufladen verwenden Sie iptables-restore < /ruta/backup/iptables.rulesSie können die Boot-Wiederherstellung mit systemd, Init-Skripten oder einem Cron-Job automatisieren. @reboot, wodurch sichergestellt wird, dass die Firewall nach einem Neustart aktiv bleibt.

Ergänzen Sie diese bewährten Betriebspraktiken: läuft mit entsprechenden Berechtigungen, speichern Sie Dateien außerhalb /tmp und richten Sie sie an der Umgebung aus (korrekte Schnittstellen und Subnetze), um Überraschungen zu vermeiden.

DMZ im Detail: ein vollständiges und realistisches Beispiel

Angenommen, eine Linux-Firewall ist im Einzelbenutzermodus (ohne NAT) mit einem Router verbunden und verfügt über drei Schnittstellen: eth0 (LAN 192.168.1.1/24), eth1 (DMZ 192.168.2.1/24) und eth2 (WAN mit IP-Adresse per DHCP) . In der DMZ laufen ein Apache-Webserver (192.168.2.2) und ein FTP-Server (192.168.2.3).

Richtlinienziele: HTTP/HTTPS- und FTP-Zugriff aus der DMZ ins Internet ermöglichen, SSH-Administration vom LAN zur Firewall erlauben und dem LAN das Surfen (HTTP/HTTPS), den Dateitransfer via FTP und die DNS-Auflösung ermöglichen. Alle anderen Zugriffe sind untersagt.

Im Großen und Ganzen: in Filter/Weiterleiten ermöglicht LAN→WAN-Transit mit Antwort und WAN→DMZ nur zu veröffentlichten Ports mit ESTABLISHED,RELATED für die Antworten. In nat/PREROUTING, wendet DNAT an, um Dienste zu veröffentlichen; in nat/POSTROUTING, SNAT/MASQUERADE für LAN/DMZ-Ausgabe.

Beispiele für Eröffnungen: DNAT 80/443 bis 192.168.2.2 und 21/20 (je nach Modus) bis 192.168.2.3 mit den entsprechenden FORWARD Erlauben Sie diese Ports. Sichern Sie die Steuer- und Datenkanäle für FTP (aktiv/passiv) oder begrenzen Sie den passiven Bereich und berücksichtigen Sie dies in der Firewall.

Für LAN: ermöglicht den Ausgang zu 80, 443, 21 und 53 und seine Rückkehr, Anwendung von Outbound NAT in POSTROUTING. Autorisieren Sie in der Firewall Eingehendes SSH nur aus dem Subnetz 192.168.1.0/24 und blockiert unerwünschte Zugriffe aus dem WAN.

Vergessen Sie nicht die Protokollierungsrichtlinien: Sperren Sie ungültige WAN-Bereiche (privates Netzwerk, Loopback-Netzwerk, Ihr eigenes öffentliches Netzwerk) und protokollieren Sie nur die Daten, die Sie interessieren. Mit restriktiven Standardrichtlinien und minimalen Zugriffsrechten reduzieren Sie Ihr Risiko auf ein absolutes Minimum.

Gute Praktiken und operative Tricks

Arbeiten Sie immer mit einem Plan: Dokumentieren Sie, was Sie erlauben und warum , überprüfen Sie den erwarteten Ablauf mit einem einfachen Diagramm und wenden Sie die Regeln in der richtigen Reihenfolge an, um Überschneidungen zu vermeiden.

Verwenden Sie eine Kombination von Modulen mit einem Kopf: Status/Conntrack für Antworten, TCP-Con --syn in Öffnungen und multiport zur GruppeAuf diese Weise vereinfachen Sie die Arbeit und verringern das Risiko von Inkonsistenzen.

Erwägen Sie für Umgebungen mit häufigen Änderungen, die Regeln nach Funktion zu trennen: benutzerdefinierte Ketten (Mit -N) Aufrufe von INPUT/OUTPUT/FORWARD, sodass das Behalten oder Umkehren von Teilen sauberer ist.

Die Umstellung auf nftables ist in vielen Distributionen bereits im Gange. Wenn Ihre Plattform/Ihr Produkt jedoch iptables verwendet, erhalten Sie durch ein umfassendes Verständnis dieser Komponenten die volle Kontrolle . Und falls Sie migrieren, werden Sie die entsprechende Denkweise in nftables schnell erfassen.

Mit dem bisher Gelernten verfügen Sie nun über eine solide Grundlage für die Bereitstellung und Wartung von iptables im Produktivbetrieb: Sie verstehen die Architektur (Tabellen, Ketten und Flow), beherrschen die wichtigsten Befehle, können NAT implementieren und mit DNAT/SNAT veröffentlichen und wissen, wie Sie eine sichere DMZ einrichten . Jetzt geht es darum, die Konfiguration an Ihre spezifischen Bedürfnisse anzupassen, regelmäßig Audits durchzuführen und Ihre Regeln so klar wie Ihr Netzwerkmodell zu gestalten.