In che modo Firejail crea la sua lista nera predefinita?


1

Quando inizio firejail, vedo la mia directory home completa. Quando inizio firejail --whitelist=~/something, vedo solo somethinga casa mia. Ora vorrei limitare un maggiore accesso al sistema. Posso ad esempio aggiungere --blacklist=/mediae funziona come previsto.

Ma come fa il comportamento predefinito determinare che /home/OTHERUSERe /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:

  1. Home vuoto, ad eccezione delle cose elencate nel profilo
  2. Lista nera /media/data
  3. Consenti collegamento simbolico ~/apps ->/media/data/appsin sola lettura.
  4. 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 111significa 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. /etccontiene molti dati leggibili, che dovrebbero essere nascosti da applicazioni non attendibili.

Ma forse lo scenario esteso giustificherebbe davvero un contenitore chroot + userspace-lxc completo.


1
Firejail codifica molte regole nel binario, è vero. Distingue / home / user, / tmp, /tmp/.X11-unix, / dev e molte altre directory speciali. A proposito whitelist- sostituisce solo read-only, non blacklist.
VasyaNovikov,

Ho visto, c'è noblacklistun'opzione aggiuntiva , ma sembra non funzionare per tutte le cose che potresti voler fare. Aggiungo uno scenario completo alla domanda.
allo
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.