Docker - Netzwerke, Ports, Reverse Proxy und Firewall

Aus HOSTING-STATION55 - Webhosting Wiki / FAQ
Zur Navigation springen Zur Suche springen

Ein veröffentlichter Docker-Port kann einen Dienst direkt aus dem Internet erreichbar machen. Datenbanken, Verwaltungsoberflächen und interne APIs sollten nicht ohne ausdrücklichen Grund an alle Hostadressen gebunden werden.

Bestand prüfen

docker compose ps
docker network ls
docker ps --format 'table {{.Names}}\t{{.Ports}}'
ss -lntup
sudo nft list ruleset

Prüfen Sie sowohl IPv4 als auch IPv6. Docker kann eigene Firewallregeln anlegen; verlassen Sie sich deshalb nicht ausschließlich auf eine oberflächliche Prüfung der Host-Firewall.

Portbindung verstehen

Eine Bindung wie 8080:80 veröffentlicht den Containerdienst üblicherweise auf Host-Port 8080. Soll ausschließlich ein lokaler Reverse Proxy zugreifen, kann je nach Aufbau eine Bindung an Loopback wie 127.0.0.1:8080:80 geeigneter sein.

Empfohlener Aufbau

  1. Legen Sie ein internes Netzwerk für Anwendung und Datenbank an.
  2. Veröffentlichen Sie keine Datenbankports, wenn nur andere Container zugreifen.
  3. Stellen Sie Webdienste über einen gepflegten Reverse Proxy bereit.
  4. Terminieren Sie TLS am klar definierten Einstiegspunkt.
  5. Öffnen Sie in der Host-Firewall nur benötigte Ports.
  6. Testen Sie Erreichbarkeit von außen und vom Host getrennt.

Typische Fehler

Datenbank ist weltweit erreichbar
Entfernen Sie die Portfreigabe, prüfen Sie Zugangsdaten und kontrollieren Sie Protokolle auf Zugriffe.
Dienst ist trotz Firewall erreichbar
Prüfen Sie Docker-Regeln, Weiterleitung und die Reihenfolge der nftables-/iptables-Chains.
Reverse Proxy meldet 502
Prüfen Sie Containerstatus, Zielport, Netzwerkzuordnung und die Adresse, auf der der Dienst lauscht.

Verwandte Artikel