DanLevy.net

Docker‑Firewall einrichten

Firewall für Docker‑Host einrichten

Hero image for Docker‑Firewall einrichten

Firewall des Docker‑Hosts einrichten

  1. Debian/Ubuntu‑Server wird vorausgesetzt
  2. Für den Betrieb auf einem Docker‑Host‑Server konzipiert

Voraussetzungen installieren

Terminal window
# Ultimativer Firewall‑Bedarf
apt-get update && apt-get install -y ufw nmap curl

Interne & externe IP‑Adressen ermitteln

Terminal window
# IP‑Adressen ausgeben, einfache Ausgabe:
hostname --all-ip-addresses
# ODER ip‑Tool verwenden, Beispiel:
ip addr

Firewall (UFW) einrichten – Beispielbefehle

Terminal window
ufw logging on # on=low – medium könnte für Fehlersuche besser sein
ufw logging medium
# Zuerst alles blockieren
ufw default deny incoming
# ERFORDERLICH: WÄHLEN SIE *EINE* DER FOLGENDEN STANDARD‑AUSGANGSREGELN:
ufw default deny outgoing
ufw default allow outgoing
# Erlaube und protokolliere alle neuen SSH‑Verbindungen,
ufw allow log proto tcp from any to any port 22
## Erlaube HTTP‑Verkehr (ohne explizites Logging)
ufw allow out on docker0 53/udp to 172.17.0.1/16
ufw allow out on eth0 to any port 53
ufw allow out on eth0 from 0.0.0.0/0 to any port 80 proto tcp
ufw allow out on eth0 from 0.0.0.0/0 to any port 443 proto tcp
# Ausführlich: ufw allow proto tcp from any to any port 80
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow log 22/tcp
ufw limit ssh # Basis‑Rate‑Limit, reduziert SSH‑Brute‑Force‑Angriffe
# Setze deine externe IP
export EXTERNAL_IP=123.123.123.123
# Aktualisiere Docker‑IP falls nötig
export DOCKER_IP=172.17.42.1
# Leite TCP‑8080‑Verkehr an die Docker‑App weiter
ufw allow proto tcp from $EXTERNAL_IP port 8080 to $DOCKER_IP port 3000

Firewall aktivieren / starten

Vorsicht: Nicht den SSH‑Port sperren (sshd nutzt standardmäßig Port 22)

Terminal window
ufw --force enable
ufw reset

Firewall testen

Wichtig: Verwende eine entfernte IP‑Adresse/Location

Terminal window
# Abhängigkeit prüfen
apt-get update && apt-get install -y nmap
# Scan‑Ziel festlegen
export TARGET_HOST=123.123.123.123
# Beispiel‑Scan‑Befehle:
# Schnelle Prüfung offener Ports
nmap -p 1-10240,27017 -T5 $TARGET_HOST
# Gründlicher Scan
nmap -p 1-10240,27017 --open -v -APN $TARGET_HOST
# Dienst‑Inspektion
nmap -p 1-10240,27017 -O --osscan-guess $TARGET_HOST

ERLEDIGT! Jetzt sollten NUR die Ports sichtbar sein, die Sie konfiguriert haben!