Firejail - Linux で信頼できないアプリケーションを安全に実行する
場合によっては、さまざまな環境で十分にテストされていないアプリケーションを使用しなければならない場合があります。このような場合、システムのセキュリティを心配するのは当然のことです。 Linux でできることの 1 つは、 アプリケーションをサンドボックスで使用することです。
「サンドボックス」とは、限られた環境でアプリケーションを実行する機能です。これにより、アプリケーションの実行に必要なリソースが限られた量で提供されます。 Firejail というアプリケーションのおかげで、信頼できないアプリケーションを Linux で安全に実行できます。
Firejail は SUID (Set Owner User ID) アプリケーションであり、Linux 名前空間 と seccomp-bpf を使用して信頼できないプログラムの実行環境を制限することでセキュリティ違反の危険を減らします。 です。
これにより、プロセスとそのすべての子孫が、ネットワーク スタック、プロセス テーブル、マウント テーブルなど、グローバルに共有されるカーネル リソースの独自のシークレット ビューを持つようになります。
Firejail が使用する機能の一部:
- Linux 名前空間
- ファイルシステムコンテナ
- セキュリティフィルター
- ネットワーキングのサポート
- 資源の配分
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
同じ結果を達成するもう 1 つの方法は、制限したいフォルダーへのフルパスを実際に記述することです。
blacklist /home/user/Documents
アクセスを禁止したり、読み取り専用アクセスを許可したりするなど、セキュリティ プロファイルを構成するにはさまざまな方法があります。カスタム プロファイルの構築に興味がある場合は、次の firejail の手順を確認してください。
Firejail は、システムを保護したいセキュリティ重視のユーザーにとって素晴らしいツールです。