Das Feature userns-remap in Docker ermöglicht es, Container in separaten Benutzer-Namensräumen laufen zu lassen. Dies bedeutet, dass der root-Benutzer innerhalb des Containers auf dem Host als unprivilegierter Benutzer gemappt wird. Damit erhöht sich die Sicherheit erheblich, da ein kompromittierter Container nicht automatisch root-Rechte auf dem Host erhält. Gleichzeitig wirkt sich die Konfiguration von UID/GID-Mapping direkt auf Dateisystemzugriffe und Volumes aus, was beim Einsatz in produktiven Umgebungen unbedingt beachtet werden muss.
1. Grundlagen von userns-remap
Der Benutzer-Namespace erlaubt es, die Benutzer- und Gruppen-IDs (UIDs/GIDs) innerhalb des Containers auf andere IDs auf dem Host zu remappen.
- Root im Container ≠ Root auf dem Host
- Standardmäßig werden Container ohne Remap als root auf dem Host ausgeführt
- userns-remap schützt vor Host-Kompromittierung durch Container
2. Aktivierung von userns-remap
Die Konfiguration erfolgt über die Docker-Daemon-Konfiguration in /etc/docker/daemon.json:
{
"userns-remap": "default"
}
Alternativ kann ein spezieller Benutzer verwendet werden:
{
"userns-remap": "dockeruser"
}
Nach Änderung der Konfiguration muss der Docker-Daemon neu gestartet werden:
systemctl restart docker
3. UID/GID Mapping im Detail
Docker legt beim Remap eine Host-UID/GID-Range an, die standardmäßig 65536 IDs umfasst. Das Mapping erfolgt sequentiell:
- Container-UID 0 → Host-UID 100000
- Container-UID 1 → Host-UID 100001
- …
Custom Mapping
In /etc/subuid und /etc/subgid kann eine andere Start-UID/GID und Range definiert werden:
dockeruser:200000:65536
4. Auswirkungen auf das Dateisystem
Volumes und Bind-Mounts werden auf dem Host entsprechend der gemappten UIDs/GIDs angezeigt. Das kann zu Permission-Problemen führen:
- Host-Dateien erscheinen als Eigentum von UID 100000 statt root
- Schreibrechte müssen ggf. angepasst werden
- Shared Volumes zwischen Rootless und Remapped Docker erfordern besondere Planung
Beispiel: Bind-Mount
docker run -v /host/data:/container/data alpine ls -l /container/data
Die Dateien werden mit der Host-UID der gemappten Range angezeigt.
5. Best Practices für userns-remap
- Volumes im Home-Verzeichnis des remapped-Benutzers anlegen
- Nur ausgewählte Container mit Remap betreiben, um Kompatibilitätsprobleme zu vermeiden
- Monitoring der UID/GID-Zuordnung
- Backup-Lösungen müssen die gemappten IDs berücksichtigen
6. Troubleshooting
Typische Probleme:
- Container kann Dateien auf Volume nicht schreiben → UID/GID prüfen
- Verwendung von sudo bei Volumes außerhalb des Home-Verzeichnisses
- Alte Images ohne Remap starten → Permission-Denied-Fehler
docker run --rm -v /host/data:/container/data alpine touch /container/data/testfile
7. Sicherheitsaspekte
Mit userns-remap wird ein kompromittierter Container auf die gemappte UID/GID begrenzt. Root im Container kann keine direkten root-Rechte auf dem Host erlangen. In Kombination mit Seccomp und AppArmor erhöht dies die Sicherheit signifikant.
- Root im Container → Host-UID 100000
- Capabilities können weiter eingeschränkt werden
- Read-only Filesystem zusätzlich nutzen
8. Limitierungen
Einige Docker-Funktionen können Probleme haben, wenn userns-remap aktiv ist:
- Privileged-Container teilweise inkompatibel
- Macvlan-Netzwerke erfordern Root
- Einige Third-Party Tools erwarten root auf dem Host
9. Fazit
userns-remap ist ein mächtiges Werkzeug für Container-Hardening. UID/GID-Mapping schützt den Host und erhöht die Sicherheit. Gleichzeitig müssen Administratoren die Auswirkungen auf Volumes, Berechtigungen und externe Tools beachten. Durch sorgfältige Planung und Testläufe lassen sich die Vorteile von userns-remap auch in produktiven Umgebungen nutzen, ohne den Workflow zu beeinträchtigen.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











