有時您可能希望使用在不同環境中未經過良好測試的應用程序,但您必須使用它們。在這種情況下,關注系統的安全性是正常的。在Linux中可以做的一件事是在沙箱中使用應用程序。
“沙盒”是在有限環境中運行應用程序的能力。這樣,應用程序就可以提供運行所需的大量資源。由於名為Firejail的應用程序,您可以安全地在Linux中運行不受信任的應用程序。
Firejail是一個SUID(設置所有者用戶ID)應用程序,它通過使用Linux命名空間和seccomp-bpf限制不受信任程序的運行環境來減少安全漏洞的暴露。
它使一個進程及其所有后代擁有自己的全局共享內核資源的秘密視圖,例如網絡堆棧,進程表,掛載表。
Firejail使用的一些功能:
- Linux名稱空間
- 文件系統容器
- 安全過濾器
- 網絡支持
- 資源分配
有關Firejail功能的詳細信息,請參閱官方頁面。
如何在Linux中安裝Firejail
可以使用git命令從項目的github頁面下載最新的軟件包來完成安裝,如圖所示。
linuxidc@linuxidc:~/www.linuxidc.com$ git clone https://github.com/netblue30/firejail.git 正克隆到 'firejail'... remote: Enumerating objects: 23, done. remote: Counting objects: 100% (23/23), done. remote: Compressing objects: 100% (18/18), done. remote: Total 38395 (delta 11), reused 11 (delta 5), pack-reused 38372 接收對象中: 100% (38395/38395), 9.82 MiB | 87.00 KiB/s, 完成. 處理 delta 中: 100% (30820/30820), 完成. linuxidc@linuxidc:~/www.linuxidc.com$ cd firejail linuxidc@linuxidc:~/www.linuxidc.com/firejail$ ./configure && make && sudo make install-strip checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o

如果您的系統上沒有安裝git,可以使用以下命令安裝它:
$ sudo apt install git [在 Debian/Ubuntu] # yum install git [在 CentOS/RHEL] # dnf install git [在 Fedora 22+]
安裝firejail的另一種方法是下載與Linux發行版相關聯的軟件包,並使用其軟件包管理器進行安裝。 可以從項目的SourceForge頁面下載文件。 下載文件后,可以使用以下命令安裝:
$ sudo dpkg -i firejail_X.Y_1_amd64.deb [在 Debian/Ubuntu] $ sudo rpm -i firejail_X.Y-Z.x86_64.rpm [在 CentOS/RHEL/Fedora]
如何在Linux中使用Firejail運行應用程序
您現在可以使用firejail運行應用程序了。 這是通過啟動終端並在您希望運行的命令之前添加firejail來實現的。
下面是一個例子:

$ firejail firefox #啟動 Firefox網絡瀏覽器 $ firejail vlc # 啟動 VLC 播放器
創建安全配置文件
Firejail包含許多針對不同應用程序的安全配置文件,它們存儲在:
/etc/firejail
如果您從源代碼構建項目,則可以在以下位置找到配置文件:
# path-to-firejail/etc/
如果您使用了rpm/deb軟件包,則可以在以下位置找到安全配置文件:
/etc/firejail/
用戶應將其配置文件放在以下目錄中:
~/.config/firejail
如果要擴展現有安全配置文件,可以使用包含配置文件路徑的include,然后添加行。 這應該是這樣的:
$ cat ~/.config/firejail/vlc.profile include /etc/firejail/vlc.profile net none
如果您希望限制應用程序訪問某個目錄,您可以使用黑名單規則來實現這一目標。 例如,您可以將以下內容添加到安全配置文件中:
blacklist ${HOME}/Documents
實現相同結果的另一種方法是實際描述您希望限制的文件夾的完整路徑:
blacklist /home/user/Documents
您可以通過許多不同的方式配置安全配置文件,例如禁止訪問,允許只讀訪問等。如果您有興趣構建自定義配置文件,可以查看以下firejail說明。
對於想要保護系統的安全用戶來說,Firejail是一個很棒的工具。
