Eine Firewall ist ein zentrales Sicherheitswerkzeug zur Kontrolle des ein- und ausgehenden Netzwerkverkehrs. Unter Linux bildet iptables die klassische Grundlage für Paketfilterung, Stateful Inspection, NAT und Portfreigaben. Diese Seite erklärt die Funktionsweise einer Firewall, die Struktur von iptables und zeigt praxisnahe Beispiele für eine sichere Server‑Konfiguration.
Eine Firewall überwacht und kontrolliert Netzwerkpakete anhand definierter Regeln. Sie schützt Systeme vor ungewolltem Zugriff, Angriffen und Datenabfluss. Unter Linux erfolgt dies über Netfilter, das durch iptables gesteuert wird.
iptables arbeitet mit Tables, Chains und Rules. Jede Tabelle enthält Chains, die wiederum Regeln enthalten.
Standardmäßig sollte alles blockiert werden, was nicht explizit erlaubt ist.
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
Logging ist essenziell, um Angriffe zu erkennen und Fehlkonfigurationen zu analysieren.
sudo iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
Logs erscheinen in:
/var/log/syslog
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Beispiel: Port 80 extern → interner Webserver 192.168.1.50:80
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
-j DNAT --to-destination 192.168.1.50:80
Die folgenden Maßnahmen erhöhen die Sicherheit einer iptables‑basierten Firewall erheblich.
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
-m recent --set
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
-m recent --update --seconds 60 --hitcount 5 -j DROP
sudo iptables -A INPUT -m recent --name portscan --set -j DROP
sudo iptables -A INPUT -m recent --name portscan --update --seconds 60 --hitcount 10 -j DROP
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo iptables -A INPUT -p tcp --syn -m limit --limit 5/s -j ACCEPT
sudo iptables -A INPUT -m state --state INVALID -j DROP
sudo iptables -A INPUT -f -j DROP
Schützt vor Spoofing‑Angriffen:
sudo iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
sudo iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
sudo iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
iptables‑Regeln sind nach einem Neustart verloren. Persistenz aktivieren:
sudo apt install iptables-persistent
sudo netfilter-persistent save
sudo iptables -L -v -n
Mit einer sauber konfigurierten iptables‑Firewall lässt sich ein Linux‑System effektiv gegen Angriffe schützen. Die Kombination aus Paketfilterung, Stateful Inspection, Logging und Hardening bildet eine robuste Sicherheitsbasis für Server und Netzwerke.