Zum Inhalt springen

Docker/Userns-remap: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 103: Zeile 103:
==== Projekt ====
==== Projekt ====
==== Weblinks ====
==== Weblinks ====
<!--
<!--
{{DEFAULTSORT:new}}
{{DEFAULTSORT:new}}
{{DISPLAYTITLE:new}}
{{DISPLAYTITLE:new}}
-->
-->
[[Kategorie:Docker/Sicherheit]]
[[Kategorie:Docker/Sicherheit]]


</noinclude>
</noinclude>
= TMP =
== userns-remap ==
* Wenn Docker mit aktiviertem userns-remap betrieben wird, muss der Eigentümer der OpenProject-Volume-Verzeichnisse manuell gesetzt werden.
* Andernfalls starten die OpenProject-Dienste nicht.
; Ermittlung des UID/GID-Bereichs des dockremap-Benutzers
<syntaxhighlight lang="bash" highlight="1" line>
grep dockremap /etc/subuid /etc/subgid
</syntaxhighlight>
Ausgabe:
<syntaxhighlight lang="bash" highlight="" line>
dockremap:241074:65536
</syntaxhighlight>
* OpenProject verwendet innerhalb des Containers die UID 1000.
* Zur Berechnung der Ziel-UID muss lediglich 1000 zur dockremap-UID addiert werden.
* Daraus ergibt sich eine Ziel-UID von '''242074'''.
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo chown -R 242074:242074 /var/lib/openproject
</syntaxhighlight>
* Die Rechte sind nun korrekt festgelegt.

Version vom 11. Januar 2026, 14:22 Uhr

Docker/Userns-remap - Beschreibung

Beschreibung

Linux-Namespaces
  • bieten Isolation für laufende Prozesse und
  • beschränken deren Zugriff auf Systemressourcen
  • ohne dass der laufende Prozess diese Beschränkungen wahrnimmt
Rechteausweitung verhindern

Der beste Weg, um Angriffe zur Rechteausweitung aus einem Container heraus zu verhindern

  • besteht darin, die
  • Anwendungen Ihres Containers so zu konfigurieren
  • dass sie als nicht privilegierte Benutzer ausgeführt werden
Root-Benutzer innerhalb des Containers

Bei Containern, deren Prozesse als Root-Benutzer innerhalb des Containers ausgeführt werden müssen, können Sie diesen Benutzer einem Benutzer mit weniger Privilegien auf dem Docker-Host zuordnen.

Bereich von UIDs

Dem zugeordneten Benutzer wird ein Bereich von UIDs zugewiesen, die innerhalb des Namespace wie normale UIDs von 0 bis 65536 funktionieren, aber keine Privilegien auf dem Host-Rechner selbst haben.

Vorbereitung

Nach dem Aktivieren von userns-remap erstellt Docker einen Unterordner wie folgt:

/var/lib/docker/<uid>.<gid>/
  • Neue Entitäten (Bilder, Container, Volumes, Overlay-Ebenen) werden nun dort gespeichert.
  • Kataloge mit alten Entitäten werden nicht mehr verwendet.
  • docker ps, docker images, docker volume ls funktionieren nur mit dem aktuellen namepace
  • Der Eigentümer der Dateien in overlay2 und volumes ist nun nicht mehr root, sondern der remapped-Benutzer

Für neue Installationen

Images und Container lassen sich einfacher und schneller neu laden als migrieren.

Bei aktiviertem userns-remap
  • --pid=host und --network=host können nicht verwendet werden.
  • Einige externe Volume-/Speichertreiber verstehen möglicherweise remap nicht und funktionieren nicht mehr.
  • --privileged ohne --userns=host funktioniert nicht mehr wie zuvor, einige Funktionen sind eingeschränkt.
  • Es ist besser, userns-remap bei einer sauberen Docker-Installation zu aktivieren: Alte Image-Layer und Container werden ausgeblendet, da Docker einen separaten Ordner für den neuen Namespace in /var/lib/docker/ erstellt.

Migration zu neuen Namespaces

Alle erforderlichen Daten werden in den Ordner /var/lib/docker/<uid.guid> verschoben

Bereinigung

Nach der Migration nicht mehr benötigte Dateien löschen

systemctl stop docker
cd /var/lib/docker
rm -rf containers image network plugins swarm tmp trust volumes

Installation

1. Um den Modus userns-remap zu aktivieren, müssen Sie die Datei /etc/docker/daemon.js mit folgendem Inhalt erstellen:

{
  "userns-remap": "default"
}

Oder Sie können den Benutzer manuell eingeben:

{
  "userns-remap": "testuser"
}

Sie können den Namen, die UID oder user:group angeben

2. Nach dem Speichern der Datei den Dienst neu starten:

sudo systemctl restart docker

3. Überprüfung

docker info | grep -i userns
Userns mode: private


Anhang

Siehe auch



Dokumentation

Links

Projekt

Weblinks



TMP

userns-remap

  • Wenn Docker mit aktiviertem userns-remap betrieben wird, muss der Eigentümer der OpenProject-Volume-Verzeichnisse manuell gesetzt werden.
  • Andernfalls starten die OpenProject-Dienste nicht.
Ermittlung des UID/GID-Bereichs des dockremap-Benutzers
grep dockremap /etc/subuid /etc/subgid

Ausgabe:

dockremap:241074:65536
  • OpenProject verwendet innerhalb des Containers die UID 1000.
  • Zur Berechnung der Ziel-UID muss lediglich 1000 zur dockremap-UID addiert werden.
  • Daraus ergibt sich eine Ziel-UID von 242074.
sudo chown -R 242074:242074 /var/lib/openproject
  • Die Rechte sind nun korrekt festgelegt.