Este es el comando firejail que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
Firejail - programa sandbox de espacios de nombres de Linux
SINOPSIS
Inicie una caja de arena:
firejail [OPCIONES] [programa y argumentos]
Configuración del tráfico de red para una zona de pruebas existente:
firejail --bandwidth = { | } comando de ancho de banda
Monitoreo:
firejail {--list | --netstats | --top | --árbol}
Varios:
firejail {-? | --debug-caps | --debug-errnos | --debug-syscalls | --protocolos de depuración
| --ayuda | --versión}
DESCRIPCIÓN
Firejail es un programa de zona de pruebas SUID que reduce el riesgo de infracciones de seguridad al
restringir el entorno de ejecución de aplicaciones que no son de confianza mediante espacios de nombres de Linux,
seccomp-bpf y capacidades de Linux. Permite que un proceso y todos sus descendientes tengan
su propia vista privada de los recursos del kernel compartidos globalmente, como la pila de red,
mesa de proceso, mesa de montaje. Firejail puede funcionar en un entorno SELinux o AppArmor, y
está integrado con los grupos de control de Linux.
Escrito en C prácticamente sin dependencias, el software se ejecuta en cualquier computadora Linux con
una versión del kernel 3.x más reciente. Puede hacer sandbox en cualquier tipo de procesos: servidores, gráficos
aplicaciones e incluso sesiones de inicio de sesión de usuario.
Firejail permite al usuario administrar la seguridad de la aplicación utilizando perfiles de seguridad. Cada
perfil define un conjunto de permisos para una aplicación o grupo de aplicaciones específico.
El software incluye perfiles de seguridad para varios programas Linux más comunes, como
como Mozilla Firefox, Chromium, VLC, Transmission, etc.
USO
Sin ninguna opción, la caja de arena consiste en una compilación del sistema de archivos chroot en un nuevo montaje
espacio de nombres y nuevos espacios de nombres PID y UTS. Se pueden agregar IPC, espacios de nombres de red y de usuario
usando las opciones de la línea de comando. El sistema de archivos predeterminado de Firejail se basa en el host
sistema de archivos con los directorios principales montados como de solo lectura. Solo / home y / Tmp se pueden escribir.
Cuando se inicia, Firejail intenta encontrar un perfil de seguridad basado en el nombre del
solicitud. Si no se encuentra un perfil apropiado, Firejail utilizará un perfil predeterminado.
El perfil predeterminado es bastante restrictivo. En caso de que la aplicación no funcione, use
--noprofile opción para deshabilitarlo. Para obtener más información, consulte SEGURIDAD PERFILES
.
Si no se especifica un argumento de programa, Firejail se inicia / bin / bash cáscara. Ejemplos:
$ firejail [OPCIONES] # iniciando una / bin / bash shell
$ firejail [OPCIONES] firefox # iniciando Mozilla Firefox
# sudo firejail [OPCIONES] /etc/init.d/nginx start
OPCIONES
-- Señala el final de las opciones y deshabilita el procesamiento de opciones adicional.
--bandwidth = nombre
Establezca límites de ancho de banda para la zona de pruebas identificada por su nombre, consulte TRÁFICO FORMACIÓN
Sección para más detalles.
- ancho de banda = pid
Establezca límites de ancho de banda para la zona de pruebas identificada por PID, consulte TRÁFICO FORMACIÓN .
para más detalles.
--bind = dirname1, dirname2
Montar-enlazar dirname1 encima de dirname2. Esta opción solo está disponible cuando se ejecuta
la caja de arena como raíz.
Ejemplo:
# firejail --bind = / config / www,/ Var / www
--bind = nombre de archivo1, nombre de archivo2
Montar-vincular filename1 encima de filename2. Esta opción solo está disponible cuando
corriendo como root.
Ejemplo:
# firejail --bind = / config / etc / passwd,/ Etc / passwd
--blacklist = dirname_or_filename
Directorio o archivo de lista negra.
Ejemplo:
$ firejail --blacklist =/ sbin --blacklist =/ usr / sbin
$ firejail --blacklist =~ / .mozilla
$ firejail "--blacklist = / home / username / My Virtual Machines"
-c Ejecute el comando y salga.
--tapas Las capacidades de Linux es una característica del kernel diseñada para dividir el privilegio de root en
un conjunto de privilegios distintos. Estos privilegios se pueden habilitar o deshabilitar
independientemente, lo que restringe lo que un proceso que se ejecuta como root puede hacer en el
.
De forma predeterminada, los programas raíz se ejecutan con todas las capacidades habilitadas. La opción --caps desactiva
las siguientes capacidades: CAP_SYS_MODULE, CAP_SYS_RAWIO, CAP_SYS_BOOT,
CAP_SYS_NICE, CAP_SYS_TTY_CONFIG, CAP_SYSLOG, CAP_MKNOD, CAP_SYS_ADMIN. El filtro
se aplica a todos los procesos iniciados en la zona de pruebas.
Ejemplo:
$ sudo firejail --caps "/etc/init.d/nginx start && sleep inf"
--caps.drop = todo
Elimine todas las capacidades de los procesos que se ejecutan en la zona de pruebas. Esta opcion es
recomendado para ejecutar programas GUI o cualquier otro programa que no requiera root
privilegios. Es una opción imprescindible para los programas instalados que no son de confianza.
de fuentes no oficiales, como juegos, programas Java, etc.
Ejemplo:
$ firejail --caps.drop = todos warzone2100
--caps.drop = capacidad, capacidad, capacidad
Defina un filtro personalizado de capacidades de Linux de lista negra.
Ejemplo:
$ firejail --caps.keep = net_broadcast, net_admin, net_raw
--caps.keep = capacidad, capacidad, capacidad
Defina un filtro de capacidades de Linux de lista blanca personalizado.
Ejemplo:
$ sudo firejail --caps.keep = chown, net_bind_service, setgid, \ setuid
Inicio de /etc/init.d/nginx
Una breve nota sobre la combinación de las opciones de lista blanca y de solo lectura. Lista blanca
los directorios deben ser de solo lectura de forma independiente. Hacer que un directorio principal sea leído
solo, no hará que la lista blanca sea de solo lectura. Ejemplo:
$ firejail --whitelist =~ / trabajo --read-only = ~ / --read-only =~ / trabajo
--caps.print = nombre
Imprima el filtro de mayúsculas para la caja de arena identificada por su nombre.
Ejemplo:
$ firejail --name = mygame --caps.drop = all warzone2100 &
[...]
$ firejail --caps.print = mygame
--caps.print = pid
Imprima el filtro de mayúsculas para una caja de arena identificada por PID.
Ejemplo:
$ firejail - lista
3272: netblue: firejail - firefox privado
$ firejail --caps.print = 3272
--cgroup = archivo de tareas
Coloque la caja de arena en el grupo de control especificado. archivo de tareas es la ruta completa de
archivo de tareas cgroup.
Ejemplo:
# firejail --cgroup = / sys / fs / cgroup / g1 / tasks
--chroot = dirname
Cree un chroot en el sandbox en un sistema de archivos raíz. Si la caja de arena se inicia como un
usuario, seccomp predeterminado y filtros de capacidades están habilitados.
Ejemplo:
$ firejail --chroot = / media / ubuntu warzone2100
--cpu = número de cpu, número de cpu, número de cpu
Establece la afinidad de la CPU.
Ejemplo:
$ firejail --cpu = 0,1 freno de mano
--csh Utilice / bin / csh como shell de usuario predeterminado.
Ejemplo:
$ cárcel de fuego --csh
--depurar
Imprime mensajes de depuración.
Ejemplo:
$ firejail - depuración firefox
--debug-listas negras
Depurar listas negras.
Ejemplo:
$ firejail --debug-listas negras firefox
--caps-depuración
Imprima todas las capacidades reconocidas en la compilación y salida del software actual de Firejail.
Ejemplo:
$ cárcel de fuego --debug-caps
--debug-check-nombre de archivo
Comprobación de nombre de archivo de depuración.
Ejemplo:
$ firejail --debug-check-filename firefox
--debug-errnos
Imprima todos los números de error reconocidos en la versión actual del software Firejail y salga.
Ejemplo:
$ firejail --debug-errnos
--protocolos de depuración
Imprima todos los protocolos reconocidos en la versión actual del software Firejail y salga.
Ejemplo:
$ firejail - protocolos de depuración
--debug-syscalls
Imprima todas las llamadas al sistema reconocidas en la versión actual del software Firejail y salga.
Ejemplo:
$ firejail --debug-syscalls
--debug-whitelsts
Depurar la lista blanca.
Ejemplo:
$ firejail --debug-listas blancas firefox
--defaultgw = dirección
Utilice esta dirección como puerta de enlace predeterminada en el nuevo espacio de nombres de red.
Ejemplo:
$ firejail --net = eth0 --defaultgw = 10.10.20.1 firefox
--dns = dirección
Configure un servidor DNS para la zona de pruebas. Se pueden definir hasta tres servidores DNS. Utilizar este
opción si no confía en la configuración de DNS en su red.
Ejemplo:
$ firejail --dns = 8.8.8.8 --dns = 8.8.4.4 firefox
--dns.print = nombre
Imprima la configuración de DNS para una caja de arena identificada por su nombre.
Ejemplo:
$ firejail --name = mygame --caps.drop = all warzone2100 &
[...]
$ firejail --dns.print = mygame
--dns.print = pid
Imprima la configuración de DNS para una caja de arena identificada por PID.
Ejemplo:
$ firejail - lista
3272: netblue: firejail - firefox privado
$ firejail --dns.print = 3272
--env = nombre = valor
Establezca la variable de entorno en la nueva caja de arena.
Ejemplo:
$ firejail --env = LD_LIBRARY_PATH = / opt / test / lib
--fuerza
De forma predeterminada, si Firejail se inicia en una caja de arena existente, ejecutará el programa
en un bash shell. Esta opción desactiva este comportamiento e intenta iniciar
Firejail en la caja de arena existente. Puede haber muchas razones para que falle,
por ejemplo, si la zona de pruebas existente deshabilita las capacidades de administración, los binarios SUID o
si ejecuta seccomp.
--fs.print = nombre
Imprima el registro del sistema de archivos para la caja de arena identificada por su nombre.
Ejemplo:
$ firejail --name = mygame --caps.drop = all warzone2100 &
[...]
$ firejail --fs.print = mygame
--fs.print = pid
Imprima el registro del sistema de archivos para una caja de arena identificada por PID.
Ejemplo:
$ firejail - lista
3272: netblue: firejail - firefox privado
$ firejail --fs.print = 3272
-?, --ayuda
Las opciones de impresión terminan de salir.
--hostname = nombre
Establecer el nombre de host de la zona de pruebas.
Ejemplo:
$ firejail - nombre de host = officepc firefox
--ignore = comando
Ignore el comando en el archivo de perfil.
Ejemplo:
$ firejail --ignore = shell --ignore = seccomp firefox
--interface = interfaz
Mueva la interfaz en un nuevo espacio de nombres de red. Se pueden configurar hasta cuatro opciones de interfaz.
especificado.
Ejemplo:
$ firejail --interface = eth1 --interface = eth0.vlan100
--ip = dirección
Asigne direcciones IP a la última interfaz de red definida por una opción --net. A
La puerta de enlace predeterminada se asigna de forma predeterminada.
Ejemplo:
$ firejail --net = eth0 --ip = 10.10.20.56 firefox
--ip = ninguno
No se configura ninguna dirección IP ni puerta de enlace predeterminada para la última interfaz definida
mediante una opción --net. Utilice esta opción en caso de que desee iniciar un DHCP externo
cliente en la caja de arena.
Ejemplo:
$ firejail --net = eth0 --ip = ninguno
--ip6 = dirección
Asigne direcciones IPv6 a la última interfaz de red definida por una opción --net.
Ejemplo:
$ firejail --net=eth0 --ip6=2001:0db8:0:f101::1/64 firefox
--iprange = dirección, dirección
Asigne una dirección IP en el rango proporcionado a la última interfaz de red definida por
una opción --net. Se asigna una puerta de enlace predeterminada de forma predeterminada.
Ejemplo:
$ firejail --net = eth0 --iprange = 192.168.1.100,192.168.1.150
--ipc-espacio de nombres
Habilite un nuevo espacio de nombres de IPC si la zona de pruebas se inició como un usuario regular. IPC
El espacio de nombres está habilitado de forma predeterminada para los entornos sandbox iniciados como root.
Ejemplo:
$ firejail --ipc-espacio de nombres firefox
--join = nombre
Únase a la caja de arena identificada por su nombre. Por defecto un / bin / bash shell se inicia después de
unirse a la caja de arena. Si se especifica un programa, el programa se ejecuta en la caja de arena.
Si el comando --join se emite como un usuario regular, todos los filtros de seguridad están configurados
para el nuevo proceso los mismos están configurados en el sandbox. If --join comando
se emite como root, los filtros de seguridad, los cgroups y las configuraciones de cpus no son
aplicado al proceso de unión a la caja de arena.
Ejemplo:
$ firejail --name = mygame --caps.drop = all warzone2100 &
[...]
$ firejail --join = mygame
--unir = pid
Únase a la zona de pruebas identificada por el ID de proceso. Por defecto un / bin / bash se inicia el shell
después de unirse a la caja de arena. Si se especifica un programa, el programa se ejecuta en el
salvadera. Si el comando --join se emite como un usuario regular, todos los filtros de seguridad se
configurados para el nuevo proceso de la misma manera que están configurados en el sandbox. Si
El comando --join se emite como root, los filtros de seguridad, cgroups y cpus
las configuraciones no se aplican al proceso que se une a la zona de pruebas.
Ejemplo:
$ firejail - lista
3272: netblue: firejail - firefox privado
$ firejail --join = 3272
--join-filesystem = nombre
Únase al espacio de nombres de montaje de la zona de pruebas identificado por su nombre. Por defecto un / bin / bash
shell se inicia después de unirse a la zona de pruebas. Si se especifica un programa, el programa
se ejecuta en la caja de arena. Este comando solo está disponible para el usuario root. Seguridad
Los filtros, cgroups y configuraciones de cpus no se aplican al proceso que se une al
salvadera.
--unir-sistema de archivos = pid
Únase al espacio de nombres de montaje del sandbox identificado por el ID de proceso. Por defecto un
/ bin / bash shell se inicia después de unirse a la zona de pruebas. Si se especifica un programa,
el programa se ejecuta en la caja de arena. Este comando solo está disponible para el usuario root.
Los filtros de seguridad, los cgroups y las configuraciones de cpus no se aplican al proceso
unirse a la caja de arena.
--join-network = nombre
Únase al espacio de nombres de red del sandbox identificado por su nombre. Por defecto un
/ bin / bash shell se inicia después de unirse a la zona de pruebas. Si se especifica un programa,
el programa se ejecuta en la caja de arena. Este comando solo está disponible para el usuario root.
Los filtros de seguridad, los cgroups y las configuraciones de cpus no se aplican al proceso
unirse a la caja de arena.
--unir-red = pid
Únase al espacio de nombres de red del espacio aislado identificado por el ID de proceso. Por defecto un
/ bin / bash shell se inicia después de unirse a la zona de pruebas. Si se especifica un programa,
el programa se ejecuta en la caja de arena. Este comando solo está disponible para el usuario root.
Los filtros de seguridad, los cgroups y las configuraciones de cpus no se aplican al proceso
unirse a la caja de arena.
--lista Enumere todos los entornos sandbox, consulte MONITOREO Sección para más detalles.
Ejemplo:
$ firejail - lista
7015: netblue: firejail firefox
7056: netblue: firejail --net = eth0 transmisión-gtk
7064: netblue: firejail --noroot xterm
$
--mac = dirección
Asigne direcciones MAC a la última interfaz de red definida por una opción --net.
Ejemplo:
$ firejail --net = eth0 --mac = 00: 11: 22: 33: 44: 55 firefox
--mtu = número
Asigne un valor de MTU a la última interfaz de red definida por una opción --net.
Ejemplo:
$ firejail --net = eth0 --mtu = 1492
--name = nombre
Establecer el nombre de la zona de pruebas. Varias opciones, como --join y --shutdown, pueden usar este nombre
para identificar una caja de arena.
Ejemplo:
$ firejail --nombre = mybrowser firefox
--net = interfaz_puente
Habilite un nuevo espacio de nombres de red y conéctelo a esta interfaz de puente. A no ser que
especificado con la opción --ip y --defaultgw, una dirección IP y una puerta de enlace predeterminada
se asignará automáticamente a la zona de pruebas. La dirección IP se verifica mediante ARP
antes de la asignación. La dirección configurada como puerta de enlace predeterminada es el dispositivo puente
Dirección IP. Se pueden definir hasta cuatro dispositivos de puente --net. Puente mezclador y
Se permiten dispositivos macvlan.
Ejemplo:
$ sudo brctl addbr br0
$ sudo ifconfig br0 10.10.20.1/24
$ sudo brctl addbr br1
$ sudo ifconfig br1 10.10.30.1/24
$ caja de fuego --net = br0 --net = br1
--net = ethernet_interface
Habilite un nuevo espacio de nombres de red y conéctelo a esta interfaz Ethernet usando el
controlador macvlan de Linux estándar. A menos que se especifique con la opción --ip y --defaultgw,
una dirección IP y una puerta de enlace predeterminada se asignarán automáticamente a la zona de pruebas.
La dirección IP se verifica mediante ARP antes de la asignación. La dirección configurada como
La puerta de enlace predeterminada es la puerta de enlace predeterminada del host. Se pueden conectar hasta cuatro dispositivos --net
definido. Se permite la combinación de dispositivos puente y macvlan.
Ejemplo:
$ firejail --net = eth0 --ip = 192.168.1.80 --dns = 8.8.8.8 firefox
--net = ninguno
Habilite un nuevo espacio de nombres de red no conectado. La única interfaz disponible en el
nuevo espacio de nombres es una nueva interfaz de bucle invertido (lo). Utilice esta opción para denegar la red.
acceso a programas que realmente no necesitan acceso a la red.
Ejemplo:
$ firejail --net = ninguno vlc
--filtro de red
Habilite un filtro de red de cliente predeterminado en el nuevo espacio de nombres de red. Nueva red
los espacios de nombres se crean usando la opción --net. Si un nuevo espacio de nombres de red no es
creado, la opción --netfilter no hace nada. El filtro predeterminado es el siguiente:
*filtrar
: CAÍDA ENTRADA [0: 0]
: HACIA ADELANTE [0: 0]
: SALIDA ACEPTAR [0: 0]
-A ENTRADA -i lo -j ACEPTAR
-A ENTRADA -m estado --estado RELACIONADO, ESTABLECIDO -j ACEPTAR
-A ENTRADA -p icmp --icmp-type destino-inalcanzable -j ACEPTAR
-A ENTRADA -p icmp --icmp-type time-excedido -j ACEPTAR
-A ENTRADA -p icmp --icmp-type echo-request -j ACCEPT
COMETER
Ejemplo:
$ firejail --net = eth0 --netfilter firefox
--netfilter = nombre de archivo
Habilite el filtro de red especificado por nombre de archivo en el nuevo espacio de nombres de red. El
El formato de archivo de filtro es el formato de los comandos iptables-save e iptable-restore.
Los nuevos espacios de nombres de red se crean usando la opción --net. Si una nueva red de espacios de nombres
no se crea, la opción --netfilter no hace nada.
Los siguientes filtros están disponibles en el directorio / etc / firejail:
servidor web.net es un filtro de servidor web que permite el acceso solo a los puertos TCP 80 y
443. Ejemplo:
$ firejail --netfilter = / etc / firejail / webserver.net --net = eth0 \
/etc/init.d/apache2 comienzo
nolocal.net es un filtro de cliente que deshabilita el acceso a la red local. Ejemplo:
$ firejail --netfilter = / etc / firejail / nolocal.net \
--net = eth0 firefox
--netfilter6 = nombre de archivo
Habilite el filtro de red IPv6 especificado por nombre de archivo en el nuevo espacio de nombres de red.
El formato de archivo de filtro es el formato de ip6tables-save e ip6table-restore
comandos. Los nuevos espacios de nombres de red se crean usando la opción --net. Si una nueva red
los espacios de nombres no se crean, la opción --netfilter6 no hace nada.
--netstats
Supervise las estadísticas del espacio de nombres de la red, consulte MONITOREO Sección para más detalles.
Ejemplo:
$ cárcel de incendios --netstats
Comando RX de usuario PID (KB / s) TX (KB / s)
1294 netblue 53.355 1.473 firejail --net = eth0 firefox
7383 netblue 9.045 0.112 firejail --net = transmisión eth0
--noblacklist = dirname_or_filename
Desactive la lista negra para este directorio o archivo.
Ejemplo:
$ cárcel de incendios
$nc dict.org 2628
intento: / bin / nc: Permiso denegado
$ salida
$ firejail --noblacklist =/ bin / nc
$nc dict.org 2628
220 pan.alephnull.com dictd 1.12.1 / rf en Linux 3.14-1-amd64
--nogrupos
Deshabilitar grupos suplementarios. Sin esta opción, los grupos suplementarios están habilitados
para el usuario que inicia el sandbox. Para el usuario root, los grupos suplementarios son siempre
discapacitado.
Ejemplo:
$ identificación
uid = 1000 (netblue) gid = 1000 (netblue)
groups=1000(netblue),24(cdrom),25(floppy),27(sudo),29(audio)
$ firejail --nogrupos
Pid padre 8704, hijo pid 8705
Proceso hijo inicializado
$ identificación
uid = 1000 (netblue) gid = 1000 (netblue) grupos = 1000 (netblue)
$
--sin perfil
No utilice un perfil de seguridad.
Ejemplo:
$ cárcel de incendios
Perfil de lectura /etc/firejail/generic.profile
Pid padre 8553, hijo pid 8554
Proceso hijo inicializado
[...]
$ cárcel de fuego --sin perfil
Pid padre 8553, hijo pid 8554
Proceso hijo inicializado
[...]
--sin raíz
Instale un espacio de nombres de usuario con un solo usuario: el usuario actual. el usuario root no
existen en el nuevo espacio de nombres. Esta opción requiere una versión del kernel de Linux 3.8 o
más nuevo. La opción no es compatible con las configuraciones --chroot y --overlay, o
para sandboxes comenzó como root.
Ejemplo:
$ cárcel de fuego --noroot
Pid padre 8553, hijo pid 8554
Proceso hijo inicializado
$ hacer ping a google.com
ping: icmp open socket: operación no permitida
$
--sin sonido
Desactiva el sistema de sonido.
Ejemplo:
$ firejail-nosound firefox
--output = archivo de registro
registro estándar y rotación de registros. Copie stdout al archivo de registro y mantenga el tamaño del
archivo de menos de 500 KB mediante la rotación de registros. Se utilizan cinco archivos con prefijos .1 a .5 en
rotación.
Ejemplo:
$ firejail --output = sandboxlog / bin / bash
[...]
$ ls -l sandboxlog *
-rw-r - r-- 1 netblue netblue 333890 2 de junio 07:48 sandboxlog
-rw-r - r-- 1 netblue netblue 511488 2 de junio 07:48 sandboxlog.1
-rw-r - r-- 1 netblue netblue 511488 2 de junio 07:48 sandboxlog.2
-rw-r - r-- 1 netblue netblue 511488 2 de junio 07:48 sandboxlog.3
-rw-r - r-- 1 netblue netblue 511488 2 de junio 07:48 sandboxlog.4
-rw-r - r-- 1 netblue netblue 511488 2 de junio 07:48 sandboxlog.5
--cubrir
Monte una superposición del sistema de archivos sobre el sistema de archivos actual. Todo el sistema de archivos
las modificaciones van a la superposición. La superposición se almacena en $ HOME / .firejail
directorio.
Se requiere compatibilidad con OverlayFS en el kernel de Linux para que esta opción funcione. OverlayFS
se introdujo oficialmente en la versión 3.18 del kernel de Linux
Ejemplo:
$ firejail: superposición de firefox
--overlay-tmpfs
Monte una superposición del sistema de archivos sobre el sistema de archivos actual. Todo el sistema de archivos
las modificaciones van a la superposición y se descartan cuando se cierra la caja de arena.
Se requiere compatibilidad con OverlayFS en el kernel de Linux para que esta opción funcione. OverlayFS
se introdujo oficialmente en la versión 3.18 del kernel de Linux
Ejemplo:
$ firejail --superposición-tmpfs firefox
--privado
Monte nuevo / Root y directorios / home / user en sistemas de archivos temporales. Todo
las modificaciones se descartan cuando se cierra la caja de arena.
Ejemplo:
$ firejail - firefox privado
--private = directorio
Utilice el directorio como inicio de usuario.
Ejemplo:
$ firejail --private = / inicio / netblue / firefox-inicio firefox
--private-bin = archivo, archivo
Construye una nueva /compartimiento en un sistema de archivos temporal y copie los programas de la lista. El
El mismo directorio también está montado en enlace / sbin, / usr / bin y / usr / sbin.
Ejemplo:
$ firejail --private-bin = bash, sed, ls, cat
Pid padre 20841, hijo pid 20842
Proceso hijo inicializado
$ls /compartimiento
gato bash ls sed
--privado-dev
Crear un nuevo / dev directorio. Solo dri, nulo, completo, cero, tty, pts, ptmx, aleatorio,
Se encuentran disponibles dispositivos urandom, log y shm.
Ejemplo:
$ cárcel de fuego --dev-privado
Pid padre 9887, hijo pid 9888
Proceso hijo inicializado
$ls / dev
dri registro completo nulo ptmx pts aleatorio shm tty urandom cero
$
--private-etc = archivo, directorio
Construye una nueva / Etc en un sistema de archivos temporal, y copie los archivos y directorios en
la lista. Todas las modificaciones se descartan cuando se cierra la caja de arena.
Ejemplo:
$ firejail --private-etc = grupo, nombre de host, hora local, \
nsswitch.conf, passwd, resolv.conf
--tmp privado
Monte un sistema de archivos temporal vacío encima de / Tmp directorio.
Ejemplo:
$ firejail--private-tmp
--profile = nombre de archivo
Cargue un perfil de seguridad personalizado desde el nombre de archivo. Para el nombre de archivo, use una ruta absoluta o
una ruta relativa a la ruta actual. Para más información, ver SEGURIDAD PERFILES
sección a continuación.
Ejemplo:
$ firejail --profile = myprofile
--profile-path = directorio
Utilice este directorio para buscar archivos de perfil. Utilice una ruta absoluta o una ruta en el
directorio de inicio que comienza con ~ /. Para más información, consulte la SEGURIDAD PERFILES
sección a continuación y REUBICAR PERFIL ARCHIVOS in hombre 5 perfil de la jaula de fuego.
Ejemplo:
$ firejail --profile-path =~ / myprofiles
$ firejail --profile-path = / home / netblue / myprofiles
--protocol = protocolo, protocolo, protocolo
Habilite el filtro de protocolo. El filtro se basa en seccomp y comprueba la primera
argumento para la llamada al sistema de socket. Valores reconocidos: unix, inet, inet6, netlink y
paquete.
Ejemplo:
$ firejail --protocol = unix, inet, inet6 firefox
--protocol.print = nombre
Imprima el filtro de protocolo para la caja de arena identificada por su nombre.
Ejemplo:
$ firejail --name = mybrowser firefox &
[...]
$ firejail --print.print = mybrowser
unix, inet, inet6, netlink
--protocol.print = pid
Imprima el filtro de protocolo para una caja de arena identificada por PID.
Ejemplo:
$ firejail - lista
3272: netblue: firejail - firefox privado
$ firejail --protocol.print = 3272
unix, inet, inet6, netlink
--tranquilo
Apaga la salida de Firejail.
--read-only = dirname_or_filename
Establecer directorio o archivo de solo lectura.
Ejemplo:
$ firejail - solo lectura =~ / .mozilla Firefox
--rlimit-fsize = número
Establezca el tamaño máximo de archivo que puede crear un proceso.
--rlimit-nofile = número
Establezca el número máximo de archivos que puede abrir un proceso.
--rlimit-nproc = número
Establezca el número máximo de procesos que se pueden crear para el ID de usuario real del
proceso de llamada.
--rlimit-sigpending = número
Establezca el número máximo de señales pendientes para un proceso.
--escanear ARP-escanea todas las redes desde dentro de un espacio de nombres de red. Esto lo hace posible
para detectar los controladores de dispositivos del kernel de macvlan que se ejecutan en el host actual.
Ejemplo:
$ firejail --net = eth0 --scan
--seccomp
Habilite el filtro seccomp y ponga en lista negra las llamadas al sistema en la lista predeterminada. El valor por defecto
La lista es la siguiente: 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, modified_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 y chroot.
Ejemplo:
$ cárcel de incendios --seccomp
--seccomp = syscall, syscall, syscall
Habilite el filtro seccomp, ponga en la lista negra la lista predeterminada y las llamadas al sistema especificadas por el
mando.
Ejemplo:
$ firejail --seccomp = utime, utimensat, utimes firefox
--seccomp.drop = syscall, syscall, syscall
Habilite el filtro seccomp y ponga en lista negra las llamadas al sistema especificadas por el comando.
Ejemplo:
$ firejail --seccomp.drop = utime, utimensat, utimes
--seccomp.keep = syscall, syscall, syscall
Habilite el filtro seccomp e incluya en la lista blanca las llamadas al sistema especificadas por el comando.
Ejemplo:
$ firejail --shell = none --seccomp.keep = encuesta, seleccionar, [...] transmisión-gtk
--seccomp. = syscall, syscall, syscall
Habilite el filtro seccomp y devuelva errno para las llamadas al sistema especificadas por el comando.
Ejemplo: un shell Bash donde la eliminación de archivos está deshabilitada
$ firejail --seccomp.eperm = desvincular
Pid padre 10662, hijo pid 10663
Proceso hijo inicializado
$ touch archivo de prueba
$ rm archivo de prueba
rm: no se puede eliminar `testfile ': operación no permitida
--seccomp.print = nombre
Imprima el filtro seccomp para la zona de pruebas que comenzó con la opción --name.
Ejemplo:
$ firejail --name = navegador firefox &
$ firejail --seccomp.print = navegador
Filtro SECCOMP:
VALIDATE_ARQUITECTURA
EXAMINE_SYSCALL
Montura BLACKLIST 165
LISTA NEGRA 166 umount2
LISTA NEGRA 101 ptrace
LISTA NEGRA 246 kexec_load
LISTA NEGRA 304 open_by_handle_at
LISTA NEGRA 175 init_module
LISTA NEGRA 176 eliminar_módulo
LISTA NEGRA 172 iopl
LISTA NEGRA 173 ioperm
LISTA NEGRA 167 Swapon
LISTA NEGRA 168 intercambio
LISTA NEGRA 103 syslog
LISTA NEGRA 310 process_vm_readv
LISTA NEGRA 311 process_vm_writev
LISTA NEGRA 133 mknod
LISTA NEGRA 139 sysfs
LISTA NEGRA 156 _sysctl
LISTA NEGRA 159 adjtimex
LISTA NEGRA 305 clock_adjtime
LISTA NEGRA 212 lookup_dcookie
LISTA NEGRA 298 perf_event_open
LISTA NEGRA 300 fanotify_init
RETURN_PERMITIR
$
--seccomp.print = pid
Imprima el filtro seccomp para la zona de pruebas especificada por el ID de proceso. Utilice la opción --list
para obtener una lista de todos los entornos sandbox activos.
Ejemplo:
$ firejail - lista
10786: netblue: firejail --name = navegador firefox $ firejail --seccomp.print = 10786
Filtro SECCOMP:
VALIDATE_ARQUITECTURA
EXAMINAR_SYSCAL
Montura BLACKLIST 165
LISTA NEGRA 166 umount2
LISTA NEGRA 101 ptrace
LISTA NEGRA 246 kexec_load
LISTA NEGRA 304 open_by_handle_at
LISTA NEGRA 175 init_module
LISTA NEGRA 176 eliminar_módulo
LISTA NEGRA 172 iopl
LISTA NEGRA 173 ioperm
LISTA NEGRA 167 Swapon
LISTA NEGRA 168 intercambio
LISTA NEGRA 103 syslog
LISTA NEGRA 310 process_vm_readv
LISTA NEGRA 311 process_vm_writev
LISTA NEGRA 133 mknod
LISTA NEGRA 139 sysfs
LISTA NEGRA 156 _sysctl
LISTA NEGRA 159 adjtimex
LISTA NEGRA 305 clock_adjtime
LISTA NEGRA 212 lookup_dcookie
LISTA NEGRA 298 perf_event_open
LISTA NEGRA 300 fanotify_init
RETURN_PERMITIR
$
--shell = ninguno
Ejecute el programa directamente, sin un shell de usuario.
Ejemplo:
$ firejail --shell = none script.sh
--shell = programa
Establecer shell de usuario predeterminado. Use este shell para ejecutar la aplicación usando -c shell
opción. Por ejemplo, "firejail --shell =/ bin / dash firefox "iniciará Mozilla
Firefox como "/ bin / dash -c firefox ". De forma predeterminada, el shell Bash (/ bin / bash) se utiliza.
Opciones como --zsh y --csh también pueden configurar el shell predeterminado.
Ejemplo: $ firejail --shell =/ bin / dash script.sh
--shutdown = nombre
Apagar la caja de arena comenzó a usar la opción --name.
Ejemplo:
$ firejail --name = mygame --caps.drop = all warzone2100 &
[...]
$ firejail --shutdown = mygame
--shutdown = pid
Cierre la caja de arena especificada por el ID de proceso. Utilice la opción --list para obtener una lista de
todos los sandboxes activos.
Ejemplo:
$ firejail - lista
3272: netblue: firejail - firefox privado
$ firejail --shutdown = 3272
--tmpfs = dirname
Monte un sistema de archivos tmpfs en el directorio dirname. Esta opción está disponible solo cuando
ejecutando el sandbox como root.
Ejemplo:
# firejail --tmpfs =/ var
--cima Supervise los entornos sandbox que consumen más CPU, consulte MONITOREO Sección para más detalles.
Ejemplo:
$ firejail - arriba
--rastro
Rastree, acceda y conecte las llamadas del sistema.
Ejemplo:
$ firejail --trace wget -q www.debian.org
Pid padre 11793, hijo pid 11794
Proceso hijo inicializado
1: bash: abrir / dev / tty
1: wget: fopen64 / etc / wgetrc
1: wget: fopen / etc / hosts
1: wget: conector AF_INET SOCK_DGRAM IPPROTO_IP
1: wget: conectar 8.8.8.8:53
1: wget: conector AF_INET SOCK_STREAM IPPROTO_IP
1: wget: conectar 140.211.15.34:80
1: wget: fopen64 index.html.1
padre está cerrando, adiós ...
--tracelog
Esta opción permite auditar archivos y directorios incluidos en la lista negra. Se envía un mensaje
a syslog en caso de que se acceda al archivo o al directorio.
Ejemplo:
$ cárcel de fuego --tracelog firefox
Mensajes de muestra:
$ sudo cola -f / var / log / syslog
[...]
3 de diciembre 11:43:25 debian firejail [70]: violación de lista negra - sandbox 26370, exe
firefox, syscall open64, ruta / etc / shadow
3 de diciembre 11:46:17 debian firejail [70]: violación de lista negra - sandbox 26370, exe
firefox, syscall opendir, ruta /bota
[...]
--árbol Imprima un árbol de todos los procesos de espacio aislado, consulte MONITOREO Sección para más detalles.
Ejemplo:
$ firejail --árbol
11903: netblue: firejail iceweasel
11904: netblue: iceweasel
11957: netblue: / usr / lib / iceweasel / plugin-container
11969: netblue: firejail --net = eth0 transmisión-gtk
11970: netblue: transmisión-gtk
--user = nuevo-usuario
Cambie de usuario antes de iniciar la zona de pruebas. Este comando debe ejecutarse como root.
Ejemplo:
# firejail --user = www-data
--versión
Imprime la versión del programa y sal.
Ejemplo:
$ cárcel de fuego --versión
firejail versión 0.9.27
--whitelist = dirname_or_filename
Directorio o archivo de la lista blanca. Esta función se implementa solo para el hogar del usuario, / dev,
/medios de comunicación, / opt, / var y / Tmp directorios.
Ejemplo:
$ firejail --whitelist =~ / .mozilla --whitelist =~ / Descargas
$ firejail --whitelist =/tmp/.X11-unix --whitelist = / dev / null
$ firejail "--whitelist = / home / username / My Virtual Machines"
--zsh Utilice / usr / bin / zsh como shell de usuario predeterminado.
Ejemplo:
$ cárcel de fuego --zsh
TRÁFICO FORMACIÓN
El ancho de banda de la red es un recurso costoso compartido entre todos los entornos sandbox que se ejecutan en un sistema.
El modelado del tráfico permite al usuario aumentar el rendimiento de la red controlando la cantidad
de datos que entran y salen de los entornos sandbox.
Firejail implementa un modelador simple de limitación de velocidad basado en el comando tc de Linux. El modelador
funciona a nivel de sandbox y solo se puede usar para sandboxes configurados con una nueva red
espacios de nombres.
Establecer límites de tasa:
firejail --bandwidth = {nombre | pid} establecer carga de descarga de red
Límites de tasa claros:
firejail --bandwidth = {nombre | pid} borrar red
Estatus
firejail --bandwidth = {nombre | pid} estado
dónde:
name - nombre de la caja de arena
pid - pid de caja de arena
red: interfaz de red utilizada por la opción --net
descarga: velocidad de descarga en KB / s (kilobyte por segundo)
carga: velocidad de carga en KB / s (kilobyte por segundo)
Ejemplo:
$ firejail --name = mybrowser --net = eth0 firefox &
$ firejail --bandwidth = mybrowser set eth0 80 20
$ firejail --bandwidth = estado de mybrowser
$ firejail --bandwidth = mybrowser clear eth0
MONITOREO
Option --list imprime una lista de todos los entornos sandbox. El formato para cada entrada de proceso es el
manera:
PID: USUARIO: Comando
Opción --tree imprime el árbol de procesos que se ejecutan en la caja de arena. El formato de cada
La entrada del proceso es la siguiente:
PID: USUARIO: Comando
Option --top es similar al comando top de UNIX, sin embargo, solo se aplica a los entornos sandbox.
Opción: netstats imprime estadísticas de red para entornos sandbox activos que instalan una nueva red
espacios de nombres.
A continuación se enumeran los campos disponibles (columnas) en orden alfabético para --top y
- opciones de netstat:
Comando
Comando utilizado para iniciar la caja de arena.
CPU% CPU use, el porcentaje de espacio aislado del tiempo de CPU transcurrido desde la última actualización de pantalla
PID ID de proceso único para la tarea que controla la zona de pruebas.
Prcs Número de procesos que se ejecutan en la zona de pruebas, incluido el proceso de control.
Tamaño de memoria residente de RES (KiB), memoria física no intercambiada de espacio aislado. Es una suma de
los valores RES para todos los procesos que se ejecutan en la zona de pruebas.
RX (KB / s)
Velocidad de recepción de la red.
Tamaño de memoria compartida SHR (KiB), refleja la memoria compartida con otros procesos. Es un
suma de los valores de SHR para todos los procesos que se ejecutan en la zona de pruebas, incluido el
proceso de control.
TX (KB / s)
Velocidad de transmisión de la red.
Tiempo de actividad Tiempo de ejecución de Sandbox en formato de horas: minutos: segundos.
Usuario El propietario de la zona de pruebas.
SEGURIDAD PERFILES
Se pueden pasar varias opciones de línea de comando al programa usando archivos de perfil. Firejail
elige el archivo de perfil de la siguiente manera:
1. Si el usuario proporciona un archivo de perfil con la opción --profile, el archivo de perfil es
cargado. Ejemplo:
$ firejail --profile = / home / netblue / icecat.profile icecat
Perfil de lectura /home/netblue/icecat.profile
[...]
2. Si un archivo de perfil con el mismo nombre que la aplicación está presente en
~ / .config / firejail directorio o en / etc / firejail, se carga el perfil.
~ / .config / firejail tiene prioridad sobre / etc / firejail. Ejemplo:
$ gato de hielo firejail
Nombre de comando # icecat #
Se encontró el perfil de icecat en el directorio /home/netblue/.config/firejail
Perfil de lectura /home/netblue/.config/firejail/icecat.profile
[...]
3. Utilice el archivo default.profile si el sandbox lo inicia un usuario normal o server.profile
archivo si la caja de arena es iniciada por root. Firejail busca estos archivos en
~ / .config / firejail directorio, seguido del directorio / etc / firejail. Para deshabilitar el valor predeterminado
carga de perfil, use la opción de comando --noprofile. Ejemplo:
$ cárcel de incendios
Perfil de lectura /etc/firejail/generic.profile
Pid padre 8553, hijo pid 8554
Proceso hijo inicializado
[...]
$ cárcel de fuego --sin perfil
Pid padre 8553, hijo pid 8554
Proceso hijo inicializado
[...]
Consulte man 5 firejail-profile para obtener información sobre la sintaxis del archivo de perfil.
RESTRINGIDO SHELL
Para configurar un shell restringido, reemplace / bin / bash con / usr / bin / firejail en / etc / password
archivo para cada usuario que necesita ser restringido. Alternativamente, puede especificar
/ usr / bin / firejail en el comando adduser:
adduser --shell / usr / bin / firejail nombre de usuario
Los argumentos adicionales pasados al ejecutable de firejail al iniciar sesión se declaran en
Archivo /etc/firejail/login.users.
EJEMPLOS
cárcel de fuego
Empiece un regular / bin / bash sesión en sandbox.
firefox
Inicie Mozilla Firefox.
firejail - depuración firefox
Depurar la zona de pruebas de Firefox.
firejail --privado
Iniciar un / bin / bash sesión con un nuevo directorio de inicio tmpfs.
firejail --net = br0 ip = 10.10.20.10
Iniciar un / bin / bash sesión en un nuevo espacio de nombres de red. La sesión está conectada a
la red principal usando el dispositivo de puente br0. Se asigna una dirección IP de 10.10.20.10
a la caja de arena.
firejail --net = br0 --net = br1 --net = br2
Iniciar un / bin / bash sesión en un nuevo espacio de nombres de red y conéctelo a br0, br1,
y dispositivos de puente de host br2.
firejail - lista
Enumere todos los procesos de espacio aislado.
Use firejail en línea usando los servicios de onworks.net
