Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Virtualizzazione/VirtManager"
Differenze tra le versioni 1 e 144 (in 143 versioni)
Versione 1 del 20/03/2010 22.42.10
Dimensione: 80
Autore: Carlin0
Commento:
Versione 144 del 03/01/2022 14.09.38
Dimensione: 7188
Autore: carlin0
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

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.

  1. Per avviare un programma in sandbox digitare nel terminale:

    firejail <nome_programma>

    Per esempio

    firejail firefox
    firejail telegram-desktop
  2. 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
  3. 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
  4. 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
  5. Per eliminare tutti i link simbolici creati a firejail digitare nel terminale:

    sudo firecfg --clean
  6. Per rimuovere solo un determinato link simbolico digitare nel terminale:

    sudo rm /usr/local/bin/nome_programma
  7. Per uccidere/killare un processo in sandbox digitare nel terminale:

    firejail --shutdown=PID
  8. 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:

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

  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 o rimuovere (va bene anche commentare la riga) 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 rispetto a quelle scritte nei file *.profile.

Ulteriori risorse


CategorySicurezza