Dimensione: 80
Commento:
|
Dimensione: 7188
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
Inserisci una descrizione per Carlin0/lab ----- Pagina sperimentale di prova |
## page created by Carlin0 #format wiki #LANGUAGE it <<BR>> ### <<Indice(depth=2 align=right)>> <<Informazioni(rilasci="20.04")>> = Introduzione = '''Firejail''' è un programma [[https://it.wikipedia.org/wiki/Sandbox_(sicurezza_informatica)|sandbox]] SUID di sicurezza che riduce il rischio di falle nella sicurezza restringendo l'ambiente di esecuzione di applicazioni non fidate, usando namespace Linux e seccomp-bpf. Permette ad un processo e tutti i suoi discendenti di avere la propria vista privata delle risorse del [[https://it.wikipedia.org/wiki/Kernel|kernel]] globalmente condivise, come lo stack di rete, la tabella dei processi e la tabella dei montaggi. = Installazione = [[AmministrazioneSistema/InstallareProgrammi|Installare]] i pacchetti [[apt://firejail|firejail]] e [[apt://firejail-profiles|firejail-profiles]]. {{{#!wiki note Esiste anche un frontend basato su Qt che si chiama [[apt://firetools|firetools]] ma non lo tratteremo in questa pagina poichè nonostante il suo uso sia molto semplice e intuitivo, non consente di sfruttare le molteplici possibilità che si hanno agendo da riga di comando grazie a tutte le opzioni disponibili. }}} = Funzionamento = {{{#!wiki note Verranno fatti alcuni esempio usando le applicazioni '''Firefox''' e '''Telegram Desktop''' che sono di uso molto comune. }}} 0. Per avviare un programma in sandbox digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ firejail <nome_programma> }}}Per esempio{{{ firejail firefox firejail telegram-desktop }}} 0. Per avviare un programma in modalità '''''modalità privata''''' che prevede che il programma non legga nessun file nella propria '''Home''' comprese le sue configurazioni già salvate digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ firejail --private <nome_programma> }}}Per esempio{{{ firejail --private firefox }}} 0. Per vedere quali programmi stanno usando '''firejail''' digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ firejail --list }}}riceveremo una risposta simile a questa{{{ 1734:carlo::/usr/bin/firejail /usr/bin/firefox 2456:carlo::/usr/bin/firejail /usr/bin/liferea 2531:carlo::/usr/bin/firejail /usr/bin/telegram-desktop - }}}in alternativa{{{ firejail --top }}}o per un output più completo{{{ firejail --tree }}} 0. Per elencare i link simbolici creati a '''firejail''' digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ firecfg --list }}}riceveremo una risposta simile a questa{{{ /usr/local/bin/thunderbird /usr/local/bin/keepassxc /usr/local/bin/firefox /usr/local/bin/liferea /usr/local/bin/hexchat /usr/local/bin/google-chrome-stable /usr/local/bin/telegram-desktop }}} 0. Per eliminare tutti i link simbolici creati a '''firejail''' digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ sudo firecfg --clean }}} 0. Per rimuovere solo un determinato link simbolico digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ sudo rm /usr/local/bin/nome_programma }}} 0. Per uccidere/killare un processo in sandbox digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ firejail --shutdown=PID }}} 0. Per ottenere un elenco completo delle opzioni disponibili da '''firejail''' leggere i relativi '''man''' digitando nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ man firejail man firecfg }}} = Integrazione Desktop = Ovvero, creare delle impostazioni che facciano in modo che avviando un programma normalmente dal '''Menù''' esso venga avviato in sandbox. {{{#!wiki note A tale proposito ci sono 2 modi per farlo: }}} == Generalizzato == {{{#!wiki important Attenzione: questa modalità è __fortemente sconsigliata__ in quanto imposta configurazioni estremamente restrittive che rendono molto più difficoltoso l'uso di determinati programmi. }}} Ovvero creare configurazioni per '''tutti i programmi installati''' in modo che vengano avviati tutti in sandbox: * digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ sudo firecfg }}} '''''oppure''''' == Selettivo == {{{#!wiki tip Modalità consigliata }}} Ovvero creare configurazioni che rendano '''solo determinati programmi''' in sandbox se avviati dal normale '''Menù''', questo si ottiene creando dei link simbolici: * digitare nel [[AmministrazioneSistema/Terminale|terminale]]: {{{ sudo ln -s /usr/bin/firejail /usr/local/bin/nome_programma }}}Per esempio {{{ sudo ln -s /usr/bin/firejail /usr/local/bin/firefox sudo ln -s /usr/bin/firejail /usr/local/bin/telegram-desktop }}} = Profili personalizzati = {{{#!wiki note Anche qui abbiamo 2 modi per farlo. }}} == File profile == 0. [[https://wiki.ubuntu-it.org/AmministrazioneSistema/ComandiBase#mkdir|Creare]] la cartella `~/.config/firejail`. 0. [[https://wiki.ubuntu-it.org/AmministrazioneSistema/ComandiBase#cp|Copiare]] i file `*.profile` che desideriamo modificare dalla cartella `/etc/firejail/` a quella appena creata. Per esempio: {{{ cp /etc/firejail/firefox.profile ~/.config/firejail cp /etc/firejail/telegram.profile ~/.config/firejail }}} 0. Aprire con un [[https://wiki.ubuntu-it.org/Ufficio/EditorDiTesto|editor di testo]] i file `*.profile` appena copiati e aggiungere o rimuovere (va bene anche commentare la riga) le impostazioni desiderate. == File local == {{{#!wiki tip Modalità consigliata }}} 0. [[https://wiki.ubuntu-it.org/AmministrazioneSistema/ComandiBase#mkdir|Creare]] la cartella `~/.config/firejail`. 0. [[https://wiki.ubuntu-it.org/AmministrazioneSistema/ComandiBase#touch|Creare]] i file `*.local` di cui ci interessa aggiungere parametri nella cartella che è stata appena creata. Per esempio: {{{ touch ~/.config/firejail/firefox.local touch ~/.config/firejail/telegram.local }}} 0. Aprire con un [[https://wiki.ubuntu-it.org/Ufficio/EditorDiTesto|editor di testo]] i file `*.local` e aggiungere le impostazioni desiderate. Per esempio se vogliamo che '''firefox''' possa accedere anche a eventuali [[Hardware/DispositiviPartizioni/Partizioni|partizioni]] montate nel sistema o altri dispositivi, scrivere nel file `firefox.local` le seguenti righe: {{{ whitelist /media ignore disable-mnt }}} Oppure se usiamo come [[AmbienteGrafico|ambiente grafico]] [[AmbienteGrafico/Xfce|Xfce]] scrivere nel file `telegram.local` le seguenti righe: {{{ ignore dbus-user.talk org.kde.StatusNotifierWatcher ignore dbus-user.talk org.gnome.Mutter.IdleMonitor }}} == Priorità dei file == 0. Le impostazioni scritte nei file `*.profile` che sono nella '''Home''' hanno priorità superiore rispetto a quelle scritte nei file `*.profile` in `/etc/firejail`. 0. Le impostazioni scritte nei file `*.local` hanno priorità superiore rispetto a quelle scritte nei file `*.profile`. = Ulteriori risorse = * [[https://firejail.wordpress.com|Sito ufficiale del progetto]] * [[https://github.com/netblue30/firejail|Repository ufficiale dello sviluppo]] * [[https://github.com/netblue30/firejail/discussions|Forum di supporto (in lingua inglese)]] ---- CategorySicurezza |
Guida verificata con Ubuntu: 20.04
Introduzione
Firejail è un programma sandbox SUID di sicurezza che riduce il rischio di falle nella sicurezza restringendo l'ambiente di esecuzione di applicazioni non fidate, usando namespace Linux e seccomp-bpf.
Permette ad un processo e tutti i suoi discendenti di avere la propria vista privata delle risorse del kernel globalmente condivise, come lo stack di rete, la tabella dei processi e la tabella dei montaggi.
Installazione
Installare i pacchetti firejail e firejail-profiles.
Esiste anche un frontend basato su Qt che si chiama firetools ma non lo tratteremo in questa pagina poichè nonostante il suo uso sia molto semplice e intuitivo, non consente di sfruttare le molteplici possibilità che si hanno agendo da riga di comando grazie a tutte le opzioni disponibili.
Funzionamento
Verranno fatti alcuni esempio usando le applicazioni Firefox e Telegram Desktop che sono di uso molto comune.
Per avviare un programma in sandbox digitare nel terminale:
firejail <nome_programma>
Per esempio
firejail firefox firejail telegram-desktop
Per avviare un programma in modalità modalità privata che prevede che il programma non legga nessun file nella propria Home comprese le sue configurazioni già salvate digitare nel terminale:
firejail --private <nome_programma>
Per esempio
firejail --private firefox
Per vedere quali programmi stanno usando firejail digitare nel terminale:
firejail --list
riceveremo una risposta simile a questa
1734:carlo::/usr/bin/firejail /usr/bin/firefox 2456:carlo::/usr/bin/firejail /usr/bin/liferea 2531:carlo::/usr/bin/firejail /usr/bin/telegram-desktop -
in alternativa
firejail --top
o per un output più completo
firejail --tree
Per elencare i link simbolici creati a firejail digitare nel terminale:
firecfg --list
riceveremo una risposta simile a questa
/usr/local/bin/thunderbird /usr/local/bin/keepassxc /usr/local/bin/firefox /usr/local/bin/liferea /usr/local/bin/hexchat /usr/local/bin/google-chrome-stable /usr/local/bin/telegram-desktop
Per eliminare tutti i link simbolici creati a firejail digitare nel terminale:
sudo firecfg --clean
Per rimuovere solo un determinato link simbolico digitare nel terminale:
sudo rm /usr/local/bin/nome_programma
Per uccidere/killare un processo in sandbox digitare nel terminale:
firejail --shutdown=PID
Per ottenere un elenco completo delle opzioni disponibili da firejail leggere i relativi man digitando nel terminale:
man firejail man firecfg
Integrazione Desktop
Ovvero, creare delle impostazioni che facciano in modo che avviando un programma normalmente dal Menù esso venga avviato in sandbox.
A tale proposito ci sono 2 modi per farlo:
Generalizzato
Attenzione: questa modalità è fortemente sconsigliata in quanto imposta configurazioni estremamente restrittive che rendono molto più difficoltoso l'uso di determinati programmi.
Ovvero creare configurazioni per tutti i programmi installati in modo che vengano avviati tutti in sandbox:
digitare nel terminale:
sudo firecfg
oppure
Selettivo
Modalità consigliata
Ovvero creare configurazioni che rendano solo determinati programmi in sandbox se avviati dal normale Menù, questo si ottiene creando dei link simbolici:
digitare nel terminale:
sudo ln -s /usr/bin/firejail /usr/local/bin/nome_programma
Per esempio
sudo ln -s /usr/bin/firejail /usr/local/bin/firefox sudo ln -s /usr/bin/firejail /usr/local/bin/telegram-desktop
Profili personalizzati
Anche qui abbiamo 2 modi per farlo.
File profile
Creare la cartella ~/.config/firejail.
Copiare i file *.profile che desideriamo modificare dalla cartella /etc/firejail/ a quella appena creata.
Per esempio:
cp /etc/firejail/firefox.profile ~/.config/firejail cp /etc/firejail/telegram.profile ~/.config/firejail
Aprire con un editor di testo i file *.profile appena copiati e aggiungere o rimuovere (va bene anche commentare la riga) le impostazioni desiderate.
File local
Modalità consigliata
Creare la cartella ~/.config/firejail.
Creare i file *.local di cui ci interessa aggiungere parametri nella cartella che è stata appena creata.
Per esempio:
touch ~/.config/firejail/firefox.local touch ~/.config/firejail/telegram.local
Aprire con un editor di testo i file *.local e aggiungere le impostazioni desiderate.
Per esempio se vogliamo che firefox possa accedere anche a eventuali partizioni montate nel sistema o altri dispositivi, scrivere nel file firefox.local le seguenti righe:
whitelist /media ignore disable-mnt
Oppure se usiamo come ambiente grafico Xfce scrivere nel file telegram.local le seguenti righe:
ignore dbus-user.talk org.kde.StatusNotifierWatcher ignore dbus-user.talk org.gnome.Mutter.IdleMonitor
Priorità dei file
Le impostazioni scritte nei file *.profile che sono nella Home hanno priorità superiore rispetto a quelle scritte nei file *.profile in /etc/firejail.
Le impostazioni scritte nei file *.local hanno priorità superiore rispetto a quelle scritte nei file *.profile.