centos安装和配置Firejail过程及命令大全

Firejail 是一个沙盒程序,它允许程序使用自己的参数集在单独的沙盒中运行,从而限制它们与系统其余部分的接触。Firejail 易于使用,几乎在所有主要发行版的存储库中都可用。

centos安装和配置Firejail过程及命令大全

一、安装 Firejail

Debian/Ubuntu

$ sudo apt install firejail

Fedora/CentOS

.rpm从他们的 Sourceforge 页面下载 Firejail https://sourceforge.net/projects/firejail/files/firejail/,然后手动安装。

centos安装和配置Firejail过程及命令大全

# rpm -i firejail_X.YZ.x86_64.rpm

OpenSUSE

# zypper install firejail

Gentoo

#emerge --ask firejail

二、基本用法

要通过 Firejail 运行应用程序,您只需要在命令前加上firejail.

firejail firefox

Firefox 会像往常一样启动,但包含在它自己的沙箱中。

这几乎适用于您能想到的任何应用程序,包括命令行应用程序。

$ firejail tar xpf somefile.tar.gz

只要应用程序运行,Firejail 就会一直运行。即使您使用的东西会打开一段时间,您也不必担心 Firejail 停止和您的应用程序不安全。实际上,如果确实发生了类似的事情,应用程序也会停止。

Firejail 配置文件

Firejail 默认的配置文件在/etc/firejail/目录中,如果运行的时候需要自定义配置文件,可以将默认的配置文件复制到新目录,然后自定义配置文件运行firejail。

firejail --profile=/home/netblue/icecat.profile icecat

有几种方法可以让 Firejail 在默认情况下与程序一起运行。最简单的方法可能是修改您计划与 Firejail 一起使用的程序的启动器。

如果您希望 Firejail 与它具有默认配置文件的每个程序一起运行,您可以以 root 身份运行一个简单的命令,Firejail 将自行设置。

#firecfg

如果默认情况下您没有使用 Firejail 的范围广泛的程序,您可以手动设置您想要的程序。

# ln -s /usr/bin/firejail /usr/local/bin/firefox

这会在 firejail 和正在运行的程序之间创建一个符号链接。替换系统和程序的实际路径。

三、firejail 命令参数大全


使用自定义的安全配置文件语法

firejail --profile=filename.profile
firejail --profile=profile_name

描述

几个命令行选项可以传递给程序使用配置
文件。Firejail 选择配置文件如下:

1. 如果配置文件是由用户提供的 --profile 选项,则加载配置文件。如果给出了配置文件名称,则首先在 ~/.config/firejail 目录中搜索它,如果没有找到,则在/etc/firejail 目录。配置文件名称不包括 .profile 后缀

示例:

$ firejail --profile=/home/netblue/icecat.profile icecat
读取配置文件 /home/netblue/icecat.profile

$ firejail --profile=icecat icecat-wrapper.sh
读取配置文件 /etc/firejail /icecat.profile

2. 如果

~/.config/firejail 目录或 /etc/firejail 中存在与应用程序同名的配置文件,则
加载该配置文件。~/.config/firejail 优先于 /etc/firejail。应试
PLE:

$ firejail式Icecat

命令名称 #icecat#
在 /home/netblue/.config/firejail 目录中找到 icecat 配置文件
读取配置文件 /home/netblue/.config/firejail/icecat.profile
[...]

3. 如果沙箱使用 default.profile 文件由普通
用户启动,如果沙箱由 root 启动,则由 server.profile 文件启动。Fire-
jail 在 ~/.config/firejail 目录中查找这些文件,然后是
/etc/firejail 目录。要禁用默认配置文件加载,请使用 --no-
profile 命令选项。示例:

$ firejail
读取配置文件 /etc/firejail/default.profile
父 pid 8553,子 pid 8554
子进程已初始化
[...]

$ firejail --noprofile

进程pid 8553, 子进程已初始化
[...]

模板
在 /usr/share/doc/firejail 中有两个模板用于编写新的配置
文件。
profile.template - 用于常规配置文件
redirect_alias-profile.template - 用于别名/重定向配置
文件

脚本
脚本命令:

文件和目录名称
支持包含空格的文件和目录名称。这
不应转义空格字符“ ”。

示例:"blacklist ~/My Virtual Machines"

# 这是注释

?CONDITIONAL: profile line
有条件地添加 profile line。

示例:“?HAS_APPIMAGE: whitelist ${HOME}/special/appimage/dir”

只有
在命令行中指定了--appimage 选项时,此示例才会加载白名单配置文件行。

目前唯一支持这种方式的条件是 HAS_AP-
PIMAGE、HAS_NET、HAS_NODBUS、HAS_NOSOUND 和 HAS_X11。
可以启用条件BROWSER_DISABLE_U2F 和 BROWSER_ALLOW_DRM
或在 Firejail 的配置文件中全局禁用。

配置文件行可以是您通常
在配置文件中使用的任何配置文件行,“安静”和“包含”行除外。

包括 other.profile
包括 other.profile 文件。

示例:“include /etc/firejail/disable-common.inc”

文件名可以使用宏作为前缀,例如 ${HOME} 或
${CFG}。${HOME} 扩展为用户主目录,${CFG}
扩展为 Firejail 系统配置目录 - 大多数
情况下为 /etc/firejail 或 /usr/local/etc/firejail。

示例:“include ${HOME}/myprofiles/profile1”将加载
“~/myprofiles/profile1”文件。

示例:“include ${CFG}/firefox.profile”将加载“/etc/fire-
jail/firefox.profile”文件。

文件名也可能只是没有前导目录
组件的名称。在这种情况下,首先在用户配置
目录 (${HOME}/.config/firejail) 中搜索文件名
,如果没有找到,则在系统配置目录中
搜索文件名。注意:与 --profile 选项不同,
它采用不带“.profile”的配置文件名称
include 必须给出完整的文件名。

例如:"include firefox.profile" 将加载 "${HOME}/.
config/firejail/firefox.profile" 文件,如果它不存在
"${CFG}/firefox.profile" 将加载。

${CFG} 中的系统配置文件在
软件安装期间被覆盖。系统级别的持久配置
在“.local”文件中处理。对于 ${CFG}
目录中的每个配置文件,用户可以创建一个相应的 .local 文件来存储
对持久配置的修改。执着的
.local 文件包含在常规配置文件的开头。

noblacklist file_name
如果文件名与 file_name 匹配,则该文件将不会
在随后的任何黑名单命令中列入黑名单。

示例:"noblacklist ${HOME}/.mozilla"

nowhitelist file_name
如果文件名与 file_name 匹配,则该文件将不会
在随后的任何白名单命令中列入白名单。

示例:“nowhitelist ~/.config”

忽略忽略命令。

示例:“忽略 seccomp”
示例:“忽略网络 eth0”

quiet 禁用 Firejail 的输出。这应该是
配置文件中第一个未注释的命令。

示例:“quiet”

文件系统
这些配置文件条目定义了一个构建在
现有主机文件系统之上的 chroot 文件系统。每行描述一个
无法访问的文件/目录(黑名单)、一个只读文件或目录(只读)、一个
挂载在现有目录顶部的 tmpfs (tmpfs),或者挂载绑定一个
目录或文件在顶部另一个目录或文件(绑定)。使用
private 设置私人模式。支持文件通配,并
搜索PATH 和HOME 目录,参见 firejail FILE GLOBBING 部分
更多细节。示例:

黑名单 file_or_directory
黑名单目录或文件。示例:

blacklist /usr/bin
blacklist /usr/bin/gcc*
blacklist ${PATH}/ifconfig
blacklist ${HOME}/.ssh

blacklist-nolog file_or_directory
当 --tracelog 标志被设置时,黑名单生成系统日志消息,
如果沙箱尝试访问文件或目录。
blacklist-nolog 命令禁用此
特定文件或目录的系统日志消息。示例:

blacklist-nolog /usr/bin
blacklist-nolog /usr/bin/gcc*

bind directory1,directory2 

Mount-bind directory1 在 directory2 之上。此选项仅
在以 root 身份运行时可用。

bind file1,file2

在 file2 的顶部挂载绑定 file1。此选项仅
在以 root 身份运行时可用。

disable-mnt

禁用 /mnt、/media、/run/mount 和 /run/media 访问。

keep-dev-shm 

/dev/shm 目录未受影响(即使使用 private-dev)。

keep-var-tmp 

/var/tmp 目录不变。

mkdir 目录

启动沙箱之前,在用户主目录、/tmp 或/run/user/下创建一个目录。如果目录不存在,则创建该目录。将此命令用于在沙箱关闭时需要保留的白名单目录。没有它,应用程序将创建目录,当沙箱关闭时该目录将被删除。子目录是递归创建的。来自 firefox 配置文件的示例:

mkdir ~/.mozilla
whitelist ~/.cache/mozilla/firefox

对于 /run/user/ 中的文件,使用 ${RUNUSER} 宏:

mkdir ${RUNUSER}/firejail-testing

mkfile file

与 mkdir 类似,该命令在用户home 中创建一个空文件,或者/tmp,或在沙箱启动之前的 /run/user/ 下。如果文件不存在,则创建该文件。

noexec file_or_directory

重新挂载文件或目录 noexec、nodev 和 nosuid。

overlay
挂载到当前文件系统之上的文件系统覆盖。覆盖存储在 $HOME/.firejail/ 目录中。

overlayname

在当前文件系统的顶部安装一个文件系统覆盖。覆盖存储在 $HOME/.firejail/name 目录中。

overlay-tmpfs

在当前文件系统之上挂载一个文件系统覆盖。当沙箱关闭时,所有文件系统修改都将被丢弃。

private

在临时文件系统中挂载新的 /root 和 /home/user 目录。当沙箱关闭时,所有修改都将被丢弃。

private 目录

使用目录作为用户家。

私有bin文件,文件
在临时文件系统中创建一个新的 /bin,并复制
列表中的程序。列表中的文件必须表示为
相对于 /bin、/sbin、/usr/bin、/usr/sbin 或 /usr/local
/bin 目录。相同的目录也绑定安装
在 /sbin、/usr/bin 和 /usr/sbin 上。

private-cache
在用户家中的 .cache目录之上挂载一个空的临时文件系统。当
沙箱关闭时,所有修改都将被丢弃。

private-cwd

将监狱内的工作目录设置为主目录,然后失败了,根目录。

private-cwd directory

在 jail 中设置工作目录。

private-dev

创建一个新的 /dev 目录。只有disc、dri、dvb、hidraw、null、full、zero、tty、pts、ptmx、random、snd、urandom、video、log、shm和usb设备可用。使用选项 no3d、nodvd、nosound、notv、nou2f 和 novideo 进行额外限制。

private-etc file,directory

在临时文件系统中新建一个/etc,复制列表中的文件和目录。中的文件和目录list 必须表示为相对于 /etc 目录。当沙箱关闭时,所有修改都将被丢弃。

private-home file,directory

在临时文件系统中新建一个用户home,将列表中的文件和目录复制到新home中。列表中的文件和目录必须表示为相对于当前用户的主目录。当沙箱关闭时,所有修改都将被丢弃。

private-lib file,directory

新建/lib目录,引入需要的库由应用程序运行。列表中的文件和目录必须表示为相对于 /lib 目录。此功能仍在开发中,请参阅 man 1 firejail 以获取一些
示例。

private-opt file,directory

在临时文件系统中新建一个/opt,复制列表中的文件和目录。列表中的文件和目录必须表示为相对于 /opt 目录。当沙箱关闭时,所有修改都将被丢弃。

private-srv file,directory

在临时文件系统中新建/srv,复制文件和列表中的目录。列表中的文件和目录必须表示为相对于 /srv 目录。当沙箱关闭时,所有修改都将被丢弃。

private-tmp

在 /tmp 目录白名单 /tmp/.X11-unix之上挂载一个空的临时文件系统。

readonly file_or_directory

使目录或文件只读。

read-write file_or_directory
使目录或文件可读写。

tmpfs 目录
在目录顶部挂载一个空的 tmpfs 文件系统。这个选项
仅在以 root 身份运行沙箱时可用。

tracelog
黑名单违规记录到系统日志。

whitelist file_or_directory
白名单目录或文件。顶层目录挂载一个临时文件系统,白名单文件挂载在里面。对白名单文件的修改是持久的,当沙箱关闭时,其他所有内容都会被丢弃。顶级目录可以是用户home、/dev、/etc、/media、/mnt、/opt、/srv、/sys/module、/usr/share、/var 和 /tmp。

符号链接处理:除了用户主页,两者都链接和真实文件应该在同一个顶级目录中。对于用户家,链接和真实文件都应该归用户所有。

writable-etc 以读写方式
挂载 /etc 目录。

writable-run-user
禁用 run/user/$UID/systemd 和
/run/user/$UID/gnupg的默认黑名单。

writable-var

挂载 /var 目录读写。

writable-var-log

使用真实的 /var/log 目录,而不是克隆。默认情况下,一个tmpfs 挂载在 /var/log 目录的顶部,一个骨架文件系统是基于原始的 /var/log 创建的。

安全过滤

 目前实现了以下安全过滤器:

allow-debuggers
通过将系统调用 ptrace 和 process_vm_readv 列入白名单,允许在沙箱中使用诸如 strace 和 gdb 之类的工具。

apparmor

启用 AppArmor 限制。

caps 启用默认的 Linux 功能过滤器。

caps.drop 能力,能力,能力
给定 Linux 能力的黑名单。

caps.drop all 将
所有 Linux 功能列入黑名单。

caps.keep 能力,能力,能力
给定 Linux 功能的白名单。

memory-deny-write-execute
安装 seccomp 过滤器以阻止尝试创建
可写和可执行的内存映射,将映射更改
为可执行或创建可执行的共享内存。

nonewprivs
设置 NO_NEW_PRIVS prctl。这确保子进程
无法使用 execve(2) 获取新权限;特别是,
这意味着调用 suid 二进制文件(或具有文件功能的二进制文件
)不会导致权限增加。

noroot 使用此命令启用用户命名空间。命名空间有
只有一个用户,当前用户。
命名空间中没有定义root 帐户 (uid 0)。

protocol protocol1,protocol2,protocol3
启用协议过滤器。过滤器基于 seccomp 并
检查套接字系统调用的第一个参数。识别值
:unix、inet、inet6、netlink 和 packet。

seccomp
启用 seccomp 过滤器并将默认
列表中的系统调用列入黑名单。有关更多详细信息,请参阅 man 1 firejail。

seccomp.32
启用 seccomp 过滤器并在默认情况下将系统调用列入黑名单
64 位体系结构系统上的 32 位系统调用列表。

seccomp syscall,syscall,syscall
启用 seccomp 过滤器并将系统调用列入
默认 seccomp 过滤器之上的列表中。

seccomp.32 syscall,syscall,syscall
启用 seccomp 过滤器并将系统调用列入黑名单,该列表
位于 64
位体系结构系统上的 32 位系统调用的默认 seccomp 过滤器之上。

seccomp.block-secondary
启用 seccomp 过滤器和过滤器系统调用架构,以便
只允许使用本机架构。

seccomp.drop 系统调用、系统调用、系统调用
启用 seccomp 过滤器并将系统调用列入黑名单


seccomp.32.drop syscall,syscall,syscall
启用 seccomp 过滤器并将列表
中的系统调用列入 64 位体系结构系统上的 32 位系统调用的黑名单。

seccomp.keep syscall,syscall,syscall
启用 seccomp 过滤器并将系统调用列入白
名单。

seccomp.32.keep syscall,syscall,syscall
在 64 位体系结构系统上
启用 seccomp 过滤器并将系统调用列入白名单以用于 32 位系统调用。

seccomp-错误-动作杀死| 日志 | 错误号
向进程返回一个不同的错误而不是 EPERM,
当尝试调用被阻塞的系统调用时将其杀死,或者允许
但记录该尝试。#ifdef HAVE_X11

x11 启用 X11 沙箱。

x11 无
黑名单 /tmp/.X11-unix 目录、${HOME}/.Xauthority 和
${XAUTHORITY} 环境变量中指定的文件。删除 DISPLAY
和 XAUTHORITY 环境变量。
如果 X11 抽象套接字可以在 jail 中访问,则停止并显示错误消息。

x11 xephyr
使用 Xephyr 服务器启用 X11 沙箱。

x11 xorg
使用 X11 安全扩展启用 X11 沙箱。

x11 xpra
使用 Xpra 服务器启用 X11 沙箱。

x11 xvfb
使用 Xvfb 服务器启用 X11 沙箱。

xephyr-screen WIDTHxHEIGHT
设置 x11 xephyr 的屏幕尺寸。此命令应包含
在 x11 xephyr 命令之前的配置文件中。

示例:

xephyr-screen 640x480
x11 xephyr DBus

过滤

可以允许、过滤或禁用对会话和系统 DBus UNIX 套接字的访问。禁用抽象套接字(并强制应用程序使用过滤后的 UNIX 套接字)您需要使用 --net 命令请求一个新的网络命名空间。另一种选择是从 --protocol 集中删除 unix 。过滤需要安装 xdg-dbus-proxy 实用程序。
可以为众所周知的 DBus 名称指定过滤规则,但它们也会传播
到拥有唯一名称的名称。权限是“粘性的”,
即使相应的知名名称被释放也会保留(然而
,应用程序在实践中很少发布知名名称)。名称
可能带有 .* 后缀以匹配其下的所有名称,包括
他们自己(例如“foo.bar.*”匹配“foo.bar”、“foo.bar.baz”和
“foo.bar.baz.quux”,但不匹配“foobar”)。有关详细信息,请参阅 xdg
-dbus-proxy(1)。

示例:

dbus-system filter

启用对系统 DBus 的过滤访问。过滤器可以
用 dbus-system.talk 和 dbus-system.own 命令指定。

dbus-system none

禁止访问系统 DBus。一旦访问被禁用,就不能放松过滤。

dbus-system.own org.gnome.ghex.*
允许应用程序拥有名称 org.gnome.ghex 和所有系统 DBus 上的名称。

dbus-system.talk org.freedesktop.Notifications
允许应用程序与系统 DBus 上的名称 org.freedesktop.Notifications 对话。

dbus-system.see org.freedesktop.Notifications
允许应用程序在系统 DBus 上看到名称org.freedesktop.Notifications但不能与之交谈。

dbus-system.call org.freedesktop.Notifications = org.freedesktop.Notifi-
cations.*@/org/freedesktop/Notifications
允许应用程序调用接口的方法在路径曝光的物体的org.freedesktop.Notifications
/org/freedesktop/Notifications 由在系统 DBus 上拥有总线名称org.freedesktop.Notifications的客户端。

DBUS-system.broadcast org.freedesktop.Notifications = org.freedesktop.No-
tifications.*@/org/freedesktop/Notifications
允许应用程序从接收的广播信号在曝光的物体的界面org.freedesktop.Notifications
路径/org/freedesktop/Notifications 由在系统 DBus 上拥有总线名称 org.freedesktop.Notifications的客户端。

dbus-user filter
启用对会话 DBus 的过滤访问。过滤器可以是规范的使用 dbus-user.talk 和 dbus-user.own 命令进行验证。

dbus-user none
禁止访问会话 DBus。一旦访问被禁用,就不能放松过滤。

dbus-user.own org.gnome.ghex.*
允许应用程序拥有名称 org.gnome.ghex 和会话DBus 下的所有名称。

dbus-user.talk org.freedesktop.Notifications
允许应用程序在会话 DBus 上与名称 org.freedesktop.Notifications 对话。

dbus-user.see org.freedesktop.Notifications
允许应用程序查看但不与名称交谈org.freedesktop.Notifications 在会话 DBus 上。

dbus-user.call org.freedesktop.Notifications = org.freedesktop.Notifica-
tions.*@/org/freedesktop/Notifications
允许应用程序接口的调用方法在路径曝光的物体的org.freedesktop.Notifications
/组织/freedesktop/Notifications 由在会话 DBus 上拥有总线名称org.freedesktop.Notifications的客户端生成。

DBUS-user.broadcast org.freedesktop.Notifications = org.freedesktop.Noti-
fications.*@/org/freedesktop/Notifications
允许应用程序从接收广播信号的所述接口 org.freedesktop.Notifications 在路径 /org/freedesktop/Notifications 中由拥有
总线名称 org.freedesktop.Notifications的客户端在会话 DBus 上公开的对象的接口。

nodbus(已弃用)
禁用 D-Bus 访问(系统和会话总线)。相当于dbus-system none 和 dbus-user none。

可以通过 --ignore 命令覆盖单个过滤器。假设一个配置文件有

[...]
dbus-user 过滤器
dbus-user.own org.mozilla.firefox.*
dbus-user.talk org.freedesktop.Notifications
dbus-system none
[...]

并且用户想要禁用通知,这可以通过将以下内容放在本地覆盖文件中来实现:
[...]
忽略 dbus-user.talk org.freedesktop.Notifications
[...]

资源限制、CPU 关联、控制组这些配置文件条目定义了沙箱内进程的系统资源限制 (rlimits) 。可以使用常规 ulimit 命令在沙箱内修改限制。cpu 命令配置
可用的 CPU 内核,cgroup 命令将沙箱放在现有的控制组中。

例子:

cgroup /sys/fs/cgroup/g1/tasks
沙箱放在 g1 控制组中。

cpu 0,1,2
仅使用 CPU 内核 0、1 和 2。

nice -5
为沙箱内运行的所有进程设置 nice 值 -5 。

rlimit-as 123456789012
将进程虚拟内存的最大大小设置为
123456789012 字节。

rlimit-cpu 123
以秒为单位设置最大 CPU 时间。

rlimit-fsize 1024
设置一个进程可以创建的最大文件大小为
1024 字节。

rlimit-nproc 1000
设置
调用进程的真实用户ID可以创建的最大进程数为1000。

rlimit-nofile 500
设置一个进程可以打开的最大文件数
为500。

rlimit-sigpending 200
设置最大数可以为调用进程的真实用户 ID创建的进程数增加到 200。

timeout hh:mm:ss
在时间过去后自动杀死沙箱。时间以小时/分/秒格式指定。

用户环境
allusers
所有用户主目录都在沙箱内可见。默认情况下,只有当前用户主目录可见。

env name=value
设置环境变量。示例:

env LD_LIBRARY_PATH=/opt/test/lib
env CFLAGS="-W -Wall -Werror"

ipc-namespace
启用 IPC 命名空间。

name sandboxname
设置沙箱名称。示例:

名称浏览器

no3d 禁用 3D 硬件加速。

noautopulse
禁用自动 ~/.config/pulse init,用于复杂的设置,例如作为远程脉冲服务器或非标准套接字路径。

nodvd 禁用 DVD 和音频 CD 设备。

nogroups
禁用补充用户组

nosound
禁用声音系统。

notv 禁用 DVB(数字视频广播)电视设备。

nou2f 禁用 U2F 设备。

novideo
禁用视频设备。

shell none
直接运行程序,无需shell。

网络
配置文件中提供的网络功能。

defaultgw 地址
使用此地址作为新网络名称中的默认网关 -
空间。

dns 地址
为沙箱设置 DNS 服务器。最多可以定义三个 DNS 服务器。

主机
名 为沙箱设置主机名。

hosts-file 文件
将文件用作 /etc/hosts。

ip address
将 IP地址分配给由net 命令定义的最后一个网络接口。默认情况下会分配一个默认网关。

示例:
net eth0
ip 10.10.20.56

ip none 最后
没有配置IP地址和默认网关接口由 net 命令定义。如果您打算在沙箱中启动外部 DHCP 客户端,请使用此选项。

示例:
net eth0
ip none

ip dhcp
获取net 命令定义的最后一个接口的 IP 地址和默认网关,并根据DHCP 响应设置 DNS 服务器。此命令需要安装 ISCdhclient DHCP 客户端,并将在沙箱内自动启动它。

示例:
net br0
ip dhcp

如果 DHCP 服务器设置为为客户端配置 DNS 服务器,则该命令不应与 dns命令结合使用,因为手动指定的 DNS 服务器将被覆盖。

当沙箱终止时,DHCP 客户端不会释放 DHCP 租用。如果您的 DHCP 服务器要求显式释放租用,请考虑运行 DHCP 客户端并结合 net none 命令手动释放租用。

ip6 address
将 IPv6地址分配给由net 命令定义的最后一个网络接口。

示例:
net eth0
ip6 2001:0db8:0:f101::1/64

ip6 dhcp
获取net命令定义的最后一个接口的IPv6地址和默认网关,并根据DHCP响应设置DNS服务器. 此命令需要安装 ISCdhclient DHCP 客户端,并将在沙箱内自动启动它。

示例:
net br0
ip6 dhcp

此命令不应与 dns com-
如果DHCP服务器设置为客户端配置DNS服务器,因为手动指定的DNS服务器将被覆盖。

当沙箱终止时,DHCP 客户端不会释放 DHCP 租用。如果您的 DHCP 服务器要求显式释放租用,请考虑运行 DHCP 客户端并手动释放租用。

iprange address,address
将提供范围内的 IP地址分配给 net 命令定义的最后一个网络接口。默认情况下会分配一个默认网关。

例子:

net eth0
iprange 192.168.1.150,192.168.1.160

mac address
为net 命令定义的最后一个网络接口分配 MAC 地址。

machine-id
/etc/machine-id 文件中的欺骗 ID 号 -在沙箱内生成一个新的随机 ID 。

mtu number
为net 命令定义的最后一个网络接口分配一个 MTU 值。

net bridge_interface
启用新的网络命名空间并将其连接到此网桥接口。除非用选项 --ip 和 --defaultgw 指定,否则IP 地址和默认网关将自动分配给沙箱。IP 地址在分配前使用 ARP 进行验证。配置为默认网关的地址为
网桥设备IP地址。最多可以定义四个 --net 网桥设备。允许混合使用网桥和 macvlan 设备。

net ethernet_interface|wireless_interface
启用新的网络命名空间并使用标准 Linux macvlan 或 ipvlan 驱动程序将其连接到该以太网接口。联合国人
与选项--ip和--defaultgw,一个IP地址指定的少并且默认网关将自动分配给沙箱。IP 地址在分配前使用 ARP 进行验证。配置为默认网关的地址是主机的默认网关。最多可以定义四个 --net 设备。允许混合使用网桥和 macvlan 设备。

net none
启用一个新的、未连接的网络命名空间。新命名空间中唯一可用的接口是新的环回接口 (lo)。使用此选项拒绝对不需要网络访问的程序进行网络访问。

网络tap_interface
启用新的网络命名空间并使用标准 Linux macvlan 驱动程序将其连接到此以太网分路器接口。如果tap接口没有配置,沙箱就不会尝试配置沙箱内部的接口。请使用 ip、net-mask 和 defaultgw 来指定配置。

netfilter
如果创建了新的网络命名空间,则启用默认网络过滤器。

netfilter filename
如果创建了新的网络命名空间,则在 filename 中启用网络过滤器。

网络掩码地址

当您要在新命名空间中分配 IP 地址并且未
配置--net 指定的父接口时,请使用此选项。还
必须添加IP 地址和默认网关地址。

veth-name name
将此名称用于连接到网桥的接口用于--net=bridge_interface 命令,而不是默认名称。

其他确定性退出代码始终以第一个孩子的退出状态退出 firejail。默认行为是使用最终孩子的退出状态退出,这可能是不确定的。

join-or-start sandboxname
加入由名称标识的沙箱或开始一个新的沙箱。

如果
存在指定名称的沙箱,则与“firejail --join=sandboxname”命令相同,否则与“name sandboxname”相同。



{{collectdata}}

网友评论0