这是命令 firejail,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
Firejail - Linux 命名空间沙箱程序
概要
启动沙箱:
firejail [选项] [程序和参数]
现有沙箱的网络流量整形:
火狱--带宽={ | } 带宽命令
监控:
firejail {--list | --netstats | --top | - 树}
杂:
火狱{-? | --debug-caps | --debug-errnos | --debug-syscalls | --调试协议
| --帮助 | - 版本}
商品描述
Firejail 是一个 SUID 沙盒程序,可通过以下方式降低安全漏洞的风险
使用Linux命名空间限制不受信任应用程序的运行环境,
seccomp-bpf 和 Linux 功能。 它允许进程及其所有后代拥有
他们自己对全局共享内核资源的私有视图,例如网络堆栈,
进程表,安装表。 Firejail 可以在 SELinux 或 AppArmor 环境中工作,并且
它与 Linux 控制组集成。
该软件是用 C 语言编写的,几乎没有依赖关系,可以在任何具有以下功能的 Linux 计算机上运行
3.x 内核版本或更新版本。 它可以沙箱任何类型的进程:服务器、图形
应用程序,甚至用户登录会话。
Firejail 允许用户使用安全配置文件管理应用程序安全。 每个
profile 为特定应用程序或应用程序组定义了一组权限。
该软件包括许多更常见的 Linux 程序的安全配置文件,例如
如 Mozilla Firefox、Chromium、VLC、Transmission 等。
用法
在没有任何选项的情况下,沙箱包含在新安装中构建的 chroot 文件系统
命名空间,以及新的 PID 和 UTS 命名空间。 可以添加 IPC、网络和用户命名空间
使用命令行选项。 默认的 Firejail 文件系统基于主机
主目录以只读方式安装的文件系统。 仅有的 /主页 和 / tmp目录 是可写的。
启动时,Firejail 尝试根据名称查找安全配置文件
应用。 如果找不到合适的配置文件,Firejail 将使用默认配置文件。
默认配置文件非常严格。 如果应用程序不起作用,请使用
--noprofile 选项来禁用它。 有关更多信息,请参阅 保安 PROFILES
部分。
如果未指定程序参数,Firejail 将启动 / bin / bash 贝壳。 例子:
$ firejail [OPTIONS] # 开始一个 / bin / bash 壳
$ firejail [OPTIONS] firefox # 启动 Mozilla Firefox
# sudo firejail [选项] /etc/init.d/nginx start
配置
-- 发出选项结束的信号并禁用进一步的选项处理。
--带宽=名称
为按名称标识的沙箱设置带宽限制,请参阅 交通 成型
部分了解更多详情。
--带宽=pid
为 PID 标识的沙箱设置带宽限制,请参阅 交通 成型 部分
,了解更多详情。
--bind=目录名1,目录名2
在 dirname1 之上挂载绑定 dirname2。 此选项仅在运行时可用
沙箱作为根。
示例:
# firejail --bind=/config/www,在/ var / WWW
--bind=文件名1,文件名2
在文件名 1 的顶部挂载绑定文件名 2。 此选项仅在以下情况下可用
以 root 身份运行。
示例:
# firejail --bind=/config/etc/passwd,/ etc / passwd文件
--blacklist=目录名或文件名
黑名单目录或文件。
示例:
$火狱--黑名单=/宾 --黑名单=/ usr / sbin
$火狱--黑名单=〜/.mozilla
$ firejail "--blacklist=/home/username/我的虚拟机"
-c 执行命令并退出。
--大写 Linux 功能是一个内核功能,旨在将 root 权限拆分为
一组不同的特权。 可以启用或禁用这些权限
独立运行,从而限制以 root 身份运行的进程可以在
系统。
默认情况下,root 程序在启用所有功能的情况下运行。 --caps 选项禁用
以下功能:CAP_SYS_MODULE、CAP_SYS_RAWIO、CAP_SYS_BOOT、
CAP_SYS_NICE、CAP_SYS_TTY_CONFIG、CAP_SYSLOG、CAP_MKNOD、CAP_SYS_ADMIN。 过滤器
应用于沙箱中启动的所有进程。
示例:
$ sudo firejail --caps "/etc/init.d/nginx start && sleep inf"
--caps.drop=全部
删除在沙箱中运行的进程的所有功能。 这个选项是
推荐用于运行 GUI 程序或任何其他不需要 root 的程序
特权。 它是沙箱安装不受信任程序的必备选项
来自非官方来源——例如游戏、Java 程序等。
示例:
$ firejail --caps.drop=所有 warzone2100
--caps.drop=能力,能力,能力
定义自定义黑名单 Linux 功能过滤器。
示例:
$ firejail --caps.keep=net_broadcast,net_admin,net_raw
--caps.keep=能力,能力,能力
定义自定义白名单 Linux 功能过滤器。
示例:
$ sudo firejail --caps.keep=chown,net_bind_service,setgid,\setuid
/etc/init.d/nginx 启动
关于混合 --whitelist 和 --read-only 选项的简短说明。 白名单
目录应该独立地设置为只读。 使父目录读取-
only,不会使白名单只读。 例子:
$火狱--白名单=〜/工作 --只读=~/ --只读=〜/工作
--caps.print=名称
打印按名称标识的沙箱的 caps 过滤器。
示例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --caps.print=mygame
--caps.print=pid
打印由 PID 标识的沙箱的 caps 过滤器。
示例:
$ firejail --list
3272:netblue:firejail --私人火狐
$火狱--caps.print=3272
--cgroup=任务文件
将沙箱放在指定的控制组中。 任务文件是完整路径
cgroup 任务文件。
示例:
# firejail --cgroup=/sys/fs/cgroup/g1/tasks
--chroot=目录名
将沙箱chroot 到根文件系统中。 如果沙箱作为常规启动
用户、默认 seccomp 和功能过滤器已启用。
示例:
$ firejail --chroot=/media/ubuntu warzone2100
--cpu=cpu 编号,cpu 编号,cpu 编号
设置 CPU 亲和性。
示例:
$ firejail --cpu=0,1 手刹
--csh 使用 /bin/csh 作为默认用户 shell。
示例:
$火狱--csh
-调试
打印调试消息。
示例:
$ firejail --调试火狐
--调试黑名单
调试黑名单。
示例:
$ firejail --debug-blacklists 火狐
--调试上限
打印当前 Firejail 软件构建中所有已识别的功能并退出。
示例:
$ firejail --debug-caps
--调试检查文件名
调试文件名检查。
示例:
$ firejail --debug-check-文件名 firefox
--调试错误
打印当前 Firejail 软件构建中所有已识别的错误编号并退出。
示例:
$ firejail --debug-errnos
--调试协议
打印当前 Firejail 软件构建中所有已识别的协议并退出。
示例:
$ firejail --调试协议
--debug-系统调用
打印当前 Firejail 软件构建中所有已识别的系统调用并退出。
示例:
$ firejail --debug-系统调用
--调试白名单
调试白名单。
示例:
$ firejail --debug-白名单 firefox
--defaultgw=地址
将此地址用作新网络命名空间中的默认网关。
示例:
$ firejail --net=eth0 --defaultgw=10.10.20.1 火狐
--dns=地址
为沙箱设置 DNS 服务器。 最多可以定义三个 DNS 服务器。 用这个
如果您不信任网络上的 DNS 设置,请选择此选项。
示例:
$ firejail --dns=8.8.8.8 --dns=8.8.4.4 火狐
--dns.print=名称
打印按名称标识的沙箱的 DNS 配置。
示例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --dns.print=mygame
--dns.print=pid
打印由 PID 标识的沙箱的 DNS 配置。
示例:
$ firejail --list
3272:netblue:firejail --私人火狐
$火狱--dns.print=3272
--env=名称=值
在新沙箱中设置环境变量。
示例:
$ firejail --env=LD_LIBRARY_PATH=/opt/test/lib
- 力量
默认情况下,如果 Firejail 在现有沙箱中启动,它将运行程序
在 bash shell 中。 此选项禁用此行为,并尝试启动
现有沙箱中的 Firejail。 失败的原因可能有很多,
例如,如果现有沙箱禁用管理功能、SUID 二进制文件或
如果它运行 seccomp。
--fs.print=名称
打印由名称标识的沙箱的文件系统日志。
示例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --fs.print=mygame
--fs.print=pid
打印由 PID 标识的沙箱的文件系统日志。
示例:
$ firejail --list
3272:netblue:firejail --私人火狐
$火狱--fs.print=3272
-?, - 帮帮我
打印选项结束退出。
--主机名=名称
设置沙箱主机名。
示例:
$ firejail --hostname=officepc 火狐
--忽略=命令
忽略配置文件中的命令。
示例:
$ firejail --ignore=shell --ignore=seccomp firefox
--interface=接口
在新的网络命名空间中移动接口。 最多可以有四个 --interface 选项
指定的。
示例:
$ firejail --interface=eth1 --interface=eth0.vlan100
--ip=地址
将 IP 地址分配给由 --net 选项定义的最后一个网络接口。 一种
默认网关是默认分配的。
示例:
$ firejail --net=eth0 --ip=10.10.20.56 火狐
--ip=无
没有为最后定义的接口配置 IP 地址和默认网关
通过 --net 选项。 如果您打算启动外部 DHCP,请使用此选项
沙箱中的客户端。
示例:
$ firejail --net=eth0 --ip=none
--ip6=地址
将 IPv6 地址分配给由 --net 选项定义的最后一个网络接口。
示例:
$ firejail --net=eth0 --ip6=2001:0db8:0:f101::1/64 firefox
--iprange=地址,地址
将提供范围内的 IP 地址分配给由以下定义的最后一个网络接口
一个 --net 选项。 默认情况下会分配一个默认网关。
示例:
$ firejail --net=eth0 --iprange=192.168.1.100,192.168.1.150
--ipc-命名空间
如果沙箱以普通用户身份启动,则启用新的 IPC 命名空间。 工控机
默认情况下,为以 root 身份启动的沙箱启用命名空间。
示例:
$ firejail --ipc-命名空间 firefox
--join=名称
加入由名称标识的沙箱。 默认情况下 / bin / bash shell 是在之后启动的
加入沙箱。 如果指定了程序,则该程序在沙箱中运行。
如果以普通用户身份发出 --join 命令,则配置所有安全过滤器
对于新进程,它们在沙箱中配置相同。 如果 --join 命令
以 root 身份发布,安全过滤器、cgroups 和 cpu 配置不是
应用于加入沙箱的进程。
示例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --join=mygame
--加入=pid
加入由进程 ID 标识的沙箱。 默认情况下 / bin / bash 外壳已启动
加入沙箱后。 如果指定了程序,则该程序在
沙箱。 如果以普通用户身份发出 --join 命令,则所有安全过滤器
新进程的配置与沙箱中的配置相同。 如果
--join 命令以 root、安全过滤器、cgroups 和 cpu 的身份发出
配置不适用于加入沙箱的进程。
示例:
$ firejail --list
3272:netblue:firejail --私人火狐
$火狱--加入=3272
--join-filesystem=名称
加入由名称标识的沙箱的挂载命名空间。 默认情况下 / bin / bash
加入沙箱后启动shell。 如果指定了程序,则程序
在沙箱中运行。 此命令仅对 root 用户可用。 安全
过滤器、cgroups 和 cpu 配置不适用于加入该进程的进程
沙箱。
--join-文件系统=pid
加入由进程 ID 标识的沙箱的挂载命名空间。 默认情况下
/ bin / bash 加入沙箱后启动shell。 如果指定了一个程序,
程序在沙箱中运行。 此命令仅对 root 用户可用。
安全过滤器、cgroups 和 cpu 配置不适用于进程
加入沙箱。
--join-network=名称
加入由名称标识的沙箱的网络命名空间。 默认情况下
/ bin / bash 加入沙箱后启动shell。 如果指定了一个程序,
程序在沙箱中运行。 此命令仅对 root 用户可用。
安全过滤器、cgroups 和 cpu 配置不适用于进程
加入沙箱。
--加入网络=pid
加入进程ID标识的沙箱的网络命名空间。 默认情况下
/ bin / bash 加入沙箱后启动shell。 如果指定了一个程序,
程序在沙箱中运行。 此命令仅对 root 用户可用。
安全过滤器、cgroups 和 cpu 配置不适用于进程
加入沙箱。
- 列表 列出所有沙箱,请参阅 监测 部分了解更多详情。
示例:
$ firejail --list
7015:netblue:firejail 火狐
7056:netblue:firejail --net=eth0 传输-gtk
7064:netblue:firejail --noroot xterm
$
--mac=地址
将 MAC 地址分配给由 --net 选项定义的最后一个网络接口。
示例:
$ firejail --net=eth0 --mac=00:11:22:33:44:55 火狐
--mtu=数字
将 MTU 值分配给由 --net 选项定义的最后一个网络接口。
示例:
$ firejail --net=eth0 --mtu=1492
--name=名字
设置沙箱名称。 几个选项,例如--join 和--shutdown,可以使用这个名称
识别沙箱。
示例:
$ firejail --name=mybrowser 火狐
--net=桥接口
启用新的网络命名空间并将其连接到此桥接接口。 除非
使用选项 --ip 和 --defaultgw 指定,IP 地址和默认网关
将自动分配给沙箱。 使用 ARP 验证 IP 地址
在分配之前。 配置为默认网关的地址是桥接设备
IP地址。 最多可以定义四个 --net 网桥设备。 混合桥和
macvlan 设备是允许的。
示例:
$ 须藤 brctl addbr br0
$ sudo ifconfig br0 10.10.20.1/24
$ 须藤 brctl addbr br1
$ sudo ifconfig br1 10.10.30.1/24
$火狱--net=br0 --net=br1
--net=以太网接口
启用新的网络命名空间并使用
标准的 Linux macvlan 驱动程序。 除非用选项 --ip 和 --defaultgw 指定,
IP 地址和默认网关将自动分配给沙箱。
IP 地址在分配前使用 ARP 进行验证。 地址配置为
默认网关是主机的默认网关。 最多可以连接四个 --net 设备
定义。 允许混合使用网桥和 macvlan 设备。
示例:
$ firejail --net=eth0 --ip=192.168.1.80 --dns=8.8.8.8 火狐
--net=无
启用一个新的、未连接的网络命名空间。 唯一可用的界面
new 命名空间是一个新的环回接口 (lo)。 使用此选项拒绝网络
访问不需要网络访问的程序。
示例:
$ firejail --net=none vlc
--网络过滤器
在新的网络命名空间中启用默认客户端网络过滤器。 新网络
命名空间是使用 --net 选项创建的。 如果新的网络命名空间不是
创建后,--netfilter 选项什么都不做。 默认过滤器如下:
*筛选
:输入下降[0:0]
:向前下降 [0:0]
:输出接受[0:0]
-A 输入 -i lo -j 接受
-A 输入 -m 状态 --state 相关,已建立 -j 接受
-A 输入 -p icmp --icmp 类型目的地不可达 -j 接受
-A INPUT -p icmp --icmp 类型超时 -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
犯罪
示例:
$ firejail --net=eth0 --netfilter 火狐
--netfilter=文件名
在新的网络命名空间中启用由 filename 指定的网络过滤器。 这
filter 文件格式是 iptables-save 和 iptable-restore 命令的格式。
使用 --net 选项创建新的网络命名空间。 如果一个新的网络命名空间
未创建,--netfilter 选项不执行任何操作。
/etc/firejail 目录中提供以下过滤器:
网络服务器.net 是一个网络服务器过滤器,只允许访问 TCP 端口 80 和
443。 例:
$ firejail --netfilter=/etc/firejail/webserver.net --net=eth0 \
/etc/init.d/apache2 开始
本地网 是禁止访问本地网络的客户端过滤器。 例子:
$ firejail --netfilter=/etc/firejail/nolocal.net \
--net=eth0 火狐
--netfilter6=文件名
在新的网络命名空间中启用由 filename 指定的 IPv6 网络过滤器。
过滤文件格式为ip6tables-save和ip6table-restore的格式
命令。 使用 --net 选项创建新的网络命名空间。 如果一个新的网络
未创建命名空间,--netfilter6 选项不执行任何操作。
--netstats
监控网络命名空间统计信息,请参见 监测 部分了解更多详情。
示例:
$火狱--netstats
PID 用户 RX(KB/s) TX(KB/s) 命令
1294 网蓝 53.355 1.473 火狱 --net=eth0 火狐
7383 netblue 9.045 0.112 firejail --net=eth0 传输
--noblacklist=目录名或文件名
禁用此目录或文件的黑名单。
示例:
$火狱
$ nc 字典.org 2628
重击: /bin/nc: 没有权限
$出口
$ firejail --noblacklist=/bin/nc
$ nc 字典.org 2628
220 pan.alephnull.com dictd 1.12.1/rf 在 Linux 3.14-1-amd64
--无组
禁用补充组。 如果没有此选项,将启用补充组
对于启动沙箱的用户。 对于 root 用户,补充组总是
禁用。
示例:
$标识
uid=1000(网蓝) gid=1000(网蓝)
groups=1000(netblue),24(cdrom),25(floppy),27(sudo),29(audio)
$ firejail --nogroups
父pid 8704,子pid 8705
子进程初始化
$标识
uid=1000(netblue) gid=1000(netblue) 组=1000(netblue)
$
--无配置文件
不要使用安全配置文件。
示例:
$火狱
读取配置文件 /etc/firejail/generic.profile
父pid 8553,子pid 8554
子进程初始化
[...]
$ firejail --noprofile
父pid 8553,子pid 8554
子进程初始化
[...]
- 无根
使用单个用户安装用户命名空间 - 当前用户。 root 用户没有
存在于新的命名空间中。 此选项需要 Linux 内核版本 3.8 或
较新。 --chroot 和 --overlay 配置不支持该选项,或者
对于以 root 身份启动的沙箱。
示例:
$ firejail --noroot
父pid 8553,子pid 8554
子进程初始化
$ ping google.com
ping: icmp open socket: 不允许操作
$
- 没有声音
禁用音响系统。
示例:
$ firejail --nosound Firefox
--输出=日志文件
标准输出日志记录和日志轮换。 将标准输出复制到日志文件,并保持其大小
使用日志轮换小于 500KB 的文件。 五个前缀为 .1 到 .5 的文件用于
回转。
示例:
$ firejail --output=sandboxlog / bin / bash
[...]
$ ls -l 沙箱日志*
-rw-r--r-- 1 netblue netblue 333890 六月 2 07:48 沙箱日志
-rw-r--r-- 1 netblue netblue 511488 六月 2 07:48 sandboxlog.1
-rw-r--r-- 1 netblue netblue 511488 六月 2 07:48 sandboxlog.2
-rw-r--r-- 1 netblue netblue 511488 六月 2 07:48 sandboxlog.3
-rw-r--r-- 1 netblue netblue 511488 六月 2 07:48 sandboxlog.4
-rw-r--r-- 1 netblue netblue 511488 六月 2 07:48 sandboxlog.5
- 覆盖
在当前文件系统之上挂载文件系统覆盖。 所有文件系统
修改进入覆盖层。 叠加层存储在 $HOME/.firejail 中
目录。
Linux 内核需要 OverlayFS 支持才能使用此选项。 覆盖FS
在 Linux 内核版本 3.18 中正式引入
示例:
$ firejail --overlay firefox
--overlay-tmpfs
在当前文件系统之上挂载文件系统覆盖。 所有文件系统
修改进入覆盖层,并在沙箱关闭时被丢弃。
Linux 内核需要 OverlayFS 支持才能使用此选项。 覆盖FS
在 Linux 内核版本 3.18 中正式引入
示例:
$ firejail --overlay-tmpfs 火狐
- 私人的
挂载新的 /根 和 /home/user 临时文件系统中的目录。 全部
当沙箱关闭时,修改将被丢弃。
示例:
$ firejail --私有火狐
--private=目录
使用目录作为用户家。
示例:
$ firejail --private=/home/netblue/firefox-home firefox
--private-bin=文件,文件
建立一个新的 /箱 在临时文件系统中,并复制列表中的程序。 这
相同的目录也被绑定挂载 /宾, / usr / bin 和 /usr/sbin。
示例:
$ firejail --private-bin=bash,sed,ls,cat
父pid 20841,子pid 20842
子进程初始化
$ls /箱
bash 猫 ls sed
--私有开发
创建一个新的 的/ dev 目录。 只有 dri, null, full, zero, tty, pts, ptmx, random,
urandom、log 和 shm 设备可用。
示例:
$ firejail --private-dev
父pid 9887,子pid 9888
子进程初始化
$ls 的/ dev
dri full log null ptmx pts random shm tty urandom 零
$
--private-etc=文件,目录
建立一个新的 /等 在临时文件系统中,并将文件和目录复制到
列表。 当沙箱关闭时,所有修改都将被丢弃。
示例:
$ firejail --private-etc=group,hostname,localtime,\
nsswitch.conf,密码,resolv.conf
--私人-tmp
在上面挂载一个空的临时文件系统 / tmp目录 目录。
示例:
$ firejail --private-tmp
--profile=文件名
从文件名加载自定义安全配置文件。 对于文件名,使用绝对路径或
相对于当前路径的路径。 有关更多信息,请参阅 保安 PROFILES
以下部分。
示例:
$ firejail --profile=我的个人资料
--profile-path=目录
使用此目录查找配置文件。 使用绝对路径或路径
主目录以 〜/。 欲了解更多信息,请参阅 保安 PROFILES
下面的部分和 搬迁 FILES in 男子 5 firejail配置文件.
示例:
$ firejail --profile-path=〜/我的个人资料
$ firejail --profile-path=/home/netblue/myprofiles
--protocol=协议,协议,协议
启用协议过滤器。 过滤器基于 seccomp 并检查第一个
套接字系统调用的参数。 识别值:unix、inet、inet6、netlink 和
包。
示例:
$ firejail --protocol=unix,inet,inet6 火狐
--protocol.print=名称
打印按名称标识的沙箱的协议过滤器。
示例:
$ firejail --name=mybrowser firefox &
[...]
$ firejail --print.print=mybrowser
UNIX、inet、inet6、netlink
--protocol.print=pid
打印由 PID 标识的沙箱的协议过滤器。
示例:
$ firejail --list
3272:netblue:firejail --私人火狐
$ firejail --protocol.print=3272
UNIX、inet、inet6、netlink
- 安静的
关闭 Firejail 的输出。
--read-only=目录名或文件名
将目录或文件设置为只读。
示例:
$ firejail --只读=〜/.mozilla 火狐
--rlimit-fsize=数字
设置进程可以创建的最大文件大小。
--rlimit-nofile=数字
设置一个进程可以打开的最大文件数。
--rlimit-nproc=数字
设置为真实用户ID可以创建的最大进程数
调用过程。
--rlimit-sigpending=数字
设置进程的最大挂起信号数。
- 扫描 ARP 扫描来自网络命名空间内的所有网络。 这使得有可能
检测当前主机上运行的 macvlan 内核设备驱动程序。
示例:
$ firejail --net=eth0 --scan
--seccomp
启用 seccomp 过滤器并将默认列表中的系统调用列入黑名单。 默认的
列表如下:mount、umount2、ptrace、kexec_load、kexec_file_load、
open_by_handle_at、init_module、finit_module、delete_module、iopl、ioperm、swapon、
交换、系统日志、process_vm_readv、process_vm_writev、sysfs、_sysctl、adjtimex、
时钟调整时间、lookup_dcookie、perf_event_open、fanotify_init、kcmp、add_key、
request_key、keyctl、uselib、acct、modify_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 和 chroot。
示例:
$火狱--seccomp
--seccomp=系统调用,系统调用,系统调用
启用 seccomp 过滤器,将默认列表和指定的系统调用列入黑名单
命令。
示例:
$ firejail --seccomp=utime,utimensat,utimes firefox
--seccomp.drop=系统调用,系统调用,系统调用
启用 seccomp 过滤器,并将命令指定的系统调用列入黑名单。
示例:
$ firejail --seccomp.drop=utime,utimensat,utimes
--seccomp.keep=系统调用,系统调用,系统调用
启用 seccomp 过滤器,并将命令指定的系统调用列入白名单。
示例:
$ firejail --shell=none --seccomp.keep=poll,select,[...] 传输-gtk
--seccomp. =系统调用,系统调用,系统调用
启用 seccomp 过滤器,并为命令指定的系统调用返回 errno。
示例:禁用删除文件的 Bash shell
$ firejail --seccomp.eperm=unlinkat
父pid 10662,子pid 10663
子进程初始化
$ 触摸测试文件
$ rm 测试文件
rm: 无法删除 `testfile': 不允许操作
--seccomp.print=名称
打印使用 --name 选项启动的沙箱的 seccomp 过滤器。
示例:
$ firejail --name=浏览器firefox &
$ firejail --seccomp.print=浏览器
SECCOMP 过滤器:
验证架构
EXAMINE_SYSCALL
黑名单 165 坐骑
黑名单 166 umount2
黑名单 101 ptrace
第246话
黑名单 304 open_by_handle_at
第175话
第 176 回
第 172 章
第173话
黑名单 167
黑名单 168 交换
黑名单 103 系统日志
黑名单 310 process_vm_readv
黑名单 311 process_vm_writev
黑名单 133 mknod
黑名单 139 sysfs
第156话
第159话
黑名单 305 clock_adjtime
黑名单 212 lookup_dcookie
黑名单 298 perf_event_open
黑名单 300 fanotify_init
返回_允许
$
--seccomp.print=pid
打印进程 ID 指定的沙箱的 seccomp 过滤器。 使用 --list 选项
获取所有活动沙箱的列表。
示例:
$ firejail --list
10786:netblue:firejail --name=浏览器firefox $ firejail --seccomp.print=10786
SECCOMP 过滤器:
验证架构
EXAMINE_SYSCAL
黑名单 165 坐骑
黑名单 166 umount2
黑名单 101 ptrace
第246话
黑名单 304 open_by_handle_at
第175话
第 176 回
第 172 章
第173话
黑名单 167
黑名单 168 交换
黑名单 103 系统日志
黑名单 310 process_vm_readv
黑名单 311 process_vm_writev
黑名单 133 mknod
黑名单 139 sysfs
第156话
第159话
黑名单 305 clock_adjtime
黑名单 212 lookup_dcookie
黑名单 298 perf_event_open
黑名单 300 fanotify_init
返回_允许
$
--shell=无
直接运行程序,无需用户 shell。
示例:
$ firejail --shell=none script.sh
--shell=程序
设置默认用户外壳。 使用此 shell 使用 -c shell 运行应用程序
选项。 例如“firejail --shell=/斌/破折号 firefox”将启动 Mozilla
Firefox 为“/斌/破折号 -c firefox”。默认情况下 Bash shell (/ bin / bash) 用来。
--zsh 和 --csh 等选项也可以设置默认 shell。
示例:$firejail --shell=/斌/破折号 脚本文件
--关机=名称
使用 --name 选项开始关闭沙箱。
示例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --shutdown=mygame
--关机=pid
关闭进程 ID 指定的沙箱。 使用 --list 选项获取列表
所有活动的沙箱。
示例:
$ firejail --list
3272:netblue:firejail --私人火狐
$ firejail --shutdown=3272
--tmpfs=目录名
在目录 dirname 上挂载 tmpfs 文件系统。 此选项仅在以下情况下可用
以 root 身份运行沙箱。
示例:
#firejail --tmpfs=/ VAR
- 最佳 监控 CPU 密集程度最高的沙箱,请参阅 监测 部分了解更多详情。
示例:
$ firejail --top
- 痕迹
跟踪打开、访问和连接系统调用。
示例:
$ firejail --trace wget -q www.debian.org
父pid 11793,子pid 11794
子进程初始化
1:bash:打开/dev/tty
1:wget:fopen64 /etc/wgetrc
1:wget:fopen / etc / hosts文件
1:wget:套接字 AF_INET SOCK_DGRAM IPPROTO_IP
1:wget:连接 8.8.8.8:53
1:wget:套接字 AF_INET SOCK_STREAM IPPROTO_IP
1:wget:连接 140.211.15.34:80
1:wget:fopen64索引.html.1
父母正在关闭,再见...
--跟踪日志
此选项启用审核列入黑名单的文件和目录。 发送了一条消息
syslog 以防访问文件或目录。
示例:
$ firejail --tracelog 火狐
示例消息:
$ 须藤尾 -f 在/ var / log / syslog的
[...]
3 月 11 日 43:25:70 debian firejail[26370]:黑名单违规 - 沙箱 XNUMX,exe
火狐,系统调用 open64,路径 / etc /阴影
3 月 11 日 46:17:70 debian firejail[26370]:黑名单违规 - 沙箱 XNUMX,exe
firefox,系统调用 opendir,路径 /启动
[...]
- 树 打印所有沙盒进程的树,请参阅 监测 部分了解更多详情。
示例:
$火狱--树
11903:netblue:firejail 冰鼬
11904:网蓝:冰鼬
11957:netblue:/usr/lib/iceweasel/插件容器
11969:netblue:firejail --net=eth0 传输-gtk
11970:网蓝:传输-gtk
--user=新用户
在启动沙箱之前切换用户。 此命令应以 root 身份运行。
示例:
# firejail --user=www-data
- 版
打印程序版本并退出。
示例:
$火狱--版本
火狱版本 0.9.27
--whitelist=目录名或文件名
白名单目录或文件。 此功能仅针对用户家实现, 的/ dev,
/半, /选择, / VAR及 / tmp目录 目录。
示例:
$火狱--白名单=〜/.mozilla --白名单=〜/下载
$火狱--白名单=/tmp/.X11-unix --whitelist=/dev/null
$ firejail "--whitelist=/home/username/我的虚拟机"
--zsh 使用 /usr/bin/zsh 作为默认用户 shell。
示例:
$火狱--zsh
交通 成型
网络带宽是在系统上运行的所有沙箱之间共享的昂贵资源。
流量整形允许用户通过控制数量来提高网络性能
流入和流出沙箱的数据。
Firejail 基于 Linux 命令 tc 实现了一个简单的限速整形器。 塑造者
在沙箱级别工作,并且只能用于配置了新网络的沙箱
命名空间。
设置速率限制:
firejail --bandwidth={name|pid} 设置网络下载上传
清除速率限制:
firejail --bandwidth={name|pid} 清除网络
库存状态:
firejail --bandwidth={name|pid} 状态
其中:
名称 - 沙箱名称
pid - 沙盒 pid
network - --net 选项使用的网络接口
下载 - 以 KB/s 为单位的下载速度(每秒千字节)
上传 - 以 KB/s 为单位的上传速度(每秒千字节)
示例:
$ firejail --name=mybrowser --net=eth0 firefox &
$ firejail --bandwidth=mybrowser 设置 eth0 80 20
$ firejail --bandwidth=mybrowser 状态
$ firejail --bandwidth=mybrowser 清除 eth0
监测
选项 --list 打印所有沙箱的列表。 每个流程条目的格式为
如下:
PID:用户:命令
选项 --tree 打印在沙箱中运行的进程树。 每个的格式
流程入口如下:
PID:用户:命令
选项 --top 类似于 UNIX top 命令,但它仅适用于沙箱。
选项 --netstats 打印安装新网络的活动沙箱的网络统计信息
命名空间。
下面列出了按字母顺序排列的 --top 和可用字段(列)
--netstat 选项:
命令
用于启动沙箱的命令。
CPU% CPU 使用率,自上次屏幕更新以来经过的 CPU 时间的沙箱份额
PID 控制沙箱的任务的唯一进程 ID。
Prcs 在沙箱中运行的进程数,包括控制进程。
RES 驻留内存大小 (KiB),沙盒非交换物理内存。 它是一个总和
在沙箱中运行的所有进程的 RES 值。
接收(KB/s)
网络接收速度。
SHR 共享内存大小 (KiB),它反映了与其他进程共享的内存。 它是一个
在沙箱中运行的所有进程的 SHR 值的总和,包括
控制过程。
发送(KB/s)
网络传输速度。
运行时间沙盒运行时间以小时:分钟:秒格式。
用户 沙箱的所有者。
保安 PROFILES
可以使用配置文件将多个命令行选项传递给程序。 火狱
选择配置文件如下:
1. 如果配置文件是由用户提供的 --profile 选项,则配置文件为
加载。 例子:
$ firejail --profile=/home/netblue/icecat.profileicecat
阅读简介 /home/netblue/icecat.profile
[...]
2. 如果与应用程序同名的配置文件存在于
〜/.config/firejail 目录或 /etc/firejail 中,加载配置文件。
〜/.config/firejail 优先于 /etc/firejail。 例子:
$ firejail冰猫
命令名称#icecat#
在 /home/netblue/.config/firejail 目录中找到 icecat 配置文件
读取配置文件 /home/netblue/.config/firejail/icecat.profile
[...]
3. 如果沙箱是由普通用户启动的,则使用 default.profile 文件,或者 server.profile
如果沙箱是由 root 启动的。 Firejail 在中查找这些文件
〜/.config/firejail 目录,然后是 /etc/firejail 目录。 禁用默认
配置文件加载,使用 --noprofile 命令选项。 例子:
$火狱
读取配置文件 /etc/firejail/generic.profile
父pid 8553,子pid 8554
子进程初始化
[...]
$ firejail --noprofile
父pid 8553,子pid 8554
子进程初始化
[...]
有关配置文件语法信息,请参阅 man 5 firejail-profile。
受限 SHELL
要配置受限外壳,请替换 / bin / bash 在 /etc/password 中使用 /usr/bin/firejail
需要限制的每个用户的文件。 或者,您可以指定
/usr/bin/firejail 在 adduser 命令中:
adduser --shell /usr/bin/firejail 用户名
登录时传递给 firejail 可执行文件的附加参数在
/etc/firejail/login.users 文件。
示例
火狱
开始定期 / bin / bash 沙箱中的会话。
火狱火狐
启动 Mozilla Firefox。
firejail——调试火狐
调试 Firefox 沙箱。
火狱——私人
开始 / bin / bash 会话与新的 tmpfs 主目录。
火狱--net=br0 ip=10.10.20.10
开始 / bin / bash 新网络命名空间中的会话。 会话连接到
主网使用br0桥接设备。 分配了 10.10.20.10 的 IP 地址
到沙箱。
火监狱 --net=br0 --net=br1 --net=br2
开始 / bin / bash 在新的网络命名空间中创建会话并将其连接到 br0、br1、
和 br2 主机桥接设备。
火狱——列表
列出所有沙盒进程。
使用 onworks.net 服务在线使用 firejail