当前位置: 首页>>技术教程>>正文


保护您的系统。在Firejail中运行浏览器

, ,

目的

安装Firejail并将其用于与开放Internet交互的沙箱应用程序(例如Web浏览器)。

发行版

这将适用于任何当前的Linux发行版。

要求

具有root特权的有效Linux安装。

困难

简单

约定

  • -要求给出linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo命令
  • $-要求给出linux命令以普通非特权用户身份执行

介绍

对您的Linux系统的最大威胁是Web浏览器。当您考虑它时,它是很有意义的。浏览器是具有执行代码功能的大型复杂软件,它可以访问开放的Internet并执行与之接触的几乎所有内容。

解决此问题的最佳方法是分隔浏览器或任何其他Internet-facing应用程序,使其远离系统的其余部分。这样,如果受到损害,它几乎不会造成太大的损害。那就是Firejail的目的。 Firejail是一个沙箱程序,它允许程序使用自己的一组参数在各个沙箱中运行,从而限制了它们与系统其余部分的联系。 Firejail易于使用,除了Fedora和CentOS之外,几乎所有主要发行版的存储库中都可以使用Firejail。

安装Firejail

Debian /Ubuntu

$ sudo apt install firejail

Fedora /CentOS

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

# rpm -i firejail_X.Y-Z.x86_64.rpm

OpenSUSE

# zypper install firejail

Arch Linux

# pacman -S firejail

Gentoo

# emerge --ask firejail

基本用法

要通过Firejail运行应用程序,您仅需在命令前添加前缀firejail

$ firejail firefox

Firefox将像通常那样启动,但是包含在它自己的沙箱中。这几乎可以与您想到的任何应用程序一起使用,包括命令行应用程序。

$ firejail tar xpf somefile.tar.gz

只要应用程序运行,Firejail就会保持运行状态。即使您使用的将打开一段时间的东西,也不必担心Firejail停止运行和应用程序不安全的情况。实际上,如果确实发生了这种情况,该应用程序也将停止。您还可以将Firejail与图形密集型程序一起使用。如果有的话,这不会使它们减慢太多。

$ firejail wine64 '~/.wine/drive_c/Program Files (x86)/World of Warcraft/Wow-64.exe'

传递参数Firejail中的标志提供了大量功能。您可能永远不会使用它们中的大多数,但是您当然可以在Firejail的产品中检查它们man页。这里详细介绍的这对夫妇是最常见的。

–seccomp

--seccomp标志告诉Firejail过滤并阻止任何数量的系统调用。它具有自己的默认系统调用列表,默认情况下将阻止该列表,但您也可以使用--seccomp=syscall,syscall。只需添加--seccomp您的常规Firejail命令可以使用它。

$ firejail --seccomp firefox

– 私人的

--private标志的行为有点像网络浏览器中的私有窗口。它在临时存储中创建一个单独的沙箱,并在关闭应用程序后将其自身删除。

$ firejail --private firefox

当然,您可以将它们串在一起。

$ firejail --seccomp --private firefox

Firejail的个人资料

Firejail对通常运行它的大多数程序都具有独立的配置。它将它们称为”profiles.”。无论何时运行相应的程序,这些配置文件默认都会将特定的标志和配置位传递给Firejail。您无需为Firejail进行任何操作即可使用其默认配置文件。如果要修改配置文件或创建自己的配置文件,可以将其复制到本地目录,网址为:~/.config/firejail/

Firejail默认

有几种方法可以使Firejail在默认情况下与程序一起运行。最简单的方法可能是修改您打算与Firejail一起使用的程序的启动器。但是,这可能很乏味,并且您不一定需要这样做。如果您想让Firejail与每一个具有默认配置文件的程序,您可以以root身份运行一个简单的命令,Firejail会自行设置。

# firecfg

如果您默认情况下不使用Firejail来处理如此广泛的程序,则可以手动设置所需的程序。

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

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

总结思想

Firejail是在Linux上分隔应用程序并隔离潜在漏洞的极好方法,甚至可以在发生之前将其隔离。它也有可能阻止bug带来的影响不仅限于它们所影响的程序。简单易用,没有理由运行Firejail您的系统。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9736.html,未经允许,请勿转载。