Zum Inhalt

Docker und die Tücken mit iptables

Ich bin kürzlich über einen fiesen Stolperstein bei der Einrichtung meines Servers gestoßen…

Hintergrund: Ich habe den Server mit ufw abgesichert und pauschal alles geblockt, was ich nicht explizit zulasse. Nachdem die Grundeinrichtung abgeschlossen war und ich nun zusätzliche Dienst in diversen Docker Containern eingerichtet habe, war das erstaunen groß, als ich gesehen habe, dass ich trotz DENY-Rule in der ufw auf einen Container auf seinem mit -p 8080:80 zugewiesenen Port von extern im Browser zugreifen konnte…

Genau das wollte ich eigentlich verhindern, denn hier kommt vor den Containern nochmals ein vorgeschalteter Reverse Proxy ins Spiel, der die Kommunikation der Aussenwelt mit den Containern übernehmen soll.

Nach längerem Rätselraten und diversen Experimenten mit verschiedenen Einstellungen von ufw bin ich dann auch einer Webseite über den Hinweis gestoßen, dass Docker direkt einen Eintrag in die iptables vornimmt.

Und siehe da, ein

sudo iptables -L

hat das ganze tatsächlich bestätigt. Mit dem Starten des Containers hat Docker einen Eintrag in die iptables gesetzt, der den Port 8080 freigegeben hat.

Zum Glück kann man Docker dieses Verhalten recht einfach abgewöhnen. Dazu wird in der Datei /etc/default/docker in DOCKER_OPTS der Eintrag –iptables=false hinzugefügt (und sofern vorhanden das # am Anfang der Zeile entfernt).

Im Anschluss noch ein

sudo docker restart

und die Docker schreibt nicht mehr in die iptables. Ach ja, den neustart der Container nicht vergessen, sofern diese nicht automatisch starten!

Allerdings muss man nun daran denken, ggf. selbst die Ports in der ufw freizuschalten…

Published inDockerServer

Schreibe den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.