Guida verificata con Ubuntu: 20.04 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
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 il pacchetto firejail.
Esiste anche un'interfaccia grafica basata sulle librerie Qt, installabile tramite il pacchetto firetools, ma non viene qui trattata poiché non consente di sfruttare le molteplici possibilità che si hanno operando dal terminale, grazie a tutte le opzioni disponibili.
Funzionamento
Vengono presi come esempi le applicazioni Firefox e Telegram Desktop.
Avviare un programma in sandbox. Digitare nel terminale:
firejail <nome_programma>
Ad esempio:
firejail firefox firejail telegram-desktop
Avviare un programma in modalità privata, per inibire il programma a leggere i file della propria Home comprese le configurazioni dell'applicazione stessa:
firejail --private <nome_programma>
ad esempio:
firejail --private firefox firejail --private telegram-desktop
Listare i programmi che usano firejail:
firejail --list
Viene mostrato un risultato simile a questo:
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
Per un risultato più completo:
firejail --tree
Listare i collegamenti simbolici creati a firejail:
firecfg --list
Viene mostrato un risultato simile a questo:
/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 collegamenti simbolici creati a firejail, digitare:
sudo firecfg --clean
Per eliminare solo un collegamento simbolico definito, digitare:
sudo rm /usr/local/bin/nome_programma
Ad esempio:
sudo rm /usr/local/bin/hexchat
Per uccidere un processo in sandbox ,digitare:
firejail --shutdown=PID
Integrazione Desktop
Per configurare il menù in modo che le applicazioni vengano avviate in sandbox, esistono due opzioni.
Singola applicazione
Questa opzione consente di predefinire quali applicazioni avviare in sandbox
Digitare nel terminale:
sudo ln -s /usr/bin/firejail /usr/local/bin/nome_programma
Ad esempio:
sudo ln -s /usr/bin/firejail /usr/local/bin/firefox sudo ln -s /usr/bin/firejail /usr/local/bin/telegram-desktop
Tutte le applicazioni
Questa opzione permette di avviare tutte le applicazioni in sandbox.
Questa modalità può limitare il funzionamento delle applicazioni, poiché imposta configurazioni estremamente restrittive nell'uso delle applicazioni stesse.
Digitare nel terminale:
sudo firecfg
Profili personalizzati
Ci sono due modalità per personalizzare i profili.
File profile
Creare la cartella ~/.config/firejail.
Copiare i file *.profile da modificare dalla cartella /etc/firejail/ in ~/.config/firejail.
Ad esempio:
cp /etc/firejail/firefox.profile ~/.config/firejail cp /etc/firejail/telegram.profile ~/.config/firejail
Aprire con un editor di testo i file *.profile copiati e aggiungere o commentare le righe desiderate.
- Salvare e chiudere il file.
File local
Creare la cartella ~/.config/firejail.
Creare i file <nome_programma>.local
Ad esempio:
touch ~/.config/firejail/firefox.local touch ~/.config/firejail/telegram.local
Aprire con un editor di testo i file *.local creati.
- Scrivere le impostazioni desiderate.
- Salvare e chiudere il file.
Ad esempio per configurare firefox ad accedere a partizioni montate nel sistema o altri dispositivi, scrivere nel file firefox.local le seguenti righe:
whitelist /media ignore disable-mnt
Ad esempio per configurare telegram desktop, usato nell'ambiente grafico Xfce, a ignorare le configurazioni di altri ambienti grafici, scrivere nel file telegram.local le seguenti righe:
ignore dbus-user.talk org.kde.StatusNotifierWatcher ignore dbus-user.talk org.gnome.Mutter.IdleMonitor
Al termine riavviare le applicazioni.
Priorità dei file di configurazione
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.