首頁 > 軟體

Firejail - 在Linux中安全地執行不受信任的應用程式

2020-06-16 16:38:39

有時您可能希望使用在不同環境中未經過良好測試的應用程式,但您必須使用它們。在這種情況下,關注系統的安全性是正常的。在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是一個很棒的工具。


IT145.com E-mail:sddin#qq.com