2015-10-24 6 views
5

Ich verstehe, dass der Docker Daemon runs as root erfordert so bin ich dies gesagt, können einige Auswirkungen auf die Sicherheit verursachen, wie wenn der Behälter beeinträchtigt wurden, können Angreifer Änderungen an den Systemdateien des Hosts.Lauf Docker sicher

Welche Vorsichtsmaßnahmen kann ich Schaden im Falle eines Angriffs zu mildern?

Gibt es eine Praxis, die ich bewusst sein sollte, wenn der Daemon Docker läuft? Ich habe darüber nachgedacht, einen Vagabund zu haben, um einen VM hochzuziehen und stattdessen einen Hafenarbeiter in der VM laufen zu lassen.

+0

Das sieht nicht wirklich wie eine Programmierfrage für mich aus ... Vielleicht die [Unix/Linux SE] (http://linux.stackexchange.com) oder [security SE] (http: // security.stackexchange.com), oder wenn es eine Distro-spezifische SE für Ihre Linux-Distribution gibt (wenn es eine gibt, wie [this] (http://askubuntu.com)), wäre es besser. Sie können sich nicht sicher sein, wo Sie am ehesten eine gute Antwort erhalten. Lesen Sie also die Fragen, die mit Docker zusammenhängen (und löschen Sie diese Frage, wenn Sie anderswo nachfragen, vermeiden Sie Duplikate zwischen SE-Sites). – hyde

+0

@hyde verstanden. Kann ich die Frage stattdessen übertragen oder neu posten? – jkris

+2

Hier geht es definitiv um Programmierung. Die Art und Weise, wie das Programm eingerichtet und installiert wird, kann hier durch Vorsichtsmaßnahmen und Übung beeinflusst werden. Ich würde gegen den Schluss stimmen, wenn ich könnte. –

Antwort

4

Die Hauptquelle von Informationen über Docker Sicherheit der Praxis ist die Seite auf „Docker security“.

nur vertrauenswürdige Benutzer erlaubt sein sollte, Ihre Docker-Daemon zu steuern.
Dies ist eine direkte Folge einiger leistungsstarker Docker-Funktionen.

Insbesondere ermöglicht Docker Ihnen, ein Verzeichnis zwischen dem Docker-Host und einem Gastcontainer freizugeben; und Sie können dies tun, ohne die Zugriffsrechte des Containers zu beschränken.

Wenn Sie die REST-API verfügbar machen, sollten Sie dies über https tun.

Schließlich, wenn Sie Docker auf einem Server ausgeführt werden, empfiehlt es sich ausschließlich Docker im Server zu laufen und alle anderen Dienste in Containern von Docker

In Bezug auf die VM finden Sie unter "Are Docker containers really secure? gesteuert bewegen "

Das größte Problem ist alles in Linux ist nicht Namespaced. Momentan verwendet Docker fünf Namespaces, um die Prozessansicht des Systems zu ändern: Prozess, Netzwerk, Mount, Hostname, Shared Memory.

Während diese dem Benutzer ein gewisses Maß an Sicherheit geben, ist es keineswegs umfassend, wie KVM (Kernel-based Virtual Machine).
In einer KVM-Umgebung sprechen Prozesse in einer virtuellen Maschine nicht direkt mit dem Host-Kernel. Sie haben keinen Zugriff Dateisysteme auf Kernel wie /sys und /sys/fs, /proc/*.