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
...

点击查看剩余70%

{{collectdata}}

网友评论0