第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 の後に :8000
を入力し忘れないでください。さらに VLC でコンテンツを再生するためにコンテナーのアドレスを VLC に送信することもできます。
VLC インスタンスを起動するために以下のコマンドを実行します。
$ vlc http://CONTAINER_IP:8000/firefox.ogg