Quando inizio firejail
, vedo la mia directory home completa. Quando inizio firejail --whitelist=~/something
, vedo solo something
a casa mia. Ora vorrei limitare un maggiore accesso al sistema. Posso ad esempio aggiungere --blacklist=/media
e funziona come previsto.
Ma come fa il comportamento predefinito determinare che /home/OTHERUSER
e /home/*
tranne i file whitelist è nascosto? Non vedo una regola corrispondente in /etc/firejail/*
.
E sono consentite le sottodirectory? Ad esempio --blacklist=/media --whitelist=/media/data
, non funziona come previsto, anche quando la manpage lo dice, quella whitelist ha la precedenza su altre opzioni come --read-only
.
Queste regole sono codificate nel file binario? In caso contrario, quale regola fanno queste cose?
Un esempio di ciò che vorrei avere. Regole di base:
- Home vuoto, ad eccezione delle cose elencate nel profilo
- Lista nera
/media/data
- Consenti collegamento simbolico
~/apps ->/media/data/apps
in sola lettura. - Consenti
/media/data/apps
(se necessario) di sola lettura.
1, 2 funzionano, 3 funziona solo con 4 (probabilmente va bene), ma l'override dell'accesso in lettura per una sottodirectory di una directory proibita non funziona.
Sembra un po 'contro intuitivo che dovrebbe funzionare, ma a livello di filesystem mkdir -p foo/bar;chmod 111 foo;ls foo/bar/
(dove 111
significa che non c'è permesso di lettura (dir-list) su pippo, ma funziona solo il bit eseguibile (entrare nelle sottodirectory), anche quando ls foo/
fallisce.
Lo scenario esteso non consentirebbe tutto tranne una whitelist (profilo + / usr, / bin, / lib, ecc.). Un'altra cosa che non sembra possibile senza root (e quindi l'app stessa funziona come root) è quella di sostituire ie / etc / passwd con uno che non contenga utenti, che non dovrebbe essere conosciuto nella prigione. /etc
contiene molti dati leggibili, che dovrebbero essere nascosti da applicazioni non attendibili.
Ma forse lo scenario esteso giustificherebbe davvero un contenitore chroot + userspace-lxc completo.
noblacklist
un'opzione aggiuntiva , ma sembra non funzionare per tutte le cose che potresti voler fare. Aggiungo uno scenario completo alla domanda.
whitelist
- sostituisce soloread-only
, nonblacklist
.