これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド firejail です。
プログラム:
NAME
Firejail - Linux 名前空間サンドボックス プログラム
SYNOPSIS
サンドボックスを開始します。
firejail [オプション] [プログラムと引数]
既存のサンドボックスのネットワーク トラフィック シェーピング:
firejail --bandwidth={ | 帯域幅コマンド
モニタリング:
ファイアジェイル {--リスト | --netstats | --トップ | - 木}
その他:
ファイアジェイル {-? | --debug-caps | --debug-errnos | --debug-syscalls | --デバッグプロトコル
| --ヘルプ | - バージョン}
DESCRIPTION
Firejail は、セキュリティ侵害のリスクを軽減する SUID サンドボックス プログラムです。
Linux 名前空間を使用して信頼できないアプリケーションの実行環境を制限する
seccomp-bpf と Linux の機能。 これにより、プロセスとそのすべての子孫が
ネットワーク スタックなどのグローバルに共有されるカーネル リソースの独自のプライベート ビュー
プロセステーブル、マウントテーブル。 Firejail は SELinux または AppArmor 環境で動作でき、
Linux コントロール グループと統合されています。
このソフトウェアは事実上依存関係のない C で書かれているため、どの Linux コンピュータでも実行できます。
カーネル バージョン 3.x 以降。 サーバー、グラフィカルなど、あらゆるタイプのプロセスをサンドボックス化できます。
アプリケーション、さらにはユーザーのログインセッションまで。
Firejail を使用すると、ユーザーはセキュリティ プロファイルを使用してアプリケーションのセキュリティを管理できます。 それぞれ
プロファイルは、特定のアプリケーションまたはアプリケーションのグループに対する一連の権限を定義します。
このソフトウェアには、以下のような多くの一般的な Linux プログラムのセキュリティ プロファイルが含まれています。
Mozilla Firefox、Chromium、VLC、Transmission など
USAGE
オプションを指定しないと、サンドボックスは新しいマウントにビルドされた chroot ファイルシステムで構成されます。
名前空間、および新しい PID および UTS 名前空間。 IPC、ネットワーク、ユーザーの名前空間を追加可能
コマンドラインオプションを使用します。 デフォルトの Firejail ファイルシステムはホストに基づいています
メインディレクトリが読み取り専用でマウントされたファイルシステム。 のみ /ホーム / tmpに 書き込み可能です。
Firejail は起動時に、名前に基づいてセキュリティ プロファイルを検索しようとします。
応用。 適切なプロファイルが見つからない場合、Firejail はデフォルトのプロファイルを使用します。
デフォルトのプロファイルは非常に制限が厳しいです。 アプリケーションが動作しない場合は、次を使用してください
--noprofile オプションを使用して無効にします。 詳細については、を参照してください。 SECURITY プロフィール
のセクションから無料でダウンロードできます。
プログラム引数が指定されていない場合、Firejail が起動します /bin/bash シェル。 例:
$ firejail [オプション] # を開始します /bin/bash shell
$ firejail [OPTIONS] firefox # Mozilla Firefox の起動
# sudo firejail [オプション] /etc/init.d/nginx start
OPTIONS
-- オプションの終了を通知し、それ以降のオプション処理を無効にします。
--bandwidth=名前
名前で識別されるサンドボックスの帯域幅制限を設定します。を参照してください。 トラフィック シェーピング
詳細についてはセクションを参照してください。
--bandwidth=pid
PID によって識別されるサンドボックスの帯域幅制限を設定します。を参照してください。 トラフィック シェーピング
のガイドをご参照ください。
--bind=ディレクトリ名1,ディレクトリ名2
dirname1 の上に dirname2 をマウントバインドします。 このオプションは実行中にのみ使用できます。
rootとしてサンドボックスにアクセスします。
例:
# firejail --bind=/config/www,は/ var / WWWの
--bind=ファイル名1,ファイル名2
filename1 を filename2 の上にマウントバインドします。 このオプションは次の場合にのみ使用できます。
root として実行します。
例:
# firejail --bind=/config/etc/passwd,/etc/passwd
--blacklist=ディレクトリ名またはファイル名
ディレクトリまたはファイルをブラックリストに登録します。
例:
$ firejail --blacklist=/ sbin --ブラックリスト=/ usr / sbin
$ firejail --blacklist=~/.mozilla
$ firejail "--blacklist=/home/ユーザー名/私の仮想マシン"
-c コマンドを実行して終了します。
--キャップ Linux の機能は、root 権限を分割するように設計されたカーネル機能です。
一連の異なる特権。 これらの権限は有効または無効にすることができます
独立して、root として実行されているプロセスが実行できる内容を制限します。
システム。
デフォルトでは、ルート プログラムはすべての機能が有効になった状態で実行されます。 --caps オプションを無効にします
次の機能: CAP_SYS_MODULE、CAP_SYS_RAWIO、CAP_SYS_BOOT、
CAP_SYS_NICE、CAP_SYS_TTY_CONFIG、CAP_SYSLOG、CAP_MKNOD、CAP_SYS_ADMIN。 フィルター
サンドボックスで開始されるすべてのプロセスに適用されます。
例:
$ sudo firejail --caps "/etc/init.d/nginx start && sleep inf"
--caps.drop=all
サンドボックス内で実行されているプロセスのすべての機能を削除します。 このオプションは
GUI プログラムまたは root を必要としないその他のプログラムの実行に推奨
特権。 インストールされている信頼できないプログラムをサンドボックス化するための必須オプションです
ゲーム、Java プログラムなどの非公式ソースから。
例:
$ firejail --caps.drop=all warzone2100
--caps.drop=能力,能力,能力
カスタム ブラックリスト Linux 機能フィルターを定義します。
例:
$ firejail --caps.keep=net_broadcast,net_admin,net_raw
--caps.keep=能力,能力,能力
カスタム ホワイトリスト Linux 機能フィルターを定義します。
例:
$ sudo firejail --caps.keep=chown,net_bind_service,setgid,\ setuid
/etc/init.d/nginx スタート
--whitelist オプションと --read-only オプションの混合に関する短いメモ。 ホワイトリストに登録されています
ディレクトリは独立して読み取り専用にする必要があります。 親ディレクトリの読み取りを行う -
のみでは、ホワイトリストは読み取り専用にはなりません。 例:
$ firejail --whitelist=~/仕事 --read-only=~/ --read-only=~/仕事
--caps.print=名前
名前で識別されたサンドボックスの Caps フィルターを出力します。
例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --caps.print=mygame
--caps.print=pid
PID によって識別されるサンドボックスの Caps フィルターを出力します。
例:
$ firejail --list
3272:netblue:firejail --プライベート Firefox
$ firejail --caps.print=3272
--cgroup=タスクファイル
指定されたコントロール グループにサンドボックスを配置します。 タスクファイルはフルパスです
cgroupタスクファイル。
例:
# firejail --cgroup=/sys/fs/cgroup/g1/tasks
--chroot=ディレクトリ名
サンドボックスをルート ファイルシステムに chroot します。 サンドボックスを通常どおり起動した場合
ユーザー、デフォルトの seccomp および機能フィルターが有効になっています。
例:
$ firejail --chroot=/media/ubuntu warzone2100
--cpu=cpu 番号,cpu 番号,cpu 番号
CPUアフィニティを設定します。
例:
$ firejail --cpu=0,1 ハンドブレーキ
--csh /bin/csh をデフォルトのユーザー シェルとして使用します。
例:
$ firejail --csh
- デバッグ
デバッグメッセージを出力します。
例:
$ firejail --Firefox のデバッグ
--debug-ブラックリスト
ブラックリスト登録をデバッグします。
例:
$ firejail --debug-blacklists Firefox
--debug-caps
現在の Firejail ソフトウェア ビルドで認識されている機能をすべて出力して終了します。
例:
$ firejail --debug-caps
--デバッグチェックファイル名
ファイル名チェックをデバッグします。
例:
$ firejail --debug-check-filename Firefox
--debug-errnos
現在の Firejail ソフトウェア ビルドで認識されたすべてのエラー番号を出力して終了します。
例:
$ firejail --debug-errnos
--debug-プロトコル
現在の Firejail ソフトウェア ビルドで認識されているすべてのプロトコルを出力して終了します。
例:
$ firejail --debug-protocols
--debug-syscalls
現在の Firejail ソフトウェア ビルドで認識されたすべてのシステム コールを出力して終了します。
例:
$ firejail --debug-syscalls
--debug-whitelsts
ホワイトリストのデバッグ。
例:
$ firejail --debug-whitelists Firefox
--defaultgw=アドレス
このアドレスを新しいネットワーク名前空間のデフォルト ゲートウェイとして使用します。
例:
$ firejail --net=eth0 --defaultgw=10.10.20.1 Firefox
--dns=アドレス
サンドボックス用のDNSサーバーを設定します。 最大 XNUMX つの DNS サーバーを定義できます。 これを使って
ネットワーク上の DNS 設定を信頼できない場合は、このオプションを使用してください。
例:
$ firejail --dns=8.8.8.8 --dns=8.8.4.4 Firefox
--dns.print=名前
名前で識別されたサンドボックスの DNS 構成を出力します。
例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --dns.print=mygame
--dns.print=pid
PID によって識別されるサンドボックスの DNS 構成を出力します。
例:
$ firejail --list
3272:netblue:firejail --プライベート Firefox
$ firejail --dns.print=3272
--env=名前=値
新しいサンドボックスに環境変数を設定します。
例:
$ firejail --env=LD_LIBRARY_PATH=/opt/test/lib
- 力
デフォルトでは、Firejail が既存のサンドボックスで開始されると、プログラムが実行されます。
bash シェルで。 このオプションはこの動作を無効にし、開始を試みます。
既存のサンドボックス内の Firejail。 失敗する原因は色々考えられますが、
たとえば、既存のサンドボックスが管理機能、SUID バイナリ、または
seccomp を実行する場合。
--fs.print=名前
名前で識別されたサンドボックスのファイルシステム ログを出力します。
例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --fs.print=mygame
--fs.print=pid
PID で識別されるサンドボックスのファイルシステム ログを出力します。
例:
$ firejail --list
3272:netblue:firejail --プライベート Firefox
$ firejail --fs.print=3272
-?, - 助けて
印刷オプションを終了して終了します。
--ホスト名=名前
サンドボックスのホスト名を設定します。
例:
$ firejail --hostname=officepc Firefox
--ignore=コマンド
プロファイルファイル内のコマンドを無視します。
例:
$ firejail --ignore=shell --ignore=seccomp Firefox
--interface=インターフェイス
インターフェイスを新しいネットワーク名前空間に移動します。 最大 XNUMX つの --interface オプションを指定できます
指定。
例:
$ firejail --interface=eth1 --interface=eth0.vlan100
--ip=アドレス
--net オプションで定義された最後のネットワーク インターフェイスに IP アドレスを割り当てます。 あ
デフォルトゲートウェイはデフォルトで割り当てられます。
例:
$ firejail --net=eth0 --ip=10.10.20.56 Firefox
--ip=なし
最後に定義されたインターフェイスには IP アドレスもデフォルト ゲートウェイも構成されていません
--net オプションによって。 外部 DHCP を開始する場合は、このオプションを使用します。
サンドボックス内のクライアント。
例:
$ firejail --net=eth0 --ip=none
--ip6=アドレス
--net オプションで定義された最後のネットワーク インターフェイスに IPv6 アドレスを割り当てます。
例:
$ firejail --net=eth0 --ip6=2001:0db8:0:f101::1/64 firefox
--iprange=アドレス,アドレス
指定された範囲の IP アドレスを、によって定義された最後のネットワーク インターフェイスに割り当てます。
--net オプション。 デフォルトでデフォルトゲートウェイが割り当てられます。
例:
$ firejail --net=eth0 --iprange=192.168.1.100,192.168.1.150
--ipc-名前空間
サンドボックスが通常のユーザーとして開始された場合は、新しい IPC 名前空間を有効にします。 IPC
root として起動されたサンドボックスでは、名前空間がデフォルトで有効になります。
例:
$ firejail --ipc-namespace Firefox
--参加=名前
名前で識別されるサンドボックスに参加します。 デフォルトでは、 /bin/bash シェルはその後に起動されます
サンドボックスに参加します。 プログラムが指定されている場合、そのプログラムはサンドボックス内で実行されます。
--join コマンドが通常のユーザーとして発行された場合、すべてのセキュリティ フィルターが設定されます
新しいプロセスの場合、サンドボックスで構成されているものと同じになります。 --join コマンドの場合
root として発行されると、セキュリティ フィルター、cgroup、および CPU の設定は無効になります。
サンドボックスに参加するプロセスに適用されます。
例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --join=mygame
--join=pid
プロセス ID で識別されるサンドボックスに参加します。 デフォルトでは、 /bin/bash シェルが開始されました
サンドボックスに参加した後。 プログラムが指定されている場合、そのプログラムは
サンドボックス。 --join コマンドが通常のユーザーとして発行された場合、すべてのセキュリティ フィルターが有効になります。
サンドボックスで構成されているのと同じように、新しいプロセス用に構成されます。 もし
--join コマンドは、root、セキュリティ フィルター、cgroups、および cpus として発行されます。
構成は、サンドボックスに参加するプロセスには適用されません。
例:
$ firejail --list
3272:netblue:firejail --プライベート Firefox
$ firejail --join=3272
--join-ファイルシステム=名前
名前で識別されるサンドボックスのマウント名前空間に参加します。 デフォルトでは、 /bin/bash
シェルはサンドボックスに参加した後に起動されます。 プログラムを指定した場合、そのプログラムは
サンドボックス内で実行されます。 このコマンドは root ユーザーのみが使用できます。 安全
フィルター、cgroup、および CPU 構成は、プロセスに参加するプロセスには適用されません。
サンドボックス。
--join-filesystem=pid
プロセス ID で識別されるサンドボックスのマウント名前空間に参加します。 デフォルトでは、
/bin/bash シェルはサンドボックスに参加した後に起動されます。 プログラムを指定すると、
プログラムはサンドボックス内で実行されます。 このコマンドは root ユーザーのみが使用できます。
セキュリティ フィルター、cgroup、および CPU 構成はプロセスに適用されません
サンドボックスに参加します。
--参加ネットワーク=名前
名前で識別されるサンドボックスのネットワーク名前空間に参加します。 デフォルトでは、
/bin/bash シェルはサンドボックスに参加した後に起動されます。 プログラムを指定すると、
プログラムはサンドボックス内で実行されます。 このコマンドは root ユーザーのみが使用できます。
セキュリティ フィルター、cgroup、および CPU 構成はプロセスに適用されません
サンドボックスに参加します。
--join-network=pid
プロセス ID で識別されるサンドボックスのネットワーク名前空間に参加します。 デフォルトでは、
/bin/bash シェルはサンドボックスに参加した後に起動されます。 プログラムを指定すると、
プログラムはサンドボックス内で実行されます。 このコマンドは root ユーザーのみが使用できます。
セキュリティ フィルター、cgroup、および CPU 構成はプロセスに適用されません
サンドボックスに参加します。
- リスト すべてのサンドボックスをリストします。を参照してください。 モニタリング 詳細についてはセクションを参照してください。
例:
$ firejail --list
7015:netblue:ファイアジェイル Firefox
7056:netblue:firejail --net=eth0 送信-gtk
7064:netblue:firejail --noroot xterm
$
--mac=アドレス
--net オプションで定義された最後のネットワーク インターフェイスに MAC アドレスを割り当てます。
例:
$ firejail --net=eth0 --mac=00:11:22:33:44:55 Firefox
--mtu=番号
--net オプションで定義された最後のネットワーク インターフェイスに MTU 値を割り当てます。
例:
$ firejail --net=eth0 --mtu=1492
--name=名前
サンドボックス名を設定します。 --join や --shutdown などのいくつかのオプションでこの名前を使用できます。
サンドボックスを識別します。
例:
$ firejail --name=mybrowser Firefox
--net=ブリッジインターフェース
新しいネットワーク名前空間を有効にして、このブリッジ インターフェイスに接続します。 ない限り
オプション --ip および --defaultgw で指定された IP アドレスとデフォルト ゲートウェイ
サンドボックスに自動的に割り当てられます。 IPアドレスはARPを使用して検証されます
任務の前に。 デフォルトゲートウェイとして設定されたアドレスはブリッジデバイスです
IPアドレス。 最大 XNUMX つの --net ブリッジ デバイスを定義できます。 ミキシングブリッジと
macvlan デバイスは許可されます。
例:
$ sudo brctl addbr br0
$ sudo ifconfig br0 10.10.20.1/24
$ sudo brctl addbr br1
$ sudo ifconfig br1 10.10.30.1/24
$ firejail --net=br0 --net=br1
--net=イーサネットインターフェース
新しいネットワーク名前空間を有効にし、それを使用してこのイーサネット インターフェイスに接続します。
標準 Linux macvlan ドライバー。 オプション --ip および --defaultgw で指定されていない限り、
IP アドレスとデフォルト ゲートウェイはサンドボックスに自動的に割り当てられます。
IP アドレスは、割り当て前に ARP を使用して検証されます。 として設定されたアドレス
デフォルト ゲートウェイはホストのデフォルト ゲートウェイです。 最大 XNUMX つの --net デバイスを接続できます
定義されています。 ブリッジ デバイスと macvlan デバイスを混在させることができます。
例:
$ firejail --net=eth0 --ip=192.168.1.80 --dns=8.8.8.8 Firefox
--net=なし
新しい未接続のネットワーク名前空間を有効にします。 で利用可能な唯一のインターフェース
新しい名前空間は、新しいループバック インターフェイス (lo) です。 ネットワークを拒否するにはこのオプションを使用します
ネットワークアクセスを実際に必要としないプログラムへのアクセス。
例:
$ firejail --net=none vlc
--ネットフィルター
新しいネットワーク名前空間でデフォルトのクライアント ネットワーク フィルターを有効にします。 新しいネットワーク
名前空間は --net オプションを使用して作成されます。 新しいネットワーク名前空間が存在しない場合
作成された場合、--netfilter オプションは何も行いません。 デフォルトのフィルタは次のとおりです。
*フィルター
:インプットドロップ[0:0]
:フォワードドロップ[0:0]
:出力受け入れ [0:0]
-A 入力 -i lo -j ACCEPT
-A 入力 -m state --state 関連、確立 -j ACCEPT
-A INPUT -p icmp --icmp-type 宛先到達不能 -j ACCEPT
-A INPUT -p icmp --icmp-type 時間超過 -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
コミット
例:
$ firejail --net=eth0 --netfilter Firefox
--netfilter=ファイル名
新しいネットワーク名前空間のファイル名で指定されたネットワーク フィルターを有効にします。 の
フィルターファイル形式は、iptables-save および iptable-restore コマンドの形式です。
新しいネットワーク名前空間は --net オプションを使用して作成されます。 新しいネットワーク名前空間の場合
が作成されていない場合、 --netfilter オプションは何も行いません。
次のフィルターは /etc/firejail ディレクトリで使用できます。
ウェブサーバー.net TCP ポート 80 へのアクセスのみを許可する Web サーバー フィルターです。
443。 例:
$ firejail --netfilter=/etc/firejail/webserver.net --net=eth0 \
/etc/init.d/apache2 start
nolocal.net ローカルネットワークへのアクセスを無効にするクライアントフィルターです。 例:
$ firejail --netfilter=/etc/firejail/nolocal.net \
--net=eth0 Firefox
--netfilter6=ファイル名
新しいネットワーク名前空間のファイル名で指定された IPv6 ネットワーク フィルターを有効にします。
フィルタファイルの形式は、ip6tables-saveおよびip6table-restoreの形式です。
コマンド。 新しいネットワーク名前空間は --net オプションを使用して作成されます。 新しいネットワークの場合
名前空間は作成されず、--netfilter6 オプションは何も行いません。
--netstats
ネットワーク名前空間統計を監視します。 を参照してください。 モニタリング 詳細についてはセクションを参照してください。
例:
$ firejail --netstats
PID ユーザー RX(KB/s) TX(KB/s) コマンド
1294 ネットブルー 53.355 1.473 firejail --net=eth0 Firefox
7383 ネットブルー 9.045 0.112 firejail --net=eth0 送信
--noblacklist=ディレクトリ名またはファイル名
このディレクトリまたはファイルのブラックリストを無効にします。
例:
$ファイアジェイル
$ nc dict.org 2628
bash: /bin/nc: 許可が拒否されました
$出口
$ firejail --noblacklist=/bin/nc
$ nc dict.org 2628
220 Linux 1.12.1-3.14-amd1 上の pan.alephnull.com dictd 64/rf
--nogroups
補足グループを無効にします。 このオプションを使用しないと、補助グループが有効になります
サンドボックスを開始するユーザー向け。 root ユーザーの場合、補足グループは常に
無効にする。
例:
$ID
uid=1000(ネットブルー) gid=1000(ネットブルー)
groups=1000(netblue),24(cdrom),25(floppy),27(sudo),29(audio)
$ firejail --nogroups
親 PID 8704、子 PID 8705
子プロセスが初期化されました
$ID
uid=1000(ネットブルー) gid=1000(ネットブルー) グループ=1000(ネットブルー)
$
--プロファイルなし
セキュリティプロファイルは使用しないでください。
例:
$ファイアジェイル
プロファイル /etc/firejail/generic.profile の読み取り
親 PID 8553、子 PID 8554
子プロセスが初期化されました
[...]
$ firejail --noprofile
親 PID 8553、子 PID 8554
子プロセスが初期化されました
[...]
--noroot
単一のユーザー (現在のユーザー) を使用してユーザー名前空間をインストールします。 root ユーザーはそうではありません
新しい名前空間に存在します。 このオプションには、Linux カーネル バージョン 3.8 または
新しい。 このオプションは --chroot および --overlay 構成ではサポートされていません。または
root として開始されたサンドボックスの場合。
例:
$ firejail --noroot
親 PID 8553、子 PID 8554
子プロセスが初期化されました
$ ping google.com
ping: icmp オープンソケット: 操作は許可されていません
$
- 音無し
サウンドシステムを無効にします。
例:
$ firejail --nosound Firefox
--output=ログファイル
標準出力ログとログローテーション。 標準出力をログファイルにコピーし、ファイルのサイズを維持します。
ログローテーションを使用して 500KB 未満のファイル。 プレフィックス .1 ~ .5 が付いた XNUMX つのファイルが、
回転。
例:
$ firejail --output=sandboxlog /bin/bash
[...]
$ ls -l サンドボックスログ*
-rw-r--r-- 1 netblue netblue 333890 2 月 07 日 48:XNUMX サンドボックス ログ
-rw-r--r-- 1 netblue netblue 511488 2 月 07 日 48:1 sandboxlog.XNUMX
-rw-r--r-- 1 netblue netblue 511488 2 月 07 日 48:2 sandboxlog.XNUMX
-rw-r--r-- 1 netblue netblue 511488 2 月 07 日 48:3 sandboxlog.XNUMX
-rw-r--r-- 1 netblue netblue 511488 2 月 07 日 48:4 sandboxlog.XNUMX
-rw-r--r-- 1 netblue netblue 511488 2 月 07 日 48:5 sandboxlog.XNUMX
- かぶせる
現在のファイルシステムの上にファイルシステムオーバーレイをマウントします。 すべてのファイルシステム
変更はオーバーレイに反映されます。 オーバーレイは $HOME/.firejail に保存されます
ディレクトリにあります。
このオプションが機能するには、Linux カーネルで OverlayFS サポートが必要です。 オーバーレイFS
Linux カーネル バージョン 3.18 で正式に導入されました
例:
$ firejail --firefox をオーバーレイする
--overlay-tmpfs
現在のファイルシステムの上にファイルシステムオーバーレイをマウントします。 すべてのファイルシステム
変更はオーバーレイに取り込まれ、サンドボックスが閉じられると破棄されます。
このオプションが機能するには、Linux カーネルで OverlayFS サポートが必要です。 オーバーレイFS
Linux カーネル バージョン 3.18 で正式に導入されました
例:
$ firejail --overlay-tmpfs ファイアフォックス
- プライベート
新しいマウント /ルート 一時ファイルシステムの /home/user ディレクトリ。 全て
サンドボックスが閉じられると、変更は破棄されます。
例:
$ firejail --プライベートFirefox
--private=ディレクトリ
ディレクトリをユーザーのホームとして使用します。
例:
$ firejail --private=/home/netblue/firefox-home Firefox
--private-bin=ファイル,ファイル
新しいビルド / binに 一時ファイルシステムに保存し、リスト内のプログラムをコピーします。 の
同じディレクトリもバインドマウントされます / sbin, / usr / bin および/usr/sbin。
例:
$ firejail --private-bin=bash,sed,ls,cat
親 PID 20841、子 PID 20842
子プロセスが初期化されました
$ls / binに
bash 猫 ls sed
--private-dev
新しいを作成します / dev ディレクトリ。 dri、null、full、zero、tty、pts、ptmx、random、のみ
urandom、log、shm デバイスが利用可能です。
例:
$ firejail --private-dev
親 PID 9887、子 PID 9888
子プロセスが初期化されました
$ls / dev
dri フルログ null ptmx pts ランダム shm tty urandom ゼロ
$
--private-etc=ファイル、ディレクトリ
新しいビルド の/ etc 一時ファイルシステムに保存し、ファイルとディレクトリをコピーします。
リスト。 サンドボックスを閉じると、すべての変更が破棄されます。
例:
$ firejail --private-etc=グループ,ホスト名,ローカルタイム, \
nsswitch.conf、passwd、resolv.conf
--private-tmp
空の一時ファイルシステムを上にマウントします。 / tmpに ディレクトリにあります。
例:
$ firejail --private-tmp
--profile=ファイル名
ファイル名からカスタム セキュリティ プロファイルをロードします。 ファイル名には絶対パスを使用するか、
現在のパスを基準とした相対パス。 詳細については、「」を参照してください。 SECURITY プロフィール
以下のセクションをご覧ください。
例:
$ firejail --profile=myprofile
--profile-path=ディレクトリ
このディレクトリを使用してプロファイル ファイルを検索します。 絶対パスまたはパスを使用してください。
で始まるホームディレクトリ 〜/。 詳細については、を参照してください。 SECURITY プロフィール
以下のセクションと 移転中 会社概要 ファイル in man 5 ファイアジェイルプロファイル.
例:
$ firejail --profile-path=~/myprofile
$ firejail --profile-path=/home/netblue/myprofiles
--protocol=プロトコル,プロトコル,プロトコル
プロトコルフィルターを有効にします。 フィルターは seccomp に基づいており、最初のフィルターをチェックします。
ソケットシステムコールへの引数。 認識される値: unix、inet、inet6、netlink、および
パケット。
例:
$ firejail --protocol=unix,inet,inet6 Firefox
--protocol.print=名前
名前で識別されたサンドボックスのプロトコル フィルターを出力します。
例:
$ firejail --name=mybrowser Firefox &
[...]
$ firejail --print.print=mybrowser
unix、inet、inet6、ネットリンク
--protocol.print=pid
PID によって識別されるサンドボックスのプロトコル フィルターを出力します。
例:
$ firejail --list
3272:netblue:firejail --プライベート Firefox
$ firejail --protocol.print=3272
unix、inet、inet6、ネットリンク
- 静かな
Firejail の出力をオフにします。
--read-only=ディレクトリ名またはファイル名
ディレクトリまたはファイルを読み取り専用に設定します。
例:
$ firejail --read-only=~/.mozilla Firefoxの
--rlimit-fsize=数値
プロセスによって作成できる最大ファイル サイズを設定します。
--rlimit-nofile=番号
プロセスによって開くことができるファイルの最大数を設定します。
--rlimit-nproc=番号
実ユーザーIDに対して作成できるプロセスの最大数を設定します。
呼び出しプロセス。
--rlimit-sigpending=数値
プロセスの保留中のシグナルの最大数を設定します。
- スキャン ARP は、ネットワーク名前空間内からすべてのネットワークをスキャンします。 これにより、それが可能になります
現在のホストで実行されている macvlan カーネル デバイス ドライバーを検出します。
例:
$ firejail --net=eth0 --scan
--seccomp
seccomp フィルタを有効にし、デフォルト リストの syscall をブラックリストに登録します。 デフォルト
リストは次のとおりです: mount、umount2、ptrace、kexec_load、kexec_file_load、
open_by_handle_at、init_module、finit_module、delete_module、iopl、ioperm、swapon、
スワップオフ、syslog、process_vm_readv、process_vm_writev、sysfs、_sysctl、adjtimex、
Clock_adjtime、lookup_dcookie、perf_event_open、fanotify_init、kcmp、add_key、
request_key、keyctl、uselib、acct、modify_ldt、pivot_root、io_setup、io_destroy、
io_getevents、io_submit、io_cancel、remap_file_pages、mbind、get_mempolicy、
set_mempolicy、merge_pages、move_pages、vmsplice、perf_event_open、および chroot。
例:
$ firejail --seccomp
--seccomp=syscall,syscall,syscall
seccomp フィルターを有効にし、デフォルトのリストと、
例:
$ firejail --seccomp=utime,utimensat,utimes Firefox
--seccomp.drop=syscall,syscall,syscall
seccomp フィルターを有効にし、コマンドで指定された syscall をブラックリストに登録します。
例:
$ firejail --seccomp.drop=utime,utimensat,utimes
--seccomp.keep=syscall,syscall,syscall
seccomp フィルターを有効にし、コマンドで指定された syscall をホワイトリストに登録します。
例:
$ firejail --shell=none --seccomp.keep=poll,select,[...] 送信-gtk
--seccomp。 =システムコール,システムコール,システムコール
seccomp フィルターを有効にし、コマンドで指定された syscall の errno を返します。
例: ファイルの削除が無効になっている Bash シェル
$ firejail --seccomp.eperm=unlinkat
親 PID 10662、子 PID 10663
子プロセスが初期化されました
$ タッチテストファイル
$ rm テストファイル
rm: `testfile' を削除できません: 操作は許可されていません
--seccomp.print=名前
--name オプションを使用して開始されたサンドボックスの seccomp フィルターを出力します。
例:
$ firejail --name=ブラウザFirefox &
$ firejail --seccomp.print=browser
SECCOMP フィルター:
VALIDATE_ARCHITECTURE
EXAMINE_SYSCALL
ブラックリスト 165 マウント
ブラックリスト 166 umount2
ブラックリスト 101 ptrace
ブラックリスト 246 kexec_load
ブラックリスト 304 open_by_handle_at
ブラックリスト 175 init_module
ブラックリスト 176 削除モジュール
ブラックリスト 172 iopl
ブラックリスト 173 ioperm
ブラックリスト 167 スワポン
ブラックリスト 168 スワップオフ
ブラックリスト 103 syslog
ブラックリスト 310 process_vm_readv
ブラックリスト 311 process_vm_writev
ブラックリスト 133 mknod
ブラックリスト 139 sysfs
ブラックリスト 156 _sysctl
ブラックリスト 159
ブラックリスト 305 クロック調整時間
ブラックリスト 212 lookup_dcookie
ブラックリスト 298 perf_event_open
ブラックリスト 300 fanotify_init
RETURN_ALLOW
$
--seccomp.print=pid
プロセス ID で指定されたサンドボックスの seccomp フィルターを出力します。 --list オプションを使用する
すべてのアクティブなサンドボックスのリストを取得します。
例:
$ firejail --list
10786:netblue:firejail --name=ブラウザ Firefox $ firejail --seccomp.print=10786
SECCOMP フィルター:
VALIDATE_ARCHITECTURE
EXAMINE_SYSCAL
ブラックリスト 165 マウント
ブラックリスト 166 umount2
ブラックリスト 101 ptrace
ブラックリスト 246 kexec_load
ブラックリスト 304 open_by_handle_at
ブラックリスト 175 init_module
ブラックリスト 176 削除モジュール
ブラックリスト 172 iopl
ブラックリスト 173 ioperm
ブラックリスト 167 スワポン
ブラックリスト 168 スワップオフ
ブラックリスト 103 syslog
ブラックリスト 310 process_vm_readv
ブラックリスト 311 process_vm_writev
ブラックリスト 133 mknod
ブラックリスト 139 sysfs
ブラックリスト 156 _sysctl
ブラックリスト 159
ブラックリスト 305 クロック調整時間
ブラックリスト 212 lookup_dcookie
ブラックリスト 298 perf_event_open
ブラックリスト 300 fanotify_init
RETURN_ALLOW
$
--shell=なし
ユーザー シェルを使用せずにプログラムを直接実行します。
例:
$ firejail --shell=none script.sh
--shell=プログラム
デフォルトのユーザーシェルを設定します。 -c シェルを使用してアプリケーションを実行するには、このシェルを使用します。
オプション。 たとえば、「firejail --shell=」/ビン/ダッシュ Firefox」で Mozilla が起動します
Firefox を「/ビン/ダッシュ -c firefox"。デフォルトでは Bash シェル (/bin/bash) 使用されている。
--zsh や --csh などのオプションを使用して、デフォルトのシェルを設定することもできます。
例: $firejail --shell=/ビン/ダッシュ スクリプト.sh
--シャットダウン=名前
--name オプションを使用して開始されたサンドボックスをシャットダウンします。
例:
$ firejail --name=mygame --caps.drop=all warzone2100 &
[...]
$ firejail --shutdown=mygame
--shutdown=pid
プロセス ID で指定されたサンドボックスをシャットダウンします。 --list オプションを使用してリストを取得します
すべてのアクティブなサンドボックス。
例:
$ firejail --list
3272:netblue:firejail --プライベート Firefox
$ firejail --shutdown=3272
--tmpfs=ディレクトリ名
tmpfs ファイルシステムをディレクトリ dirname にマウントします。 このオプションは次の場合にのみ使用できます。
サンドボックスを root として実行します。
例:
# firejail --tmpfs=/ var
- 上 最も CPU を使用するサンドボックスを監視します。を参照してください。 モニタリング 詳細についてはセクションを参照してください。
例:
$ firejail --トップ
- 痕跡
トレースを開いて、システム コールにアクセスし、接続します。
例:
$ firejail --trace wget -q www.debian.org
親 PID 11793、子 PID 11794
子プロセスが初期化されました
1:bash:/dev/tty を開く
1:wget:fopen64 /etc/wgetrc
1:wget:fopen /etc/hosts
1:wget:ソケット AF_INET SOCK_DGRAM IPPROTO_IP
1:wget:接続 8.8.8.8:53
1:wget:ソケット AF_INET SOCK_STREAM IPPROTO_IP
1:wget:接続 140.211.15.34:80
1:wget:fopen64index.html.1
親がシャットダウンしています、さようなら...
--トレースログ
このオプションにより、ブラックリストに登録されたファイルとディレクトリの監査が有効になります。 メッセージが送信されます
ファイルまたはディレクトリがアクセスされた場合に syslog に記録されます。
例:
$ firejail --tracelog Firefox
サンプルメッセージ:
$ sudo テール -f / var / log / syslog
[...]
3 月 11 日 43:25:70 debian firejail[26370]: ブラックリスト違反 - サンドボックス XNUMX、exe
Firefox、syscall open64、パス / etc / shadow
3 月 11 日 46:17:70 debian firejail[26370]: ブラックリスト違反 - サンドボックス XNUMX、exe
Firefox、syscall opendir、パス /ブート
[...]
- 木 すべてのサンドボックス プロセスのツリーを出力します。 を参照してください。 モニタリング 詳細についてはセクションを参照してください。
例:
$ firejail --tree
11903:netblue:ファイアジェイルアイスウィーゼル
11904:ネットブルー:アイスウィーゼル
11957:netblue:/usr/lib/iceweasel/プラグインコンテナ
11969:netblue:firejail --net=eth0 送信-gtk
11970:netblue:transmission-gtk
--user=新規ユーザー
サンドボックスを開始する前にユーザーを切り替えてください。 このコマンドは root として実行する必要があります。
例:
# firejail --user=www-data
- バージョン
プログラムバージョンを印刷して終了します。
例:
$ firejail --バージョン
firejail バージョン 0.9.27
--whitelist=ディレクトリ名またはファイル名
ホワイトリストのディレクトリまたはファイル。 この機能はユーザーホームのみに実装されており、 / dev,
/メディア, / opt, / var, / tmpに ディレクトリ。
例:
$ firejail --whitelist=~/.mozilla --ホワイトリスト=〜/ダウンロード
$ firejail --whitelist=/tmp/.X11-unix --whitelist=/dev/null
$ firejail "--whitelist=/home/ユーザー名/私の仮想マシン"
--zsh /usr/bin/zsh をデフォルトのユーザー シェルとして使用します。
例:
$ firejail --zsh
トラフィック シェーピング
ネットワーク帯域幅は、システム上で実行されているすべてのサンドボックス間で共有される高価なリソースです。
トラフィック シェーピングにより、ユーザーは量を制御することでネットワーク パフォーマンスを向上させることができます。
サンドボックスに出入りするデータの量。
Firejail は、Linux コマンド tc に基づいた単純なレート制限シェーパーを実装しています。 シェイパー
サンドボックス レベルで動作し、新しいネットワークで構成されたサンドボックスでのみ使用できます。
名前空間。
レート制限を設定します。
firejail --bandwidth={name|pid} ネットワーク ダウンロード アップロードを設定します
レート制限を明確にする:
firejail --bandwidth={name|pid} クリアネットワーク
ステータス:
firejail --bandwidth={name|pid} ステータス
ここで、
名前 - サンドボックス名
pid - サンドボックス pid
network - --net オプションで使用されるネットワーク インターフェイス
ダウンロード - ダウンロード速度 (KB/秒) (キロバイト/秒)
アップロード - アップロード速度 (KB/秒) (キロバイト/秒)
例:
$ firejail --name=mybrowser --net=eth0 Firefox &
$ firejail --bandwidth=mybrowser set eth0 80 20
$ firejail --bandwidth=mybrowser ステータス
$ firejail --bandwidth=mybrowser clear eth0
モニタリング
オプション --list は、すべてのサンドボックスのリストを出力します。 各プロセスエントリの形式は次のとおりです。
以下:
PID:ユーザー:コマンド
オプション --tree は、サンドボックス内で実行されているプロセスのツリーを出力します。 それぞれの形式
プロセスエントリは次のとおりです。
PID:ユーザー:コマンド
オプション --top は UNIX の top コマンドに似ていますが、サンドボックスにのみ適用されます。
オプション --netstats は、新しいネットワークをインストールするアクティブなサンドボックスのネットワーク統計を出力します。
名前空間。
--top および --top で使用可能なフィールド (列) をアルファベット順に以下に示します。
--netstat オプション:
Command
サンドボックスを開始するために使用されるコマンド。
CPU% CPU 使用率、最後の画面更新以降の経過 CPU 時間のサンドボックス シェア
PID サンドボックスを制御するタスクの一意のプロセス ID。
Prcs 制御プロセスを含む、サンドボックス内で実行されているプロセスの数。
RES 常駐メモリ サイズ (KiB)、サンドボックスの非スワップ物理メモリ。 それは合計です
サンドボックス内で実行されているすべてのプロセスの RES 値。
受信(KB/秒)
ネットワークの受信速度。
SHR 共有メモリ サイズ (KiB)。他のプロセスと共有されるメモリを反映します。 それは
サンドボックス内で実行されているすべてのプロセスの SHR 値の合計 (
制御プロセス。
送信(KB/秒)
ネットワークの送信速度。
Uptime サンドボックスの実行時間を時間:分:秒の形式で表示します。
ユーザー サンドボックスの所有者。
SECURITY プロフィール
プロファイル ファイルを使用して、いくつかのコマンド ライン オプションをプログラムに渡すことができます。 ファイアジェイル
次のようにプロファイル ファイルを選択します。
1. ユーザーが --profile オプションを使用してプロファイル ファイルを提供した場合、プロファイル ファイルは
ロードされています。 例:
$ firejail --profile=/home/netblue/icecat.profile Icecat
プロファイル /home/netblue/icecat.profile の読み取り
[...]
2.アプリケーションと同名のプロファイルファイルが存在する場合
~/.config/firejail ディレクトリまたは /etc/firejail にプロファイルがロードされます。
~/.config/firejail /etc/firejail よりも優先されます。 例:
$ firejail アイスキャット
コマンド名 #icecat#
/home/netblue/.config/firejail ディレクトリに Icecat プロファイルが見つかりました
プロファイル /home/netblue/.config/firejail/icecat.profile の読み取り
[...]
3. サンドボックスが通常のユーザーによって起動される場合は、default.profile ファイルを使用するか、server.profile ファイルを使用します。
サンドボックスが root によって開始された場合、ファイル。 Firejail はこれらのファイルを探します
~/.config/firejail ディレクトリ、その後に /etc/firejail ディレクトリが続きます。 デフォルトを無効にするには
プロファイルをロードするには、--noprofile コマンド オプションを使用します。 例:
$ファイアジェイル
プロファイル /etc/firejail/generic.profile の読み取り
親 PID 8553、子 PID 8554
子プロセスが初期化されました
[...]
$ firejail --noprofile
親 PID 8553、子 PID 8554
子プロセスが初期化されました
[...]
プロファイル ファイルの構文情報については、man 5 firejail-profile を参照してください。
制限付き SHELL
制限付きシェルを構成するには、次のように置き換えます。 /bin/bash /etc/password に /usr/bin/firejail を使用
制限する必要があるユーザーごとにファイルを作成します。 あるいは、指定することもできます
adduser コマンドの /usr/bin/firejail:
adduser --shell /usr/bin/firejail ユーザー名
ログイン時に firejail 実行可能ファイルに渡される追加の引数は、次のように宣言されます。
/etc/firejail/login.users ファイル。
例
消防刑務所
定期的に始める /bin/bash サンドボックスでのセッション。
ファイアジェイル ファイアフォックス
Mozilla Firefox を起動します。
firejail --Firefox のデバッグ
Firefox サンドボックスをデバッグします。
ファイアジェイル --プライベート
スタート /bin/bash 新しい tmpfs ホーム ディレクトリとのセッション。
firejail --net=br0 ip=10.10.20.10
スタート /bin/bash 新しいネットワーク名前空間でのセッション。 セッションが接続されているのは、
br0 ブリッジ デバイスを使用するメイン ネットワーク。 IP アドレス 10.10.20.10 が割り当てられます。
サンドボックスへ。
ファイアジェイル --net=br0 --net=br1 --net=br2
スタート /bin/bash 新しいネットワーク名前空間でセッションを開始し、それを br0、br1、
および br2 ホスト ブリッジ デバイス。
ファイアジェイル --リスト
すべてのサンドボックスプロセスをリストします。
onworks.net サービスを使用してオンラインで firejail を使用する
