Sto provando varie soluzioni di sandboxing su linux. Sono abituato a eseguire programmi non affidabili (ad esempio, un browser Web, un lettore di documenti PDF, ecc.) All'interno di una sandbox selinux, di cui sono abbastanza soddisfatto, ma c'è un problema: è supportato solo su rhel / fedora. Le altre distribuzioni di AFAIK in realtà non supportano selinux (anche quando dicono di farlo, non inviano politiche o documentazione utilizzabili) e anche quando viene fornita una politica quasi operativa, policycoreutils-sandbox non è disponibile (vedere debian).
Quale potrebbe essere una soluzione di sandboxing multi-distro? Sto cercando docker / subuser, che mi permette di avviare un container docker che esegue l'applicazione di interesse e dandogli accesso solo a parte del filesystem. Ad esempio, posso eseguire "chrome" in un contenitore finestra mobile e consentire solo l'accesso alla mia directory Download.
Sembra una soluzione conveniente poiché è indipendente dalla distribuzione e non richiede l'installazione del programma che sto pianificando di eseguire e delle sue dipendenze sull'host.
Tuttavia, non sono abbastanza sicuro di quanta sicurezza ci sia in "sicurezza dei subuser": link
Prima di tutto, la finestra mobile non supporta ancora gli spazi dei nomi utente. Ciò significa che ogni 'contenitore' viene eseguito come root sul mio host, anche se è isolato da lxc. questo significa anche che, se seguo i consigli del subuser, devo aggiungere il mio utente al gruppo docker. poiché dockerd viene eseguito come root, avere accesso ad esso significa che ho accesso completo all'intero filesystem host come root, posso eseguire contenitori con privilegi, ecc. Se questo non abilita l'escalation dei privilegi (anche se non dalle app "guest", Spero), non so cosa sia.
inoltre, diciamo che sto usando chrome in subuser. Ora ho un browser Chrome in esecuzione con la sandbox disabilitata (un livello in meno) all'interno di un'altra sandbox sotto l'utente root. È davvero un vantaggio semplicemente eseguire Chrome con la sua sandbox con un utente non privilegiato?
Non sarei in grado di limitare il suo accesso alla mia home directory, ma a parte questo, non vedo motivi per preferire subuser / docker.
quali altre distro soluzioni indipendenti sono rimaste?
Sto iniziando a pensare che la soluzione meno ingombrante sarebbe semplicemente utilizzare gli utenti standard di Unix. Un utente per applicazione, magari installa un'app e le relative dipendenze in ~ local, ~ bin, ecc.
quali gestori di pacchetti supportano l'installazione di un pacchetto, mantenendo un albero dei pacchetti, come utente all'interno della home directory di un utente? ci sono gestori di pacchetti di terze parti per Linux che supportano questo?
come condividerei file tra utenti? Sto pensando alla possibilità di eseguire un demone ftp non privilegiato su localhost, diciamo come utente "standard" o "storage" e utilizzare utenti virtuali per esportare parti di tale directory home (ad es. / Home / me / apps / webdownloads ) ad altri utenti, applicazioni e montarlo tramite fusibile.
È ragionevole?