Diese Anleitung erklärt, wie Sie eine sichere Default-Deny Firewall-Strategie mit iptables auf Ihrem Linux-Server implementieren — jeglicher Datenverkehr wird blockiert, sofern er nicht explizit erlaubt wird.
Reihenfolge ist kritisch! Das Ausführen der finalen DROP-Richtlinie vor dem Erlauben des SSH-Zugriffs führt sofort zu einem Serverausschluss (Lockout). Testen Sie Regeln stets sorgfältig und halten Sie immer einen Konsolenzugang über das PowerPanel bereit.
Konfigurieren Sie zunächst alle notwendigen Zugriffe, bevor die globale Blockierungsregel angewandt wird.
Beginnen Sie mit einer sauberen Konfiguration, indem Sie alle bestehenden iptables-Regeln löschen:
Erlauben Sie den gesamten internen Verkehr über das Loopback-Interface. Dies ist für lokale Dienste unerlässlich:
Erlauben Sie Pakete, die zu einer bereits hergestellten Verbindung gehören — notwendig damit Antworten auf ausgehende Anfragen (z. B. DNS, Updates) den Server erreichen:
Erlauben Sie SSH bevor Sie die DROP-Policy setzen — sonst sperren Sie sich sofort aus:
Erst jetzt, nach allen erlaubten Regeln, wird die globale Blockierungsregel gesetzt. Alle Pakete, die nicht von den vorherigen Regeln akzeptiert wurden, werden verworfen:
Fügen Sie Regeln für alle Dienste hinzu, die von außen erreichbar sein müssen. Für bessere Wartbarkeit empfiehlt sich die Nutzung einer benutzerdefinierten Chain:
Um die INPUT-Kette übersichtlich zu halten, erstellen Sie eine eigene Chain für offene Ports:
Kritische Ports wie Datenbankports sollten nur für bekannte IP-Adressen geöffnet werden:
Optional — erlaubt eingehende und ausgehende Ping-Anfragen zur Erreichbarkeitsprüfung:
Integrieren Sie Basisschutz gegen Floods und Protokollierung verworfener Pakete:
Begrenzt neue Verbindungen pro Quell-IP, um einfache Flood-Angriffe auf einen Port zu mitigieren:
Blockiert Pakete, die typischerweise für Port-Scans und spezielle Angriffe verwendet werden:
Fügen Sie diese Regel direkt vor der finalen DROP-Policy ein — mit Rate-Limit um Log-Flooding zu verhindern:
iptables-Regeln sind temporär und gehen nach einem Neustart verloren. Sie müssen persistent gespeichert werden.
Installieren Sie iptables-persistent — es lädt die Regeln automatisch bei jedem Neustart:
Alternative nftables: Auf modernen Distributionen (Debian 10+, Ubuntu 20.04+, RHEL 8+) wird iptables durch nftables abgelöst. Für neue Server-Deployments empfehlen wir nftables — es ist performanter, übersichtlicher und wird aktiv weiterentwickelt. Zur nftables-Anleitung →
Für eine vollständige Referenz aller iptables-Optionen empfehlen wir die offizielle Dokumentation.