网站搜索

Firejail - 在 Linux 中安全运行不受信任的应用程序


有时您可能想使用尚未在不同环境中经过充分测试的应用程序,但又必须使用它们。在这种情况下,担心系统的安全性是正常的。在 Linux 中可以做的一件事是在沙箱中使用应用程序。

沙盒”是指在有限环境中运行应用程序的能力。这样,应用程序就可以提供运行所需的大量资源。借助名为 Firejail 的应用程序,您可以在 Linux 中安全地运行不受信任的应用程序。

Firejail 是一个 SUID(设置所有者用户 ID)应用程序,它通过使用 Linux 命名空间seccomp-bpf 限制不受信任程序的运行环境来减少安全漏洞的风险

它使进程及其所有后代拥有自己的全局共享内核资源的秘密视图,例如网络堆栈、进程表、挂载表。

Firejail 使用的一些功能:

  • Linux 命名空间
  • 文件系统容器
  • 安全过滤器
  • 网络支持
  • 资源分配

有关 Firejail 功能的详细信息可以在官方页面中找到。

如何在 Linux 中安装 Firejail

可以通过使用 git 命令从项目的 github 页面下载最新的包来完成安装,如图所示。

git clone https://github.com/netblue30/firejail.git
cd firejail
./configure && make && sudo make install-strip

如果您的系统上没有安装git,您可以使用以下命令安装它:

sudo apt install git  [On Debian/Ubuntu]
yum install git       [On CentOS/RHEL]
dnf install git       [On Fedora 22+]

安装 firejail 的另一种方法是下载与您的 Linux 发行版关联的软件包,并使用其软件包管理器进行安装。文件可以从项目的 SourceForge 页面下载。下载文件后,您可以使用以下命令安装它:

sudo dpkg -i firejail_X.Y_1_amd64.deb   [On Debian/Ubuntu]
sudo rpm -i firejail_X.Y-Z.x86_64.rpm   [On CentOS/RHEL/Fedora]

如何在 Linux 中使用 Firejail 运行应用程序

您现在已准备好使用 firejail 运行您的应用程序。这是通过启动终端并在您要运行的命令之前添加 firejail 来完成的。

这是一个例子:

firejail firefox    #start Firefox web browser
firejail vlc        # start VLC player

创建安全配置文件

Firejail 包含许多针对不同应用程序的安全配置文件,它们存储在:

/etc/firejail

如果您从源代码构建了项目,则可以在以下位置找到配置文件:

path-to-firejail/etc/

如果您使用过 rpm/deb 软件包,您可以在以下位置找到安全配置文件:

/etc/firejail/

用户应将其个人资料放置在以下目录中:

~/.config/firejail

如果您想扩展现有的安全配置文件,您可以使用包含配置文件的路径,然后添加您的行。这应该看起来像这样:

cat ~/.config/firejail/vlc.profile

include /etc/firejail/vlc.profile
net none

如果您希望限制应用程序对特定目录的访问,您可以使用黑名单规则来实现这一点。例如,您可以将以下内容添加到您的安全配置文件中:

blacklist ${HOME}/Documents

实现相同结果的另一种方法是实际描述您想要限制的文件夹的完整路径:

blacklist /home/user/Documents

您可以通过多种不同的方式配置您的安全配置文件,例如禁止访问、允许只读访问等。如果您有兴趣构建自定义配置文件,您可以查看以下 firejail 说明。

Firejail 对于想要保护系统的具有安全意识的用户来说是一个很棒的工具。