Abilita gli spazi dei nomi utente nel kernel Debian


28

Sto cercando di capire come abilitare la funzionalità degli spazi dei nomi utente nel mio kernel (penso CAP_SYS_USER_NS). Sto usando Debian Stretch, kernel 4.6.0-1-amd64.

La mia ipotesi è che esiste un modo per attivare gli spazi dei nomi utente e ricompilare il kernel. Dopo alcune ore di ricerca, posso trovare un post su come farlo in Ubuntu ( https://blog.tutum.co/2013/12/14/enabling-the-user-namespace-in-ubuntu-13-10-saucy/ ) ma non Debian (il problema potrebbe essere che sono sulla strada sbagliata e quindi le mie ricerche sono fuori base).

Il mio fine gioco è quello di abilitarli per stare al passo con Docker e sandbox di Google che apparentemente richiedono che gli spazi dei nomi degli utenti siano abilitati nel kernel (ad esempio, i miei contenitori Chrome non funzionano più).


Risposte:


38

Su Debian userns è compilato ma disabilitato di default. C'è una patch specifica per Debian nel kernel che aggiunge questa manopola sysctl: kernel.unprivileged_userns_clone

Quindi devi aggiungere una nuova voce /etc/sysctl.de impostarla su 1

Manualmente sarebbe: echo 1 > /proc/sys/kernel/unprivileged_userns_clone(solo per abilitarlo fino al riavvio)

per una soluzione permanente:

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

È possibile che esista un parametro equivalente per l'opzione di avvio, non lo so


1
Funziona ancora su Stretch, kernel 4.9.0-1-amd64 #1 SMP Debian 4.9.6-3 (2017-01-28) x86_64 GNU/Linux.
Reid

1
C'è un motivo per cui è disabilitato di default in Debian?
Melroy,

2
Storicamente la sicurezza dello spazio dei nomi degli utenti era incerta. ad esempio: lwn.net/Articles/673597 . Se un utente, come root nel proprio spazio dei nomi, può indurre il kernel a consentire un'operazione sul vero host, c'è l'escalation dei privilegi. I consueti spazi dei nomi non utente richiedono l'autorizzazione root esplicita (quindi admin) e quindi eseguono ciò che l'amministratore ha scelto: si tratta di un rischio noto. Nel kernel vanilla è stato aggiunto un meccanismo successivo: user.max_user_namespaces. Se impostato su 0 gli spazi dei nomi utente sono disabilitati. La patch Debian (in realtà da Ubuntu) è ancora in circolazione, anche se probabilmente obsoleta. Forse per motivi di compatibilità
AB

1
Il kernel 4.18.3 non è stato ancora rilasciato su Debian, quindi il kernel non è un kernel di test Debian. Puoi ignorare completamente questo parametro (fino a quando non installi un kernel reale da Debian). Guarda anche il mio commento precedente su user.max_user_namespaces
AB

3
O semplicemente: sudo sysctl -w kernel.unprivileged_userns_clone=1.
Skippy le Grand Gourou,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.