Ubuntu: ufw, docker und nicht willentlich offene Ports

Ubuntu: ufw, docker und nicht willentlich offene Ports

Neulich auf einem Ubuntu Server: auf nicht freigegebenen Ports antworten Dienste.

Ein unverständliches und unschönes Szenario.

Trotz aktivem ufw, bei dem für Mail, SSH, http, https usw. ja auch zahlreiche Ports freigegeben sind, konnte ich auf Dienste zugreifen, die ich nicht freigegeben hatte.

Am Ende der Recherche, als ich das Problem bereits kannte, habe ich dann gemerkt, daß es Docker-Dienste sind. Ich habe eben nicht auf localhost gelauscht sondern auf * – und Docker hat dann praktischerweise direkt die iptables geändert und sich einen feuchten Kehricht um den ufw geschwert.

Oft möchte man das nicht 🙂 sondern hat einen zentralen Zugang, z. B. über Reverse Proxy Apache oder Nginx.

Das unschöne Verhalten läßt sich Docker abgewöhnen, indem man einen Parameter zur Docker Kommandozeile hinzufügt:

/etc/default/docker
--iptables=false

Aber.. jetzt kann man gar nicht mehr auf die Container zugreifen.

Besser ist es da, wenn man sich des (für mich schlechten) Verhaltens Dockers besinnt, und Ports eben nicht für die Welt öffnet, sondern so wie gewünscht, also z. B. direkt nur für Localhost:

docker run -p 127.0.0.1:81:80 myimage

und ähnlich dann in dockerfiles oder docker-compose.yml Dateien.

Benutzt man diese Form der Portfreigabe, sind auch nicht plötzlich interne Dienste wie mongo zugänglich – wobei man diese meistens ohnehin nicht per Port sondern per Link intern verschaltet. (Dann kann man mit dem per Link gesetzten Namen auf alle Dienste im verlinkten Container zugreifen – meistens ist dies ja nur einer, so wie mysql, mongo o. ä., z. B. mymongocontainer:27017.)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.