Этот контейнер запускает веб -сервер, который обслуживает фактический браузер Firefox при перемещении к нему. Под капотом контейнер работает xrdp над Guacamole Apache, чтобы подавать окно Firefox.

Этот проект был вдохновлен этим сообщением в блоге. Создание Ивонета действительно круто, но я подумал, что построю свои собственные и добавлю некоторые улучшения. Во -первых, я обновил изображение 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, чтобы минимизировать разрешенные Syscalls контейнера в случае успешной эксплуатации. Для этого вы клонируете это репо, создаете изображение с помощью предоставленного сценария и запускаете с предоставленным фильтром 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 был изготовлен с помощью этого инструмента, который регистрирует все Syscalls, сделанные в ядро, а затем генерирует фильтр SECComp, когда вы останавливаете контейнер. Предоставленный фильтр позволяет функционировать только SYSCALLS, необходимые для функционирования этого контейнера. Я настоятельно рекомендую использовать фильтр seccomp, потому что я не проводил никакого анализа уязвимости в этой службе (см. Важное примечание ниже).
Кроме того, имейте в виду, что если вы слишком сильно измените контейнер, это может потребовать дополнительных Syscalls, которые не белистируют в качестве предоставленного фильтра SecComp. В этом сценарии вы можете использовать инструмент, упомянутый выше, для создания нового фильтра.
Чтобы выбрать свои собственные расширения по умолчанию, вам необходимо добавить архив XPI в Directory/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9a97384}//
Архив должен быть назван <идентификатор приложения> .xpi, где <идентификатор приложения> является идентификатором приложения надстройки. Например, {EC8030F7-C20A-464F-9B0E-13A3A9E97384} является идентификатором приложения Firefox и является названием каталога, в который вы должны добавить архивы XPI. Вы можете найти идентификатор приложения/расширения любого дополнения, который у вас уже есть, обратившись к: отладку в местном браузере Firefox.
Чтобы загрузить расширение, просто сделайте сгибание, как в Dockerfile. Вы можете получить URL-адрес загрузки архива XPI дополнения, перейдя на веб-сайт AddOns Firefox и наведы на то, чтобы щелкнуть правой кнопкой кнопкой «Добавить в Firefox».
В зависимости от вашей настройки, этот браузер может быть подвергнут воздействию Интернета. Поскольку он работает в вашей сети, все, что сделано в браузере, будет связано обратно к хост -сети. Поэтому убедитесь, что вы знаете, откуда он доступен и контролирует доступ с брандмауэрами, HTPASSWD и т. Д. Кроме того, я не выполнил никакого анализа уязвимости на этом контейнере, так что он вполне может делать то, для чего не предназначалось. По этой причине вы также должны запустить этот контейнер с предоставленным фильтром SECCOMP, как указано выше.