iptables Firewall Generator
iptables Firewall Generator
Erstelle iptables-Regeln für Linux mit filter/nat/mangle-Tables, NAT, Port-Forwarding und Best Practices. Mit Live-Skript-Generierung.
Hinweis: Dieser Generator erstellt iptables-Regeln für Linux-Systeme. iptables ist das klassische Firewall-Tool unter Linux – für moderne Systeme wird oft nftables empfohlen. Teste Regeln immer in einer sicheren Umgebung!
Inhaltsverzeichnis
Schnellübersicht
- Regel-Generator: filter/nat/mangle-Tables mit Chains
- Match-Module: -s, -d, -p, --dport, -m state/conntrack
- Jump-Targets: ACCEPT, DROP, REJECT, LOG, RETURN, DNAT, SNAT
- NAT & Port-Forwarding: DNAT, SNAT, MASQUERADE
- Live-Vorschau: Generierte CLI-Befehle
- Beispiel-Setups: Webserver, Router, Docker-Host, NAT-Gateway
- Theorie: Über iptables, Tables und Chains
- FAQ: Häufige Fragen zu iptables
1. iptables Regel-Generator
Füge Regeln hinzu, ordne sie und generiere das iptables-Skript.
filter (Standard)
Hauptsächlich genutzte Table für Paketfilterung.
Chains: INPUT, OUTPUT, FORWARD
nat
Network Address Translation (IP-Adressen umschreiben).
Chains: PREROUTING, OUTPUT, POSTROUTING
mangle
Spezialbehandlung von Paketen (TOS, TTL, MARK).
Chains: Alle 5 Chains
raw
Vor Conntrack-Tracking (NOTRACK).
Chains: PREROUTING, OUTPUT
Regeln anzeigen
iptables -L -n -v – Alle Regeln
iptables -t nat -L -n -v
iptables -L --line-numbers
Regeln speichern
iptables-save > /etc/iptables/rules.v4
iptables-restore < /etc/iptables/rules.v4
netfilter-persistent save
Regeln löschen
iptables -F – Alle Regeln löschen
iptables -D INPUT 3 – Regel 3 löschen
iptables -X – Eigene Chains löschen
IP-Forwarding aktivieren
sysctl -w net.ipv4.ip_forward=1
Dauerhaft: /etc/sysctl.conf
Nötig für Router/NAT
2. Theorie – iptables und Netfilter
Verstehe, wie iptables funktioniert und wie du sichere Regeln erstellst.
Was ist iptables?
iptables ist die klassische Firewall-Schnittstelle unter Linux:
- Netfilter: Kernel-Modul im Linux-Kernel
- Userspace: iptables als Steuerungs-Tool
- Seit 2.4: Teil des Linux-Kernels
- Ersetzt: Schrittweise durch nftables
Tables & Chains
iptables organisiert Regeln in Tables und Chains:
- 4 Tables: filter, nat, mangle, raw
- 5 Standard-Chains: INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING
- Priorität: raw → mangle → nat → filter
- Bei Paket: Chain wird durchlaufen
Stateful Firewall
iptables ist stateful – es trackt Verbindungen:
- conntrack: Trackt alle Verbindungen
- NEW: Neue Verbindung
- ESTABLISHED: Bestehende Verbindung
- RELATED: Verwandte Verbindung (FTP, ICMP)
- INVALID: Ungültiges Paket
Best Practices
- Default-Policy: INPUT/FORWARD DROP
- Loopback: Immer erlauben
- ESTABLISHED: Vor neuen Regeln erlauben
- SSH: Vor Aktivierung erlauben!
- Logging: Am Ende DROP mit LOG
- Persistenz: iptables-save / netfilter-persistent
- Erst SSH erlauben, dann DROP-Policy:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT - Remote-Server: Immer einen zweiten Zugang (Konsole, RDP) bereithalten.
- Testen:
iptables-applymit Auto-Rollback nach 10s nutzen! - Persistenz: Regeln überleben keinen Reboot ohne Speichern.
- Backup:
iptables-save > /root/iptables-backup.rules
Wussten Sie schon?
iptables ist zwar noch Standard auf vielen Systemen, wird aber langfristig durch nftables ersetzt (seit Linux 3.13, 2014). nftables bietet bessere Performance, einfachere Syntax und native IPv4/IPv6-Unterstützung. Für neue Systeme empfiehlt sich daher nftables oder UFW (als Frontend).
3. Geschichte von iptables
Von ipfwadm über ipchains zu iptables und nftables.
ipfwadm
Erstes Firewall-Tool für Linux 1.2. Es war einfach, aber limitiert – nur IPv4, keine Stateful Inspection, keine NAT-Unterstützung.
ipchains
ipchains ersetzt ipfwadm in Linux 2.2. Es unterstützt mehrere Chains, aber noch kein Stateful Tracking. NAT ist über separate Module möglich.
iptables
iptables wird in Linux 2.4 eingeführt. Es bietet Stateful Inspection, NAT, Tables und bessere Performance. Wird Standard für die nächsten 20 Jahre.
UFW & firewalld
UFW (Ubuntu) und firewalld (Red Hat) erscheinen als vereinfachte Frontends für iptables. Sie machen Firewalls für Anfänger zugänglich.
nftables (Linux 3.13)
nftables wird in den Kernel integriert. Es ersetzt iptables langfristig mit besserer Performance, einfacherer Syntax und native IPv4/IPv6-Unterstützung.
iptables-nft
Eine Kompatibilitätsschicht (iptables-nft) wird Standard in Debian/Ubuntu. iptables-Befehle werden transparent auf nftables-Backend übersetzt.
iptables & nftables parallel
iptables ist weiterhin Standard in vielen Systemen. Neue Distributionen setzen aber auf nftables. Die Kompatibilitätsschicht erlaubt sanfte Migration.
4. FAQ – Häufige Fragen
Häufige Fragen zu iptables
| Merkmal | iptables | nftables |
|---|---|---|
| Eingeführt | 2001 (Linux 2.4) | 2014 (Linux 3.13) |
| Performance | Gut | Besser |
| IPv4/IPv6 | Getrennt (iptables/ip6tables) | Nativ kombiniert |
| Syntax | Kryptisch | Moderner |
| Tabellen | 4 Tables | Eine (mit Family) |
| Status | Legacy (Kompat.) | Standard |
Empfehlung:
- Bestehende Systeme: iptables beibehalten
- Neue Systeme: nftables oder UFW
- Migration:
iptables-nftals Brücke
| Target | Verhalten | Antwort |
|---|---|---|
| DROP | Paket verwerfen | Keine (Client wartet) |
| REJECT | Paket ablehnen | ICMP "Port Unreachable" |
Wann was nutzen?
- DROP: Standard für externe Interfaces (Slow-Down für Scanner)
- REJECT: Für interne Netze (Client bekommt sofort Feedback)
Wichtig: REJECT sollte nicht für alle Pakete genutzt werden – manche Clients senden ICMP-Fehler weiter.
Problem: iptables-Regeln überleben keinen Reboot.
Lösung 1: iptables-persistent (Debian/Ubuntu)
apt install iptables-persistentnetfilter-persistent save- Regeln werden in
/etc/iptables/rules.v4gespeichert
Lösung 2: iptables-save (alle Distros)
iptables-save > /etc/iptables/rules.v4- In
/etc/rc.localoder systemd-Unit einbinden
Lösung 3: firewalld (Red Hat/CentOS)
- Persistente Regeln über firewalld-Konfiguration
Stateful Inspection trackt Verbindungen mit conntrack:
- NEW: Erste Paket einer Verbindung
- ESTABLISHED: Verbindung aktiv
- RELATED: Zugehörige Verbindung (z.B. FTP-Daten, ICMP)
- INVALID: Ungültige Pakete
Typische Regel-Reihenfolge:
- 1.
ESTABLISHED,RELATED -j ACCEPT - 2.
INVALID -j DROP - 3. Neue Verbindungen (spezifische Ports)
- 4.
-j DROP
Vorteil: Ausgehende Verbindungen erlauben automatisch die Rückrichtung.
Port-Forwarding (DNAT): Leitet externe Anfragen an internen Host weiter.
- 1. IP-Forwarding aktivieren:
sysctl -w net.ipv4.ip_forward=1 - 2. DNAT-Regel:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
- 3. FORWARD erlauben:
iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT
- 4. SNAT/Masquerade: Für Rückweg
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Wichtig: FORWARD-Policy muss auf ACCEPT oder passende Regeln gesetzt sein.
First-Match: iptables prüft Regeln von oben nach unten. Die erste passende Regel gewinnt.
Wichtig:
- -A: Append (am Ende anhängen)
- -I: Insert (an Position einfügen)
- -D: Delete (Regel löschen)
Beispiel (falsch):
iptables -A INPUT -j DROPiptables -A INPUT -p tcp --dport 22 -j ACCEPT
SSH wird nie erreicht – DROP ist zuerst!
Richtig:
iptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A INPUT -j DROP
Regel einfügen: iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
iptables-apply – Tool mit automatischem Rollback:
- 1. Regeln in Datei speichern:
iptables-save > /tmp/rules.v4 - 2. Anwenden:
iptables-apply /tmp/rules.v4 - 3. Bestätigung: Nach 10 Sekunden Bestätigung nötig
- 4. Bei Timeout: Automatischer Rollback zu alten Regeln
Manuell:
- at/cron: Rollback-Job einrichten
- Screen/Tmux: Bei SSH-Sitzung
- Provider-Konsole: Fallback-Zugang
Best Practice: Regeln immer zuerst anhängen (-A), nicht sofort einfügen (-I).
Empfohlen:
- INPUT:
DROP(alles blockieren, was nicht erlaubt) - OUTPUT:
ACCEPT(ausgehende Verbindungen erlauben) - FORWARD:
DROP(kein Routing ohne explizite Regeln)
Warum OUTPUT auf ACCEPT?
- Ausgehende Regeln sind schwer zu pflegen
- Malware kann trotzdem exfiltrieren (via DNS, HTTP)
- Nur bei hohen Sicherheitsanforderungen auf DROP setzen
Wichtig: Loopback immer erlauben!
iptables -A INPUT -i lo -j ACCEPT
Zusammenfassung
Die wichtigsten Punkte
- iptables: Klassische Firewall für Linux (Netfilter)
- 4 Tables: filter, nat, mangle, raw
- 5 Chains: INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING
- Stateful: conntrack mit NEW, ESTABLISHED, RELATED
- Default-Policy: INPUT DROP, FORWARD DROP
- SSH: Immer vor DROP-Policy erlauben!
- NAT: DNAT (Port-Forward), SNAT, MASQUERADE
- Persistenz: iptables-save / iptables-persistent
- Sicher testen: iptables-apply mit Rollback
- Unser Tool: iptables-Generator mit Live-Vorschau