Firewall-Regeln für Docker: UFW/iptables und typische Fallen

Docker erstellt beim Start von Containern automatisch eigene iptables-Regeln, um NAT, Port-Mapping und Container-Kommunikation zu ermöglichen. Ohne zusätzliche Firewall-Konfiguration können Sicherheitslücken entstehen, da Container standardmäßig viel Zugriff auf das Host-System erhalten. In diesem Tutorial werden typische Fallstricke erklärt und gezeigt, wie man UFW und iptables korrekt für Docker einsetzt.

Grundlagen: Docker und iptables

Docker fügt automatisch Regeln in die iptables ein, um Netzwerkverkehr zu verwalten:

  • Port-Forwarding für veröffentlichte Ports
  • Bridge-Netzwerke für Container-zu-Container-Kommunikation
  • NAT für ausgehende Verbindungen von Containern

Problem: Manuelle Firewall-Regeln werden von Docker oft überschrieben oder umgangen, wenn nicht richtig konfiguriert.

UFW und Docker: typische Fallen

UFW ist ein Frontend für iptables, das das Management erleichtert. Typische Probleme bei Docker:

  • Docker manipuliert iptables direkt und fügt eigene Regeln hinzu, die UFW-Regeln umgehen
  • Standardmäßig öffnet Docker alle Ports auf docker0-Bridge
  • UFW-Default-Policy muss angepasst werden, um Docker-Kommunikation zu berücksichtigen

UFW korrekt konfigurieren

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp  # SSH-Zugriff erlauben
sudo ufw allow 80/tcp  # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
  • Docker sollte --iptables=false deaktiviert bekommen, um Konflikte zu vermeiden
  • Port-Forwarding und NAT müssen dann manuell in iptables konfiguriert werden

Docker ohne iptables-Manipulation

Starten Sie den Docker-Daemon ohne automatische iptables-Regeln:

sudo dockerd --iptables=false
  • Ermöglicht, dass UFW die Regeln vollständig kontrolliert
  • Alle Container-Port-Mappings müssen explizit in UFW oder iptables erlaubt werden

iptables für Container absichern

Beispiele für sichere Regeln:

  • Nur notwendige Ports vom Host erreichbar machen:
  • sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  • Loopback-Verkehr zwischen Containern auf Bridge erlauben:
  • sudo iptables -A FORWARD -i docker0 -o docker0 -j ACCEPT
    sudo iptables -A FORWARD -i docker0 ! -o docker0 -j DROP
  • NAT für ausgehende Container-Verbindungen:
  • sudo iptables -t nat -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE

Best Practices

  • Deaktivieren Sie Docker-iptables, wenn Sie UFW oder eigene Firewall-Regeln nutzen
  • Öffnen Sie nur notwendige Ports für externe Zugriffe
  • Isolieren Sie Container-Netzwerke untereinander, wenn keine Kommunikation nötig ist
  • Regelmäßige Überprüfung mit iptables -L -v oder ufw status verbose
  • Logging aktivieren, um verdächtige Verbindungen zu erkennen
  • Verwenden Sie separate Bridges für unterschiedliche Applikationen
  • Ressourcenlimits und Seccomp/AppArmor ergänzend einsetzen

Monitoring und Audit

Prüfen Sie die Regeln und deren Wirksamkeit regelmäßig:

sudo ufw status numbered
sudo iptables -L -v -n
sudo docker ps --format '{{.Names}} {{.Ports}}'
  • Überwachung zeigt offene Ports und Weiterleitungen
  • Hilft bei Audit und Compliance
  • Erlaubt die Anpassung der Regeln bei neuen Containern

Zusammenfassung

Docker manipuliert automatisch iptables, was zu Sicherheitsfallen führen kann. Um Container sicher zu betreiben, sollten UFW oder manuelle iptables-Regeln genutzt werden, Docker-iptables bei Bedarf deaktiviert werden und nur notwendige Ports freigegeben werden. Mit isolierten Netzwerken, Logging, Monitoring und ergänzenden Sicherheitsmechanismen entsteht eine stabile und sichere Container-Infrastruktur.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles