Questo è il comando firejail che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
Firejail - Programma sandbox per gli spazi dei nomi di Linux
SINOSSI
Avvia una sandbox:
firejail [OPZIONI] [programma e argomenti]
Modellazione del traffico di rete per una sandbox esistente:
firejail --bandwidth={ | } comando larghezza di banda
Monitoraggio:
firejail {--list | --netstats | --top | --albero}
Varie:
firejail {-? | --debug-caps | --debug-errnos | --debug-syscalls | --protocolli-debug
| --help | --versione}
DESCRIZIONE
Firejail è un programma sandbox SUID che riduce il rischio di violazioni della sicurezza di
limitare l'ambiente di esecuzione di applicazioni non attendibili utilizzando gli spazi dei nomi Linux,
seccomp-bpf e funzionalità di Linux. Permette a un processo e a tutti i suoi discendenti di avere
la propria visione privata delle risorse del kernel condivise a livello globale, come lo stack di rete,
tabella di processo, tabella di montaggio. Firejail può funzionare in un ambiente SELinux o AppArmor e
è integrato con i gruppi di controllo Linux.
Scritto in C praticamente senza dipendenze, il software funziona su qualsiasi computer Linux con
una versione del kernel 3.x o successiva. Può sandbox qualsiasi tipo di processo: server, grafica
applicazioni e persino sessioni di accesso utente.
Firejail consente all'utente di gestire la sicurezza delle applicazioni utilizzando i profili di sicurezza. Ogni
profile definisce un insieme di autorizzazioni per un'applicazione specifica o un gruppo di applicazioni.
Il software include profili di sicurezza per una serie di programmi Linux più comuni, come
come Mozilla Firefox, Chromium, VLC, Transmission ecc.
USO
Senza alcuna opzione, la sandbox consiste in un filesystem chroot costruito in un nuovo montaggio
spazio dei nomi e nuovi spazi dei nomi PID e UTS. È possibile aggiungere IPC, rete e spazi dei nomi utente
utilizzando le opzioni della riga di comando. Il filesystem Firejail predefinito è basato sull'host
filesystem con le directory principali montate in sola lettura. Soltanto / Home e / Tmp sono scrivibili.
All'avvio, Firejail cerca di trovare un profilo di sicurezza basato sul nome del
applicazione. Se non viene trovato un profilo appropriato, Firejail utilizzerà un profilo predefinito.
Il profilo predefinito è piuttosto restrittivo. Nel caso in cui l'applicazione non funzioni, utilizzare
--noprofile opzione per disabilitarlo. Per ulteriori informazioni, vedere SICUREZZA PROFILI
.
Se non viene specificato un argomento del programma, viene avviato Firejail / bin / bash conchiglia. Esempi:
$ firejail [OPZIONI] # inizia a / bin / bash conchiglia
$ firejail [OPZIONI] firefox # avvio di Mozilla Firefox
# sudo firejail [OPZIONI] /etc/init.d/nginx start
VERSIONI
-- Segnala la fine delle opzioni e disabilita l'ulteriore elaborazione delle opzioni.
--bandwidth=nome
Imposta i limiti di larghezza di banda per la sandbox identificata per nome, vedi TRAFFICO MODELLARE
.
--larghezza di banda=pid
Imposta i limiti di larghezza di banda per la sandbox identificata dal PID, vedi TRAFFICO MODELLARE pagina
per ulteriori dettagli.
--bind=nomedir1, nomedir2
Mount-bind dirname1 sopra dirname2. Questa opzione è disponibile solo durante l'esecuzione
la sandbox come root.
Esempio:
# firejail --bind=/config/www,/ Var / www
--bind=nomefile1,nomefile2
Montare-bind filename1 sopra filename2. Questa opzione è disponibile solo quando
in esecuzione come root.
Esempio:
# firejail --bind=/config/etc/passwd,/etc/passwd
--blacklist=dirname_o_filename
Directory o file della lista nera.
Esempio:
$ firejail --blacklist=/ sbin --lista nera=/ usr / sbin
$ firejail --blacklist=~/.mozilla
$ firejail "--blacklist=/home/username/My Virtual Machines"
-c Esegui il comando ed esci.
--caps Le funzionalità di Linux sono una funzionalità del kernel progettata per suddividere il privilegio di root in
una serie di privilegi distinti. Questi privilegi possono essere abilitati o disabilitati
indipendentemente, limitando così ciò che un processo in esecuzione come root può fare nel
.
Per impostazione predefinita, i programmi di root vengono eseguiti con tutte le funzionalità abilitate. L'opzione --caps disabilita
le seguenti capacità: CAP_SYS_MODULE, CAP_SYS_RAWIO, CAP_SYS_BOOT,
CAP_SYS_NICE, CAP_SYS_TTY_CONFIG, CAP_SYSLOG, CAP_MKNOD, CAP_SYS_ADMIN. Il filtro
viene applicato a tutti i processi avviati nella sandbox.
Esempio:
$ sudo firejail --caps "/etc/init.d/nginx start && sleep inf"
--caps.drop=tutto
Elimina tutte le funzionalità per i processi in esecuzione nella sandbox. Questa opzione è
consigliato per l'esecuzione di programmi GUI o qualsiasi altro programma che non richiede root
privilegi. È un'opzione indispensabile per eseguire il sandboxing di programmi non attendibili installati
da fonti non ufficiali, come giochi, programmi Java, ecc.
Esempio:
$ firejail --caps.drop=tutto warzone2100
--caps.drop=capacità,capacità,capacità
Definire un filtro per le funzionalità Linux di blacklist personalizzato.
Esempio:
$ firejail --caps.keep=net_broadcast,net_admin,net_raw
--caps.keep=capacità,capacità,capacità
Definire un filtro di funzionalità Linux whitelist personalizzato.
Esempio:
$ sudo firejail --caps.keep=chown,net_bind_service,setgid,\ setuid
/etc/init.d/nginx inizio
Una breve nota sulla combinazione delle opzioni --whitelist e --read-only. Autorizzato
le directory dovrebbero essere rese di sola lettura in modo indipendente. Facendo leggere una directory padre-
only, non renderà la whitelist di sola lettura. Esempio:
$ firejail --whitelist=~/lavoro --sola lettura=~/ --sola lettura=~/lavoro
--caps.print=nome
Stampa il filtro tappi per la sandbox identificata per nome.
Esempio:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --caps.print=miogioco
--caps.print=pid
Stampa il filtro dei tappi per una sandbox identificata da PID.
Esempio:
$ firejail --lista
3272:netblue:firejail --firefox privato
$ firejail --caps.print=3272
--cgroup=file-attività
Posiziona la sandbox nel gruppo di controllo specificato. task-file è il percorso completo di
file delle attività di cgroup.
Esempio:
# firejail --cgroup=/sys/fs/cgroup/g1/tasks
--chroot=nome dir
Chroot della sandbox in un filesystem di root. Se la sandbox viene avviata regolarmente
utente, seccomp predefinito e filtri di capacità sono abilitati.
Esempio:
$ firejail --chroot=/media/ubuntu warzone2100
--cpu=numero-cpu,numero-cpu,numero-cpu
Imposta l'affinità della CPU.
Esempio:
$ firejail --cpu=0,1 freno a mano
--csh Usa /bin/csh come shell utente predefinita.
Esempio:
$ firejail --csh
- debug
Stampa messaggi di debug.
Esempio:
$ firejail --debug firefox
--debug-blacklist
Eseguire il debug della lista nera.
Esempio:
$ firejail --debug-blacklist firefox
--debug-caps
Stampa tutte le funzionalità riconosciute nell'attuale build del software Firejail ed esci.
Esempio:
$ firejail --debug-caps
--debug-check-nomefile
Verifica del nome del file di debug.
Esempio:
$ firejail --debug-check-nomefile firefox
--debug-errnos
Stampa tutti i numeri di errore riconosciuti nell'attuale build del software Firejail ed esci.
Esempio:
$ firejail --debug-errnos
--protocolli-debug
Stampa tutti i protocolli riconosciuti nell'attuale build del software Firejail ed esci.
Esempio:
$ firejail --debug-protocolli
--debug-syscalls
Stampa tutte le chiamate di sistema riconosciute nell'attuale build del software Firejail ed esci.
Esempio:
$ firejail --debug-syscalls
--debug-whitelsts
Debug della whitelist.
Esempio:
$ firejail --debug-whitelists firefox
--defaultgw=indirizzo
Usa questo indirizzo come gateway predefinito nel nuovo spazio dei nomi di rete.
Esempio:
$ firejail --net=eth0 --defaultgw=10.10.20.1 firefox
--dns=indirizzo
Imposta un server DNS per la sandbox. È possibile definire fino a tre server DNS. Usa questo
opzione se non ti fidi della configurazione DNS sulla tua rete.
Esempio:
$ firejail --dns=8.8.8.8 --dns=8.8.4.4 firefox
--dns.print=nome
Stampa la configurazione DNS per una sandbox identificata per nome.
Esempio:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --dns.print=miogioco
--dns.print=pid
Stampa la configurazione DNS per una sandbox identificata da PID.
Esempio:
$ firejail --lista
3272:netblue:firejail --firefox privato
$ firejail --dns.print=3272
--env=nome=valore
Imposta la variabile di ambiente nella nuova sandbox.
Esempio:
$ firejail --env=LD_LIBRARY_PATH=/opt/test/lib
--vigore
Per impostazione predefinita, se Firejail viene avviato in una sandbox esistente, eseguirà il programma
in un guscio di bash. Questa opzione disabilita questo comportamento e tenta di avviarsi
Firejail nella sandbox esistente. Potrebbero esserci molte ragioni per cui fallisce,
ad esempio se la sandbox esistente disabilita le funzionalità di amministrazione, i binari SUID o
se esegue seccomp.
--fs.print=nome
Stampa il registro del filesystem per la sandbox identificata dal nome.
Esempio:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --fs.print=miogioco
--fs.print=pid
Stampa il registro del filesystem per una sandbox identificata da PID.
Esempio:
$ firejail --lista
3272:netblue:firejail --firefox privato
$ firejail --fs.print=3272
-?, --Aiuto
Le opzioni di stampa terminano l'uscita.
--hostname=nome
Imposta il nome host della sandbox.
Esempio:
$ firejail --hostname=officepc firefox
--ignora=comando
Ignora il comando nel file di profilo.
Esempio:
$ firejail --ignore=shell --ignore=seccomp firefox
--interfaccia=interfaccia
Sposta l'interfaccia in un nuovo spazio dei nomi di rete. Possono essere disponibili fino a quattro --opzioni di interfaccia
specificato.
Esempio:
$ firejail --interface=eth1 --interface=eth0.vlan100
--ip=indirizzo
Assegna gli indirizzi IP all'ultima interfaccia di rete definita da un'opzione --net. UN
il gateway predefinito è assegnato per impostazione predefinita.
Esempio:
$ firejail --net=eth0 --ip=10.10.20.56 firefox
--ip=nessuno
Nessun indirizzo IP e nessun gateway predefinito sono configurati per l'ultima interfaccia definita
da un'opzione --net. Utilizzare questa opzione nel caso in cui si intenda avviare un DHCP esterno
client nella sandbox.
Esempio:
$ firejail --net=eth0 --ip=nessuno
--ip6=indirizzo
Assegna gli indirizzi IPv6 all'ultima interfaccia di rete definita da un'opzione --net.
Esempio:
$ firejail --net=eth0 --ip6=2001:0db8:0:f101::1/64 firefox
--iprange=indirizzo,indirizzo
Assegna un indirizzo IP nell'intervallo fornito all'ultima interfaccia di rete definita da
un'opzione --net. Per impostazione predefinita viene assegnato un gateway predefinito.
Esempio:
$ firejail --net=eth0 --iprange=192.168.1.100,192.168.1.150
--ipc-spazio dei nomi
Abilita un nuovo spazio dei nomi IPC se la sandbox è stata avviata come utente normale. IPC
namespace è abilitato per impostazione predefinita per le sandbox avviate come root.
Esempio:
$ firejail --ipc-namespace firefox
--join=nome
Unisciti alla sandbox identificata per nome. Per impostazione predefinita a / bin / bash shell viene avviata dopo
unendo la sandbox. Se viene specificato un programma, il programma viene eseguito nella sandbox.
Se il comando --join viene emesso come utente normale, tutti i filtri di sicurezza sono configurati
per il nuovo processo lo stesso sono configurati nella sandbox. Se --join comando
viene emesso come root, i filtri di sicurezza, i cgroup e le configurazioni cpus non lo sono
applicato al processo che unisce la sandbox.
Esempio:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --join=miogioco
--join=pid
Unisciti alla sandbox identificata dall'ID processo. Per impostazione predefinita a / bin / bash shell è iniziata
dopo essere entrato nella sandbox. Se viene specificato un programma, il programma viene eseguito nel
sabbiera. Se il comando --join viene emesso come utente normale, tutti i filtri di sicurezza sono
configurati per il nuovo processo allo stesso modo in cui sono configurati nella sandbox. Se
Il comando --join viene emesso come root, i filtri di sicurezza, cgroup e cpus
le configurazioni non vengono applicate al processo che unisce la sandbox.
Esempio:
$ firejail --lista
3272:netblue:firejail --firefox privato
$ firejail --join=3272
--join-filesystem=nome
Unisciti allo spazio dei nomi di montaggio della sandbox identificata dal nome. Per impostazione predefinita a / bin / bash
shell viene avviata dopo essere entrati nella sandbox. Se viene specificato un programma, il programma
viene eseguito nella sandbox. Questo comando è disponibile solo per l'utente root. Sicurezza
filtri, cgroup e configurazioni di cpus non vengono applicati al processo che unisce il
sandbox.
--join-filesystem=pid
Unisciti allo spazio dei nomi di montaggio della sandbox identificato dall'ID processo. Per impostazione predefinita a
/ bin / bash shell viene avviata dopo essere entrati nella sandbox. Se viene specificato un programma,
il programma viene eseguito nella sandbox. Questo comando è disponibile solo per l'utente root.
I filtri di sicurezza, i cgroup e le configurazioni di cpus non vengono applicati al processo
unendo la sandbox.
--join-network=nome
Unisciti allo spazio dei nomi di rete della sandbox identificata per nome. Per impostazione predefinita a
/ bin / bash shell viene avviata dopo essere entrati nella sandbox. Se viene specificato un programma,
il programma viene eseguito nella sandbox. Questo comando è disponibile solo per l'utente root.
I filtri di sicurezza, i cgroup e le configurazioni di cpus non vengono applicati al processo
unendo la sandbox.
--join-network=pid
Unisciti allo spazio dei nomi di rete della sandbox identificata dall'ID processo. Per impostazione predefinita a
/ bin / bash shell viene avviata dopo essere entrati nella sandbox. Se viene specificato un programma,
il programma viene eseguito nella sandbox. Questo comando è disponibile solo per l'utente root.
I filtri di sicurezza, i cgroup e le configurazioni di cpus non vengono applicati al processo
unendo la sandbox.
--elenco Elenca tutte le sandbox, vedi MONITORAGGIO .
Esempio:
$ firejail --lista
7015:netblue: firefox firejail
7056:netblue:firejail --net=eth0 trasmissione-gtk
7064:netblue:firejail --noroot xterm
$
--mac=indirizzo
Assegna gli indirizzi MAC all'ultima interfaccia di rete definita da un'opzione --net.
Esempio:
$ firejail --net=eth0 --mac=00:11:22:33:44:55 firefox
--mtu=numero
Assegna un valore MTU all'ultima interfaccia di rete definita da un'opzione --net.
Esempio:
$ firejail --net=eth0 --mtu=1492
--name=nome
Imposta il nome della sandbox. Diverse opzioni, come --join e --shutdown, possono usare questo nome
per identificare una sandbox.
Esempio:
$ firejail --name=il mio browser firefox
--net=interfaccia_ponte
Abilita un nuovo spazio dei nomi di rete e collegalo a questa interfaccia bridge. Salvo che
specificato con l'opzione --ip e --defaultgw, un indirizzo IP e un gateway predefinito
verrà assegnato automaticamente alla sandbox. L'indirizzo IP viene verificato tramite ARP
prima dell'assegnazione. L'indirizzo configurato come gateway predefinito è il dispositivo bridge
Indirizzo IP. Possono essere definiti fino a quattro dispositivi --net bridge. ponte di miscelazione e
i dispositivi macvlan sono consentiti.
Esempio:
$ sudo brctl addbr br0
$ sudo ifconfig br0 10.10.20.1/24
$ sudo brctl addbr br1
$ sudo ifconfig br1 10.10.30.1/24
$ firejail --net=br0 --net=br1
--net=interfaccia_ethernet
Abilita un nuovo spazio dei nomi di rete e connettilo a questa interfaccia ethernet usando il
driver macvlan Linux standard. A meno che non sia specificato con l'opzione --ip e --defaultgw,
un indirizzo IP e un gateway predefinito verranno assegnati automaticamente alla sandbox.
L'indirizzo IP viene verificato utilizzando ARP prima dell'assegnazione. L'indirizzo configurato come
gateway predefinito è il gateway predefinito dell'host. Possono essere installati fino a quattro dispositivi --net
definito. È consentito combinare dispositivi bridge e macvlan.
Esempio:
$ firejail --net=eth0 --ip=192.168.1.80 --dns=8.8.8.8 firefox
--net=nessuno
Abilita un nuovo spazio dei nomi di rete non connesso. L'unica interfaccia disponibile in
new namespace è una nuova interfaccia di loopback (lo). Usa questa opzione per negare la rete
accesso a programmi che non hanno realmente bisogno dell'accesso alla rete.
Esempio:
$ firejail --net=nessuno vlc
--netfilter
Abilita un filtro di rete client predefinito nel nuovo spazio dei nomi di rete. Nuova rete
gli spazi dei nomi vengono creati utilizzando l'opzione --net. Se un nuovo spazio dei nomi di rete non lo è
creato, l'opzione --netfilter non fa nulla. Il filtro predefinito è il seguente:
*filtro
:PERDITA DI INGRESSO [0:0]
:CANCELLA IN AVANTI [0:0]
:USCITA ACCETTA [0:0]
-A INGRESSO -i lo -j ACCETTO
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCETTA
-A INPUT -p icmp --icmp-type destinazione-non raggiungibile -j ACCEPT
-A INPUT -p icmp --icmp-type time-exceeded -j ACCETTA
-A INPUT -p icmp --icmp-type echo-request -j ACCETTA
COMMETTERE
Esempio:
$ firejail --net=eth0 --netfilter firefox
--netfilter=nomefile
Abilita il filtro di rete specificato da nome file nel nuovo spazio dei nomi di rete. Il
il formato del file di filtro è il formato dei comandi iptables-save e iptable-restore.
I nuovi spazi dei nomi di rete vengono creati utilizzando l'opzione --net. Se un nuovo spazio dei nomi di rete
non viene creato, l'opzione --netfilter non fa nulla.
I seguenti filtri sono disponibili nella directory /etc/firejail:
webserver.net è un filtro del server web che consente l'accesso solo alle porte TCP 80 e
443. esempio:
$ firejail --netfilter=/etc/firejail/webserver.net --net=eth0 \
/etc/init.d/apache2 inizia a
nolocal.net è un filtro client che disabilita l'accesso alla rete locale. Esempio:
$ firejail --netfilter=/etc/firejail/nolocal.net \
--net=eth0firefox
--netfilter6=nomefile
Abilita il filtro di rete IPv6 specificato da nome file nel nuovo spazio dei nomi di rete.
Il formato del file del filtro è il formato di ip6tables-save e ip6table-restore
comandi. I nuovi spazi dei nomi di rete vengono creati utilizzando l'opzione --net. Se una nuova rete
namespaces non viene creato, l'opzione --netfilter6 non fa nulla.
--netstats
Monitora le statistiche dello spazio dei nomi di rete, vedi MONITORAGGIO .
Esempio:
$ firejail --netstats
Comando RX(KB/s) TX(KB/s) utente PID
1294 netblue 53.355 1.473 firejail --net=eth0 firefox
7383 netblue 9.045 0.112 firejail --net=eth0 trasmissione
--noblacklist=dirname_o_filename
Disabilita la lista nera per questa directory o file.
Esempio:
$ prigione antincendio
$nc dict.org 2628
Bash: /bin/nc: Permesso negato
$ uscita
$ firejail --noblacklist=/bin/nc
$nc dict.org 2628
220 pan.alephnull.com dictd 1.12.1/rf su Linux 3.14-1-amd64
--nessun gruppo
Disabilita i gruppi supplementari. Senza questa opzione, i gruppi supplementari sono abilitati
per l'utente che avvia la sandbox. Per gli utenti root i gruppi supplementari sono sempre
Disabilitato.
Esempio:
ID $
uid=1000(netblue) gid=1000(netblue)
groups=1000(netblue),24(cdrom),25(floppy),27(sudo),29(audio)
$ firejail --nogroups
Pid genitore 8704, pid figlio 8705
Processo figlio inizializzato
ID $
uid=1000(netblue) gid=1000(netblue) gruppi=1000(netblue)
$
--nessun profilo
Non utilizzare un profilo di sicurezza.
Esempio:
$ prigione antincendio
Lettura profilo /etc/firejail/generic.profile
Pid genitore 8553, pid figlio 8554
Processo figlio inizializzato
[...]
$ firejail --noprofile
Pid genitore 8553, pid figlio 8554
Processo figlio inizializzato
[...]
--nessuna radice
Installa uno spazio dei nomi utente con un singolo utente, l'utente corrente. l'utente root no
esistono nel nuovo spazio dei nomi. Questa opzione richiede un kernel Linux versione 3.8 o
più nuovo. L'opzione non è supportata per le configurazioni --chroot e --overlay, oppure
per i sandbox avviati come root.
Esempio:
$ firejail --noroot
Pid genitore 8553, pid figlio 8554
Processo figlio inizializzato
$ ping su google.com
ping: icmp open socket: operazione non consentita
$
--nessun suono
Disabilita il sistema audio.
Esempio:
$ firejail --nosound firefox
--output=file di registro
registrazione stdout e rotazione dei registri. Copia stdout nel file di registro e mantieni la dimensione del
file inferiore a 500 KB utilizzando la rotazione del registro. Cinque file con prefissi da .1 a .5 sono usati in
rotazione.
Esempio:
$ firejail --output=sandboxlog / bin / bash
[...]
$ ls -l sandboxlog*
-rw-r--r-- 1 netblue netblue 333890 2 giugno 07:48 sandboxlog
-rw-r--r-- 1 netblue netblue 511488 2 giu 07:48 sandboxlog.1
-rw-r--r-- 1 netblue netblue 511488 2 giu 07:48 sandboxlog.2
-rw-r--r-- 1 netblue netblue 511488 2 giu 07:48 sandboxlog.3
-rw-r--r-- 1 netblue netblue 511488 2 giu 07:48 sandboxlog.4
-rw-r--r-- 1 netblue netblue 511488 2 giu 07:48 sandboxlog.5
--sovrapposizione
Monta un overlay del filesystem sopra il filesystem corrente. Tutto il filesystem
le modifiche vanno nell'overlay. L'overlay è memorizzato in $HOME/.firejail
directory.
Affinché questa opzione funzioni, è necessario il supporto di OverlayFS nel kernel Linux. OverlayFS
è stato ufficialmente introdotto nella versione del kernel Linux 3.18
Esempio:
$ firejail --overlay firefox
--overlay-tmpfs
Monta un overlay del filesystem sopra il filesystem corrente. Tutto il filesystem
le modifiche vanno nell'overlay e vengono scartate quando la sandbox viene chiusa.
Affinché questa opzione funzioni, è necessario il supporto di OverlayFS nel kernel Linux. OverlayFS
è stato ufficialmente introdotto nella versione del kernel Linux 3.18
Esempio:
$ firejail --overlay-tmpfs firefox
--privato
Montare nuovo / Root e le directory /home/user nei filesystem temporanei. Tutto
le modifiche vengono eliminate alla chiusura della sandbox.
Esempio:
$ firejail --firefox privato
--private=cartella
Usa la directory come home dell'utente.
Esempio:
$ firejail --private=/home/netblue/firefox-home firefox
--private-bin=file,file
Creane uno nuovo /bidone in un filesystem temporaneo e copiare i programmi nell'elenco. Il
la stessa directory è anche montata su bind / sbin, / Usr / bin e /usr/sbin.
Esempio:
$ firejail --private-bin=bash,sed,ls,cat
Pid genitore 20841, pid figlio 20842
Processo figlio inizializzato
$ l /bidone
bash cat ls sed
--sviluppo-privato
Crea un nuovo / dev directory. Solo dri, null, full, zero, tty, pts, ptmx, random,
sono disponibili dispositivi urandom, log e shm.
Esempio:
$ firejail --private-dev
Pid genitore 9887, pid figlio 9888
Processo figlio inizializzato
$ l / dev
dri registro completo null ptmx punti casuale shm tty urandom zero
$
--private-etc=file,directory
Creane uno nuovo / Etc in un filesystem temporaneo e copia i file e le directory in
la lista. Tutte le modifiche vengono eliminate alla chiusura della sandbox.
Esempio:
$ firejail --private-etc=group,hostname,localtime,\
nsswitch.conf,passwd,resolv.conf
--privato-tmp
Monta un filesystem temporaneo vuoto sopra / Tmp directory.
Esempio:
$ firejail --private-tmp
--profile=nomefile
Carica un profilo di sicurezza personalizzato dal nome file. Per il nome del file usa un percorso assoluto o
un percorso relativo al percorso corrente. Per ulteriori informazioni, vedere SICUREZZA PROFILI
sezione sottostante.
Esempio:
$ firejail --profile=mioprofilo
--percorso-profilo=directory
Usa questa directory per cercare i file di profilo. Usa un percorso assoluto o un percorso nel
directory home che inizia con ~ /. Per ulteriori informazioni, vedere SICUREZZA PROFILI
sezione sottostante e TRASFERIMENTO PROFILO FILE in uomo 5 firejail-profilo.
Esempio:
$ firejail --percorso-profilo=~/mieiprofili
$ firejail --profile-path=/home/netblue/myprofiles
--protocollo=protocollo,protocollo,protocollo
Abilita filtro protocollo. Il filtro è basato su seccomp e controlla il primo
argomento alla chiamata di sistema socket. Valori riconosciuti: unix, inet, inet6, netlink e
pacchetto.
Esempio:
$ firejail --protocol=unix,inet,inet6 firefox
--protocol.print=nome
Stampa il filtro del protocollo per la sandbox identificata per nome.
Esempio:
$ firejail --name=mybrowser firefox &
[...]
$ firejail --print.print=miobrowser
unix, inet, inet6, netlink
--protocollo.print=pid
Stampa il filtro del protocollo per una sandbox identificata da PID.
Esempio:
$ firejail --lista
3272:netblue:firejail --firefox privato
$ firejail --protocol.print=3272
unix, inet, inet6, netlink
--silenzioso
Disattiva l'output di Firejail.
--read-only=dirname_o_filename
Imposta directory o file di sola lettura.
Esempio:
$ firejail --sola lettura=~/.mozilla Firefox
--rlimit-fsize=numero
Imposta la dimensione massima del file che può essere creato da un processo.
--rlimit-nofile=numero
Imposta il numero massimo di file che possono essere aperti da un processo.
--rlimit-nproc=numero
Imposta il numero massimo di processi che possono essere creati per l'ID utente reale del
processo di chiamata.
--rlimit-sigpending=numero
Imposta il numero massimo di segnali in sospeso per un processo.
--scansione Scansione ARP di tutte le reti dall'interno di uno spazio dei nomi di rete. Questo rende possibile
per rilevare i driver di dispositivo del kernel macvlan in esecuzione sull'host corrente.
Esempio:
$ firejail --net=eth0 --scan
--secondo
Abilita il filtro seccomp e inserisci nella lista nera le chiamate di sistema nell'elenco predefinito. Il predefinito
l'elenco è il seguente: mount, umount2, ptrace, kexec_load, kexec_file_load,
open_by_handle_at, init_module, finit_module, delete_module, iopl, ioperm, swapon,
swapoff, syslog, process_vm_readv, process_vm_writev, sysfs,_sysctl, adjtimex,
clock_adjtime, lookup_dcookie, perf_event_open, fanotify_init, kcmp, add_key,
request_key, keyctl, uselib, acct, modification_ldt, pivot_root, io_setup, io_destroy,
io_getevents, io_submit, io_cancel, remap_file_pages, mbind, get_mempolicy,
set_mempolicy, migrate_pages, move_pages, vmsplice, perf_event_open e chroot.
Esempio:
$ firejail --seccomp
--seccomp=chiamata di sistema,chiamata di sistema,chiamata di sistema
Abilita il filtro seccomp, inserisci nella lista nera l'elenco predefinito e le chiamate di sistema specificate dal
comando.
Esempio:
$ firejail --seccomp=utime, utimensat, utimes firefox
--seccomp.drop=chiamata di sistema,chiamata di sistema,chiamata di sistema
Abilita il filtro seccomp e inserisci nella lista nera le chiamate di sistema specificate dal comando.
Esempio:
$ firejail --seccomp.drop=utime, utimensat, utimes
--seccomp.keep=chiamata di sistema,chiamata di sistema,chiamata di sistema
Abilita il filtro seccomp e inserisci nella whitelist le syscall specificate dal comando.
Esempio:
$ firejail --shell=none --seccomp.keep=poll,select,[...]trasmissione-gtk
--seccomp. =syscall,syscall,syscall
Abilita il filtro seccomp e restituisce errno per le chiamate di sistema specificate dal comando.
Esempio: una shell Bash in cui l'eliminazione dei file è disabilitata
$ firejail --seccomp.eperm=unlinkat
Pid genitore 10662, pid figlio 10663
Processo figlio inizializzato
$ touch file di prova
$ rm file di prova
rm: impossibile rimuovere `testfile': Operazione non consentita
--seccomp.print=nome
Stampa il filtro seccomp per la sandbox avviata utilizzando l'opzione --name.
Esempio:
$ firejail --name=browser firefox &
$ firejail --seccomp.print=browser
Filtro SECCOMP:
VALIDATE_ARCHITECTURA
ESAMINA_SYSCALL
BLACKLIST 165 montaggio
LISTA NERA 166 umount2
LISTA NERA 101 traccia
LISTA NERA 246 kexec_load
LISTA NERA 304 open_by_handle_at
BLACKLIST 175 init_module
LISTA NERA 176 delete_module
LISTA NERA 172 ipl
LISTA NERA 173 ioperm
BLACKLIST 167 scambio
BLACKLIST 168 scambio
LISTA NERA 103 syslog
BLACKLIST 310 process_vm_readv
LISTA NERA 311 process_vm_writev
LISTA NERA 133 mknod
LISTA NERA 139 sysfs
LISTA NERA 156 _sysctl
LISTA NERA 159 adjtimex
BLACKLIST 305 clock_adjtime
LISTA NERA 212 lookup_dcookie
LISTA NERA 298 perf_event_open
BLACKLIST 300 fanotify_init
RETURN_CONSENTI
$
--seccomp.print=pid
Stampa il filtro seccomp per la sandbox specificata dall'ID processo. Usa l'opzione --list
per ottenere un elenco di tutte le sandbox attive.
Esempio:
$ firejail --lista
10786:netblue:firejail --name=browser firefox $ firejail --seccomp.print=10786
Filtro SECCOMP:
VALIDATE_ARCHITECTURA
ESAMINA_SYSCAL
BLACKLIST 165 montaggio
LISTA NERA 166 umount2
LISTA NERA 101 traccia
LISTA NERA 246 kexec_load
LISTA NERA 304 open_by_handle_at
BLACKLIST 175 init_module
LISTA NERA 176 delete_module
LISTA NERA 172 ipl
LISTA NERA 173 ioperm
BLACKLIST 167 scambio
BLACKLIST 168 scambio
LISTA NERA 103 syslog
BLACKLIST 310 process_vm_readv
LISTA NERA 311 process_vm_writev
LISTA NERA 133 mknod
LISTA NERA 139 sysfs
LISTA NERA 156 _sysctl
LISTA NERA 159 adjtimex
BLACKLIST 305 clock_adjtime
LISTA NERA 212 lookup_dcookie
LISTA NERA 298 perf_event_open
BLACKLIST 300 fanotify_init
RETURN_CONSENTI
$
--shell=nessuno
Esegui il programma direttamente, senza una shell utente.
Esempio:
$ firejail --shell=nessuno script.sh
--shell=programma
Imposta la shell utente predefinita. Usa questa shell per eseguire l'applicazione usando -c shell
opzione. Ad esempio "firejail --shell=/bin/trattino Firefox" avvierà Mozilla
Firefox come "/bin/trattino -c firefox". Per impostazione predefinita Bash shell (/ bin / bash) viene usato.
Opzioni come --zsh e --csh possono anche impostare la shell predefinita.
Esempio: $firejail --shell=/bin/trattino script.sh
--shutdown=nome
L'arresto della sandbox ha iniziato a utilizzare l'opzione --name.
Esempio:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --shutdown=miogioco
--shutdown=pid
Arresta la sandbox specificata dall'ID processo. Usa l'opzione --list per ottenere un elenco di
tutti i sandbox attivi.
Esempio:
$ firejail --lista
3272:netblue:firejail --firefox privato
$ firejail --shutdown=3272
--tmpfs=nome dir
Monta un filesystem tmpfs sulla directory dirname. Questa opzione è disponibile solo quando
eseguendo la sandbox come root.
Esempio:
# firejail --tmpfs=/ var
--superiore Monitora i sandbox più impegnativi per la CPU, vedi MONITORAGGIO .
Esempio:
$ prigione di fuoco --top
--traccia
Traccia le chiamate di sistema aperte, accedi e connetti.
Esempio:
$ firejail --trace wget -q www.debian.org
Pid genitore 11793, pid figlio 11794
Processo figlio inizializzato
1:bash:apri /dev/tty
1:wget:fopen64 /etc/wgetrc
1:wget:fopen / Etc / hosts
1:wget:presa AF_INET SOCK_DGRAM IPPROTO_IP
1:wget:connetti 8.8.8.8:53
1:wget:presa AF_INET SOCK_STREAM IPPROTO_IP
1:wget:connetti 140.211.15.34:80
1:wget:fopen64 indice.html.1
il genitore sta chiudendo, ciao...
--tracelog
Questa opzione abilita il controllo di file e directory nella lista nera. Viene inviato un messaggio
a syslog in caso di accesso al file o alla directory.
Esempio:
$ firejail --tracelog firefox
Messaggi di esempio:
$ sudo coda -f / Var / log / syslog
[...]
3 dic 11:43:25 debian firejail[70]: violazione della lista nera - sandbox 26370, exe
firefox, syscall open64, percorso / etc / shadow
3 dic 11:46:17 debian firejail[70]: violazione della lista nera - sandbox 26370, exe
firefox, syscall opendir, percorso /avvio
[...]
--albero Stampa un albero di tutti i processi in modalità sandbox, vedi MONITORAGGIO .
Esempio:
$ firejail --albero
11903:netblue: Iceweasel Firejail
11904:netblue:iceweasel
11957:netblue:/usr/lib/iceweasel/plugin-container
11969:netblue:firejail --net=eth0 trasmissione-gtk
11970:netblue:trasmissione-gtk
--user=nuovo-utente
Cambia utente prima di avviare la sandbox. Questo comando dovrebbe essere eseguito come root.
Esempio:
# firejail --user=www-data
--versione
Stampa la versione del programma ed esci.
Esempio:
$ firejail --versione
firejail versione 0.9.27
--whitelist=dirname_o_filename
Directory o file della whitelist. Questa funzione è implementata solo per la casa dell'utente, / dev,
/metà, /optare, / vare / Tmp directory.
Esempio:
$ firejail --whitelist=~/.mozilla --lista bianca=~ / Downloads
$ firejail --whitelist=/tmp/.X11-unix --whitelist=/dev/null
$ firejail "--whitelist=/home/username/My Virtual Machines"
--zsh Usa /usr/bin/zsh come shell utente predefinita.
Esempio:
$ firejail --zsh
TRAFFICO MODELLARE
La larghezza di banda di rete è una risorsa costosa condivisa tra tutte le sandbox in esecuzione su un sistema.
La modellazione del traffico consente all'utente di aumentare le prestazioni della rete controllando la quantità
di dati che entrano ed escono dalle sandbox.
Firejail implementa un semplice shaper limitatore di velocità basato sul comando Linux tc. il modellatore
funziona a livello di sandbox e può essere utilizzato solo per sandbox configurati con una nuova rete
spazi dei nomi.
Imposta limiti di velocità:
firejail --bandwidth={nome|pid} imposta il caricamento del download di rete
Limiti tariffari chiari:
firejail --bandwidth={nome|pid} cancella rete
Status:
firejail --bandwidth={nome|pid} stato
dove:
nome - nome sandbox
pid - pid sandbox
rete - interfaccia di rete utilizzata dall'opzione --net
download - velocità di download in KB/s (kilobyte al secondo)
upload - velocità di upload in KB/s (kilobyte al secondo)
Esempio:
$ firejail --name=mybrowser --net=eth0 firefox &
$ firejail --bandwidth=mybrowser imposta eth0 80 20
$ firejail --bandwidth=stato del mio browser
$ firejail --bandwidth=mybrowser cancella eth0
MONITORAGGIO
L'opzione --list stampa un elenco di tutte le sandbox. Il formato per ogni voce di processo è come
segue:
PID:UTENTE:Comando
L'opzione --tree stampa l'albero dei processi in esecuzione nella sandbox. Il formato per ciascuno
l'inserimento del processo è il seguente:
PID:UTENTE:Comando
L'opzione --top è simile al comando UNIX top, tuttavia si applica solo ai sandbox.
Opzione --netstats stampa le statistiche di rete per le sandbox attive che installano una nuova rete
spazi dei nomi.
Di seguito sono elencati i campi disponibili (colonne) in ordine alfabetico per --top e
--opzioni netstat:
Comando
Comando utilizzato per avviare la sandbox.
CPU% utilizzo CPU, la condivisione sandbox del tempo CPU trascorso dall'ultimo aggiornamento dello schermo
PID ID processo univoco per l'attività che controlla la sandbox.
Prcs Numero di processi in esecuzione nella sandbox, incluso il processo di controllo.
RES Resident Memory Size (KiB), memoria fisica sandbox non scambiata. È una somma di
i valori RES per tutti i processi in esecuzione nella sandbox.
RX(KB/s)
Velocità di ricezione della rete.
SHR Shared Memory Size (KiB), riflette la memoria condivisa con altri processi. È un
somma dei valori SHR per tutti i processi in esecuzione nella sandbox, incluso il
processo di controllo.
TX(KB/s)
Velocità di trasmissione in rete.
Tempo di attività Sandbox tempo di esecuzione in formato ore:minuti:secondi.
Utente Il proprietario della sandbox.
SICUREZZA PROFILI
Diverse opzioni della riga di comando possono essere passate al programma utilizzando i file di profilo. Firejail
sceglie il file del profilo come segue:
1. Se un file di profilo viene fornito dall'utente con l'opzione --profile, il file di profilo è
caricato. Esempio:
$ firejail --profile=/home/netblue/icecat.profile icecat
Profilo di lettura /home/netblue/icecat.profile
[...]
2. Se un file di profilo con lo stesso nome dell'applicazione è presente in
~/.config/firejail directory o in /etc/firejail, il profilo viene caricato.
~/.config/firejail ha la precedenza su /etc/firejail. Esempio:
$ icecat firejail
Nome del comando #icecat#
Trovato profilo icecat nella directory /home/netblue/.config/firejail
Profilo di lettura /home/netblue/.config/firejail/icecat.profile
[...]
3. Utilizzare il file default.profile se la sandbox viene avviata da un utente normale o server.profile
file se la sandbox è avviata da root. Firejail cerca questi file in
~/.config/firejail directory, seguita dalla directory /etc/firejail. Per disabilitare l'impostazione predefinita
caricamento del profilo, utilizzare l'opzione del comando --noprofile. Esempio:
$ prigione antincendio
Lettura profilo /etc/firejail/generic.profile
Pid genitore 8553, pid figlio 8554
Processo figlio inizializzato
[...]
$ firejail --noprofile
Pid genitore 8553, pid figlio 8554
Processo figlio inizializzato
[...]
Vedere man 5 firejail-profile per informazioni sulla sintassi del file di profilo.
LIMITATO SHELL
Per configurare una shell con restrizioni, sostituire / bin / bash con /usr/bin/firejail in /etc/password
file per ogni utente che deve essere limitato. In alternativa, puoi specificare
/usr/bin/firejail nel comando adduser:
adduser --shell /usr/bin/firejail nome utente
Ulteriori argomenti passati all'eseguibile firejail al momento del login sono dichiarati in
/etc/firejail/login.users.
ESEMPI
prigione antincendio
Inizia un regolare / bin / bash sessione in sandbox.
firefox firejail
Avvia Mozilla Firefox.
firejail --debug firefox
Debug della sandbox di Firefox.
firejail --privato
Inizia un / bin / bash sessione con una nuova home directory tmpfs.
firejail --net=br0 ip=10.10.20.10
Inizia un / bin / bash sessione in un nuovo spazio dei nomi di rete. La sessione è collegata a
la rete principale utilizzando il dispositivo bridge br0. Viene assegnato un indirizzo IP 10.10.20.10
alla sabbiera.
firejail --net=br0 --net=br1 --net=br2
Inizia un / bin / bash sessione in un nuovo spazio dei nomi di rete e connetterlo a br0, br1,
e dispositivi bridge host br2.
firejail --lista
Elenca tutti i processi in modalità sandbox.
Usa firejail online usando i servizi onworks.net
