目的
安装Firejail并将其用于与开放Internet交互的沙箱应用程序(例如Web浏览器)。
发行版
这将适用于任何当前的Linux发行版。
要求
具有root特权的有效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您的系统。