Aktivieren Sie Benutzernamensräume im Debian-Kernel

28

Ich versuche herauszufinden, wie ich die Funktion für Benutzernamensräume in meinem Kernel aktivieren kann (ich denke, CAP_SYS_USER_NS). Ich verwende Debian Stretch, Kernel 4.6.0-1-amd64.

Ich gehe davon aus, dass es eine Möglichkeit gibt, Benutzernamensräume zu aktivieren und den Kernel neu zu kompilieren. Nach einigen Stunden der Suche kann ich in Ubuntu einen Beitrag dazu finden ( https://blog.tutum.co/2013/12/14/enabling-the-user-namespace-in-ubuntu-13-10-saucy/ ) aber nicht Debian (das Problem könnte sein, dass ich mich auf dem falschen Weg befinde und meine Suche daher fehlschlägt).

Mein Endspiel ist es, diese zu aktivieren, um mit Docker und Google Sandbox Schritt zu halten, für die anscheinend Benutzernamensräume im Kernel aktiviert sein müssen (z. B. funktionieren meine Chrome-Container nicht mehr).

Senrabdet
quelle
1
Siehe auch die gleiche Frage: unix.stackexchange.com/q/303213/4319
imz - Ivan Zakharyaschev

Antworten:

38

Unter Debian ist userns zwar kompiliert, aber standardmäßig deaktiviert. Es gibt einen Debian-spezifischen Patch für den Kernel, der diesen sysctl-Knopf hinzufügt: kernel.unprivileged_userns_clone

Sie müssen also einen neuen Eintrag hinzufügen /etc/sysctl.dund auf 1 setzen

Manuell wäre das: echo 1 > /proc/sys/kernel/unprivileged_userns_clone(nur um es bis zum Neustart zu aktivieren)

für eine dauerhafte Lösung:

echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/00-local-userns.conf
service procps restart

Es ist möglich, dass es einen äquivalenten Bootoptionsparameter gibt, ich weiß es einfach nicht

AB
quelle
1
Dies funktioniert immer noch auf Stretch, Kernel 4.9.0-1-amd64 #1 SMP Debian 4.9.6-3 (2017-01-28) x86_64 GNU/Linux.
Reid
1
Gibt es einen Grund, warum es in Debian standardmäßig deaktiviert ist?
Melroy
2
In der Vergangenheit war die Sicherheit des Benutzernamensraums ungewiss. zB: lwn.net/Articles/673597 . Wenn ein Benutzer als Root in seinem eigenen Namespace den Kernel dazu bringen kann, eine Operation auf dem realen Host zuzulassen, kommt es zu einer Privilegieneskalation. Übliche Namespaces, die keine Benutzer sind, erfordern eine explizite Root-Berechtigung (also Administratorberechtigung). Führen Sie das aus, was der Administrator ausgewählt hat: Dies ist ein bekanntes Risiko. Ein späterer Mechanismus wurde im Vanille-Kernel hinzugefügt: user.max_user_namespaces. Wenn auf 0 gesetzt, sind Benutzer-Namespaces deaktiviert. Der Debian-Patch (eigentlich von Ubuntu) ist immer noch da, auch wenn er wahrscheinlich veraltet ist. Möglicherweise aus Gründen der Kompatibilität
AB
1
Kernel 4.18.3 wurde noch nicht auf Debian veröffentlicht, daher ist Ihr Kernel kein Kernel für Debian-Tests. Sie können diesen Parameter vollständig ignorieren (bis Sie einen tatsächlichen Kernel von Debian installieren). Beachten Sie auch meinen vorherigen Kommentar zu user.max_user_namespaces
AB
3
Oder einfach: sudo sysctl -w kernel.unprivileged_userns_clone=1.
Skippy le Grand Gourou