Wie sichert ihr eure Docker Hosts? (Sicherheit, nicht Backup)

  • Hi zusammen,


    in den vergangenen Tagen war ich vermehrt im awesome-selfhosted unterwegs, dort ist mir bei vielen Projekten das Gleiche aufgefallen. Viele schreiben in die install.sh einfach die Standardbefehle zur Installation von Docker. Das kann doch Sicherheitstechnisch nicht der heilige Gral sein. Als Podman rootless User hat mich das Thema Containerhost-/Container-Sicherheit nicht wirklich über die Maßen beschäftigt. Abgesehen von Standardkrams wie nur Ports freigeben, die man benötigt. Jetzt kam allerdings der Fall, dass eine Anwendung zwingend und unumgänglich dockern will – meinetwegen auf anderem Host gerne. Daher meine Frage: Wie sichert ihr eure Docker Hosts ab? Dinge wie SSH Login mit Key etc. sind mir klar, ich meine das mit dem Fokus auf Docker, nicht allgemeine Serversicherheit.

  • Wie sichert ihr eure Docker Hosts ab?

    Docker deinstallieren. ^^


    Spaß beiseite.

    Einen wichtigen Aspekt finde ich, ist die Containersicherheit, insbesondere bei privilegierten Containern.


    Dazu gucke ich mir die Dockerfiles an, wie werden diese zusammengesetzt.

    Irgendein random Blob aus unbekannter Quelle? Auf gar keinen Fall.


    Welche Container Distribution in welcher Version wird verwendet.

    Wird im Container Build ein Paket Update durchgeführt.


    In welchem Zyklus wird das Container Image maintained, wird es überhaupt maintained.

    Welche CAPs benötigt der Container, was krallt er sich.


    Überlappen sich UIDs und GIDs oder muss ich ein anderes Mapping einstellen.


    Das sind so die Fragen, die mich bei Dockersicherheit quälen.

    Bei den Hosts selber: wer hat Zugriff auf den Docker Daemon und wie kann ich den absichern.

  • Einen wichtigen Aspekt finde ich, ist die Containersicherheit, insbesondere bei privilegierten Containern
    Dazu gucke ich mir die Dockerfiles an, wie werden diese zusammengesetzt

    Über welche Zahl sprechen wir hier, nur als grobe Einschätzung?
    Ich gucke mir die auch sporadisch an, für alle fehlt mir einfach die Zeit.


    ContainerD + NFtables:

    Das Kubernetes Setup ist so eingerichtet, dass es das sekundäre Interface nutzt und lauscht + Cloud VLAN. Nur der Ingress lauscht dann auf der Public IP und nimmt die Verbindungen an, sofern der Port in Nftables freigegeben ist. Aktuell sind das nur 5 Stück.


    Ich habe tatsächlich nur noch einen Host auf dem Docker selbst läuft und denn ich deswegen nicht venrünftig auf Nftables bekommen ( habe ). Dort darf Docker aber nicht die vorher gesetzten Regeln in Iptables modifizieren "iptables": false 
    Da dass sowieso eine Build Node ist und nichts anderes außer einem DNS Server dort läuft, kann ich das aber verschmerzen.