Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 136 del 24/12/2021 17.47.15

Nascondi questo messaggio

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

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>

    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
    /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à è altamente 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 digitando 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 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

Profili personalizzati

Anche qui abbiamo 2 modi per farlo.

File profile

  1. Creare la cartella ~/.config/firejail.

  2. 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
  3. Aprire con un editor di testo i file *.profile appena copiati e aggiungere le impostazioni desiderate.

File local

Modalità consigliata

  1. Creare la cartella ~/.config/firejail.

  2. 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
  3. 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

  1. Le impostazioni scritte nei file *.profile che sono nella Home hanno priorità superiore rispetto a quelle scritte nei file *.profile in /etc/firejail.

  2. Le impostazioni scritte nei file *.local hanno priorità superiore a quelle scritte nei file *.profile.

Ulteriori risorse