このコンテナは、ナビゲートするときに実際のFirefoxブラウザを提供するWebサーバーを実行します。ボンネットの下で、コンテナはapache guacamole上でxrdpを実行してFirefox窓を提供しています。

このプロジェクトは、このブログ投稿に触発されました。 Ivonetの作成は本当にクールですが、自分で構築し、いくつかの改善を追加すると思いました。最初に、Apache Guacamoleの画像をより最新の画像に更新しました。次に、ブラウザをFirefoxに切り替えて、拡張機能をサイドロードする方法を見つけました。最後に、セキュリティを追加するためにSECCOMPホワイトリストフィルターを作成しました。
このビルドには、FirefoxとPIA VPN拡張機能が含まれます。 Dockerfileには、Ublock Origin、Decentraleyes、Privacy Badgerのラインもコメントしています。彼らは安定性を助けるためにコメントされていますが、あなたはあなたのニーズに合わせてそれらを簡単に解除することができます。
この画像はDocker Hubで公開されており、コマンドで実行できます。
$ docker run -d --rm --shm-size=1G -p 8080:8080 --name foxception lawndoc/foxception:latest
このDockerコンテナが適切に実行および閉じるためには、すべてのフラグを含めることが重要です。使用されているすべてのフラグとその意味を読むことをお勧めします(以下の重要な注意を参照)。
この画像をSECCOMPフィルターで実行して、搾取が成功した場合に許可されたコンテナのシステムを最小限に抑えることができます。これを行うには、このリポジトリをクローンし、提供されたスクリプトで画像を作成し、提供されたSecCompフィルターで実行します。
$ git clone https://github.com/lawndoc/foxception.git
$ cd foxception
$ ./build.sh
$ sudo docker run -d --shm-size=1G -p 8080:8080 --security-opt seccomp=foxception_seccomp.json --name foxception lawndoc/foxception:latest
SECCOMPフィルターは、このツールで作成され、カーネルに作成されたすべてのsyscallをログに記録し、コンテナを停止するときにSecCompフィルターを生成します。提供されたフィルターにより、この容器が意図したとおりに機能するために必要なsyscallsのみが可能になります。このサービスで脆弱性分析を行っていないため、SecCompフィルターを使用することを強くお勧めします(以下の重要な注意を参照)。
また、コンテナを変更しすぎると、提供されたSECCOMPフィルターによってホワイトリストに載っていない追加のシステムが必要になる場合があることに留意してください。そのシナリオでは、上記のツールを使用して新しいフィルターを生成できます。
独自のデフォルト拡張機能を選択するには、XPIアーカイブをディレクトリ/usr/share/mozilla/extensions/{EC8030F7-C20A-464F-9B0E-13A3A9E97384}/に追加する必要があります。
アーカイブは<アプリID> .xpiという名前にする必要があります。ここで、<アプリID>はアドオンのアプリケーションIDです。たとえば、{EC8030F7-C20A-464F-9B0E-13A3A9E97384}はFirefoxのアプリIDであり、XPIアーカイブを追加するディレクトリの名前です。既に持っているアドオンのアプリ/拡張機能IDを見つけることができます。
拡張機能をダウンロードするには、dockerfileのようなカールを実行してください。 FirefoxアドオンのWebサイトに移動し、「Firefoxに追加」ボタンをオーバーまたは右クリックすることにより、アドオンのXPIアーカイブのダウンロードURLを取得できます。
セットアップに応じて、このブラウザはインターネットに公開される場合があります。ネットワークで実行されているため、ブラウザで行われるものはすべてホストネットワークに戻ります。したがって、ファイアウォール、htpasswdなどでアクセスできる場所を確認し、アクセスを制御することを確認してください...また、このコンテナで脆弱性分析を実行していないため、意図していなかったことを非常にうまく実行できる可能性があります。そのため、上記の指示に従って、提供されたSecCompフィルターでこのコンテナを実行する必要があります。