Inhaltsverzeichnis

Firewall – Grundlagen & sichere Konfiguration mit iptables

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.

Was ist eine Firewall?

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 – Aufbau & Funktionsweise

iptables arbeitet mit Tables, Chains und Rules. Jede Tabelle enthält Chains, die wiederum Regeln enthalten.

Wichtige Tabellen

Wichtige Chains


Grundkonfiguration einer sicheren Firewall

1. Standard‑Policies setzen

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

2. Loopback‑Traffic erlauben

sudo iptables -A INPUT -i lo -j ACCEPT

3. Bereits etablierte Verbindungen erlauben

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

4. SSH‑Zugriff erlauben

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

5. ICMP (Ping) kontrolliert erlauben

sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

Firewall‑Logging

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

NAT & Port‑Weiterleitung (Router‑Betrieb)

Masquerading (Internetfreigabe)

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Port‑Forwarding

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

Firewall‑Härtung (Hardening)

Die folgenden Maßnahmen erhöhen die Sicherheit einer iptables‑basierten Firewall erheblich.

1. SSH‑Brute‑Force‑Schutz

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

2. Port‑Scanning erkennen & blockieren

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

3. SYN‑Flood‑Schutz

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

4. Ungültige Pakete verwerfen

sudo iptables -A INPUT -m state --state INVALID -j DROP

5. Fragmentierte Pakete blockieren

sudo iptables -A INPUT -f -j DROP

6. Private IP‑Bereiche auf WAN‑Interface blockieren

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

Regeln dauerhaft speichern

iptables‑Regeln sind nach einem Neustart verloren. Persistenz aktivieren:

sudo apt install iptables-persistent
sudo netfilter-persistent save

Firewall‑Konfiguration anzeigen

sudo iptables -L -v -n

Best Practices für eine sichere Firewall

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.