第5章 コンテナーでロックダウンされたセキュアな Firefox

このセクションでは、Firefox を実行するセキュアなコンテナーをデプロイする方法について説明します。このコンテナーは、以下の機能を含むコンテナー化された Firefox のインスタンスを提供します。

  • 特権は完全に不要: SELinux の追加の調整は不要です。
  • cgroup の一覧のみがホストからコンテナーに渡されます。
  • コンテナーはホストのみで利用できるため、ポートはリダイレクトされません。
  • X11 クリップボードイベントまたは X イベントは実際のホストと共有されません。
  • 共有されるサウンドハードウェアはありません。
  • systemd 以外のすべてが通常の特権のないユーザー権限で実行されます (また systemd は他のプロセスの reap (シャットダウン) を実行するためにのみ実行されます)。
  • (同期なし) サウンド、flash、および良好な対話機能。

コンテナーでの Firefox の安全な実行

ステップ 1

コンテナーを構築するために使用するベースイメージを取得します。

$ curl -o Fedora-Docker-Base-22-20150521.x86_64.tar.xz -L https://download.fedoraproject.org/pub/fedora/linux/releases/22/Docker/x86_64/Fedora-Docker-Base-22-20150521.x86_64.tar.xz
ステップ 2

ダウンロードしたばかりのベースイメージをローカルの Docker レジストリーにロードします。

$ sudo docker load < Fedora-Docker-Base-22-20150521.x86_64.tar.xz
ステップ 3

このコンテナーをマップする Dockerfile を保持するためのディレクトリーを作成します。

$ mkdir -p isolated_firefox
ステップ 4

以下の curl コマンドを使用して Dockerfile を取得します。

$ curl -o isolated_firefox/Dockerfile -L http://pastebin.com/raw.php?i=cgYXQvJu
ステップ 5

コンテナーを構築し、isolated_firefox というタグでこれにタグ付けします。

$ sudo docker build -t isolated_firefox isolated_firefox
ステップ 6

コンテナーを実行します。

$ sudo docker run -v /sys/fs/cgroup:/sys/fs/cgroup:ro isolated_firefox
ステップ 7

docker ps コマンドを使用して CONTAINER_ID を取得します。

$ sudo docker ps
ステップ 8

コンテナーの IP アドレスを取得します。

$ sudo docker inspect CONTAINER_ID| grep IPAddress\":
ステップ 9

vncviewer でコンテナーを開きます。

$ vncviewer CONTAINER_IP
ステップ 10

このコンテナーに関連付けられているオーディオを聞くには、ブラウザーを開いて以下の場所に移動します。

http://CONTAINER_IP:8000/firefox.ogg
ポートを URL に組み込むことを忘れないでください。

つまり、URL の後に :8000 を入力し忘れないでください。さらに VLC でコンテンツを再生するためにコンテナーのアドレスを VLC に送信することもできます。

VLC インスタンスを起動するために以下のコマンドを実行します。

$ vlc http://CONTAINER_IP:8000/firefox.ogg

このページには機械翻訳が使用されている場合があります (詳細はこちら)。