Firejail - Linuxで信頼できないアプリケーションを安全に実行する


異なる環境で十分にテストされていないアプリケーションを使用したいことがあるかもしれませんが、それでも使用する必要があります。そのような場合、システムのセキュリティを気にするのが普通です。 Linuxでできることの1つは、サンドボックスでアプリケーションを使用することです。

サンドボックス化」は、限られた環境でアプリケーションを実行する機能です。そのようにして、アプリケーションは実行するのに必要とされるより狭い量のリソースを提供される。 Firejail というアプリケーションのおかげで、信頼できないアプリケーションを安全にLinuxで実行できます。

Firejail は、 Linuxネームスペース seccomp-bpfを使用して信頼できないプログラムの実行環境を制限することで、セキュリティ侵害の危険性を低減するSUID(Set Owner User ID)アプリケーションです。

プロセスとそのすべての子孫が、ネットワークスタック、プロセステーブル、マウントテーブルなど、グローバルに共有されているカーネルリソースに関する独自の秘密ビューを持つようにします。

ある[ Firejail が使用する機能のいくつか:

  • Linux namespaces
  • Filesystem container
  • Security filters
  • Networking support
  • Resource allocation

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

既存のセキュリティプロファイルを拡張したい場合は、プロファイルへのパスを指定してincludeを使用し、後で行を追加することができます。これは次のようになります。

$ cat ~/.config/firejail/vlc.profile

include /etc/firejail/vlc.profile
net none

アプリケーションのアクセスを特定のディレクトリに制限したい場合は、ブラックリストルールを使用して正確にそれを実現できます。たとえば、セキュリティプロファイルに次のものを追加できます。

blacklist ${HOME}/Documents

同じ結果を得るための別の方法は実際にあなたが制限したいフォルダへのフルパスを記述することです:

blacklist /home/user/Documents

セキュリティプロファイルを設定するには、さまざまな方法があります。たとえば、アクセスの禁止、読み取り専用アクセスの許可などです。カスタムプロファイルの作成に興味がある場合は、次のfirejailの指示を確認してください。

Firejail は、システムを保護したいセキュリティ志向のユーザーにとって素晴らしいツールです。