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è il suo uso è molto intuitivo.
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>
ad esempio
firejail --private firefox
Per avviare una appimage in sandbox digitare nel terminale:
firejail --appimage <nome_programma>
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-esr /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 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
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
Ovvero creare configurazioni per tutti i programmi installati in modo che vengano avviati tutti in sandbox digitando nel terminale:
sudo firecfg
Attenzione: questa modalità è altamente sconsigliata in quanto imposta configurazioni estremamente restrittive che rendono molto più difficoltoso l'uso di determinati programmi.
oppure
Selettivo
Ovvero creare configurazioni che rendano solo determinati programmi in sandbox se avviati dal normale Menù, questo si ottiene creando dei link simbolici digitando 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