Запуск веб-браузера (и других приложений) в изолированном окружении

1. Почему стоит использовать изолированное окружение на основе Firejail

По умолчанию системы Linux Mint, Ubuntu и Fedora являются достаточно безопасными. Но благодаря дополнительной несложной мере предосторожности, вы можете повысить и без того высокий уровень защиты своей Linux-системы. Эта мера заключается в запуске веб-браузера в изолированном виртуальном окружении. Она является актуальной по той причине, что веб-браузеры (а также их плагины) на сегодняшний день являются главными целями атак.

Вы можете достаточно просто защитить свой веб-браузер с помощью утилиты Firejail, которая позволяет создать легковесное виртуальное изолированное окружение на уровне приложения. Проще говоря, данная утилита позволяет полностью изолировать содержимое вашей домашней директории от веб-браузера, защищая тем самым ее содержимое.

Таким образом, вы сможете не беспокоиться из-за возможного повреждения файлов, находящихся в домашней директории (для модификации которых не нужно прав пользователя root), в результате атак хакеров или вредоносного программного обеспечения. Firejail отлично защищает от вредоносного программного обеспечения, которое зачастую пытается осуществить модификации ваших персональных файлов за вашей спиной. В результате это программное обеспечение будет корректно функционировать, но не сможет получить доступ к каким-либо файлам ввиду того, что ваш веб-браузер и его плагины не будут иметь доступа к содержимому вашей домашней директории. Разумеется, в случае использования веб-браузера данное правило будет иметь несколько исключений, таких, как директория «Загрузки», а также директория с файлами конфигурации веб-браузера. Системные директории и файлы также будут полностью доступны, но только для чтения.

Утилита Firejail отлично спроектирована: ее использование не влечет за собой значительных затрат вычислительных ресурсов.

Я полностью согласен с мнением представителя ресурса Distrowatch относительно утилиты Firejail: дополнительный уровень защиты, предоставляемый утилитой Firejail, значительно повышает безопасность системы, на тратя в пустую как ее вычислительные ресурсы, так и время ее пользователя. В современном мире, в котором проблемы с безопасностью приложений, а также раскрытие конфиденциальных данных не являются экстраординарными событиями, сложно не задаться вопросом: «Почему кто-то не желает использовать Firejail?» (полный текст статьи доступен на ресурсе Distrowatch).

Разумеется, все имеет свою цену, пусть даже незначительную: недостатком изолированного окружения является, к примеру, невозможность добавления файлов в качестве вложений сообщений электронной почты в том случае, если эти файлы не располагаются в директории «Загрузки». Это происходит из-за того, что веб-браузер изолирован от всех остальных директорий из вашей домашней директории. Также вы можете столкнуться с проблемами с печатью веб-страниц по той же причине.

По этой причине я советую ограничиться созданием иконки для запуска веб-браузера в изолированном окружении на панели. В этом случае вы всегда сможете запустить веб-браузер в обычном режиме, воспользовавшись элементом меню приложений.

Примечание: изолированное окружение, формируемое средствами Firejail, предназначено исключительно для защиты домашней директории пользователя; ваш веб-браузер все так же сможет получать доступ к директориям и файлам самой операционной системы. Это сделано умышленно и не является проблемой, так как все эти файлы принадлежат пользователю root, и защищены от модификации обычными пользователями.

Вы можете создать изолированное окружение для веб-браузера описанным ниже образом.

2. Подготовка

Установка Firejail в Ubuntu и Linux Mint не связана с какими-либо сложностями. Следует просто открыть окно терминала и ввести в него следующую команду (используйте функции копирования/вставки):

sudo apt-get install firejail

После окончания ввода команды следует нажать клавишу Enter. При запросе пароля вы должны будете ввести свой пароль. Символы вашего пароля не будут отображаться никоим образом, даже с помощью точек, и это нормально. После ввода пароля следует снова нажать клавишу Enter.

В Fedora все немного сложнее: утилита Firejail не доступна из официального репозитория пакетов программного обеспечения. К счастью, автор создал отдельный репозиторий COPR, для установки утилиты из которого достаточно ввести в терминал следующую комбинированную команду:

dnf copr enable heikoada/firejail && dnf install firejail

После окончания ввода команды следует нажать клавишу Enter. При запросе пароля вы должны будете ввести свой пароль. Символы вашего пароля не будут отображаться никоим образом, даже с помощью точек, и это нормально. После ввода пароля следует снова нажать клавишу Enter.

3. Запуск веб-браузера Firefox в изолированном окружении

После установки Firejail вы можете запустить веб-браузер Firefox в изолированном окружении, просто открыв окно терминала и введя в него следующую команду (используйте функции копирования/вставки):

firejail firefox

После окончания ввода команды следует нажать клавишу Enter для ее исполнения.

И это все, что нужно для запуска веб-браузера Firefox в изолированном окружении! В комплекте поставки утилиты Firejail содержится файл со стандартными параметрами запуска веб-браузера Firefox, которые не приводят к значительному снижению его пользовательских качеств, при этом значительно увеличивая безопасность веб-серфинга. Среднестатистическому пользователю, скорее всего, не захочется изменять эти параметры.

Но данная команда позволяет лишь однократно запустить веб-браузер в изолированном окружении; конечно же, использование терминала не является самым удобным решением для запуска приложения с графическим интерфейсом. По этой причине я рекомендую создать иконку для запуска Firefox в изолированном окружении.

Для этого в Linux Mint следует навести указатель мыши на иконку веб-браузера на панели окружения рабочего стола Cinnamon, нажать правую кнопку мыши, осуществить переход по открывшемуся меню «Еще — Изменить» и в открывшемся окне заменить содержимое поля Command: с «firefox %u» на «firejail firefox %u», после чего нажать на кнопку «OK». В других окружениях рабочих столов дистриубтива Linux Mint, в окружении рабочего стола дистриубтива Ubuntu (Unity) и в окружении рабочего стола дистриубтива Fedora (GNOME 3) следует воспользоваться следующей командой с целью создания дополнительного пункта меню приложений для запуска Firefox в изолированном окружении Firejail (используйте функции копирования/вставки, это одна команда):

sed -e 's/Name=Firefox Web Browser/Name=Firefox Web Browser (Firejail)/' -e 's/Name[ru]=Веб-браузер Firefox/Name[ru]=Веб-браузер Firefox (Firejail)/' -e 's/Exec=firefox %u/Exec=firejail firefox %u/' < /usr/share/applications/firefox.desktop > ~/.local/share/applications/firefox-firejail.desktop

Для удаления созданного пункта меню достаточно выполнить следующую команду:

rm ~/.local/share/applications/firefox-firejail.desktop

Теперь попробуйте закрыть все окна веб-браузера Firefox и воспользоваться иконкой на панели или отдельным пунктом меню приложений для запуска Firefox в изолированном окружении. Для того, чтобы убедиться в том, что веб-браузер был запущен именно в изолированном окружении, следует открыть окно терминала и ввести в него следующую команду (используйте функции копирования/вставки):

firejail --tree

После окончания ввода команды следует нажать клавишу Enter для ее исполнения. Данная команда позволяет проверить факт запуска веб-браузера Firefox в изолированном окружении.

4. Исправление проблемы со звуком (PulseAudio), вызванной использованием Firejail

При использовании Firejail у запущенных в изолированном окружении приложений могут возникать проблемы с выводом звука. В этом случае вы можете действовать следующим образом.

Вам придется открыть окно терминала, скопировать и вставить в него следующие команды (следует нажимать клавишу Enter после вставки каждой команды для ее исполнения):

mkdir -p ~/.config/pulse

cd ~/.config/pulse

cp -v /etc/pulse/client.conf ~/.config/pulse

echo "enable-shm = no" >> client.conf

5. Проверка и модификация параметров запуска веб-браузера Firefox в изолированном окружении (для опытных пользователей)

Хотите проверить параметры запуска веб-браузера Firefox, используемые утилитой Firejail? Они находятся в файле /etc/firejail/firefox.profile.

Вам нужно изменить какие-либо из этих параметров? В этом случае оптимальным решением является не модификация системного файла профиля приложения Firefox утилиты Firejail, а копии этого системного файла профиля из вашей домашней директории. Для этого придется воспользоваться приведенными ниже командами (используйте функции копирования/вставки для копирования их в окно терминала).

Первая команда для создания директории файлов профилей утилиты Firejail в домашней директории пользователя:

mkdir -v ~/.config/firejail

После окончания ввода команды следует нажать клавишу Enter для ее исполнения. Далее следует ввести следующую команду для копирования системного файла профиля приложения Firefox утилиты Firejail в созданную директорию:

cp -v /etc/firejail/firefox.profile ~/.config/firejail

После окончания ввода команды также следует нажать клавишу Enter для ее исполнения. Наконец, в том случае, если у вас установлен текстовый редактор Leafpad, следует ввести в окно терминала следующую команду (если вы используете другой текстовый редактор, отредактируйте команду соответствующим образом):

leafpad ~/.config/firejail/firefox.profile

Разумеется, после окончания ввода команды также следует нажать клавишу Enter для ее исполнения. Теперь вы можете экспериментировать с копией файла профиля, причем ваши модификации параметров запуска приложения сохранятся даже после обновления версии Firejail.

Также вы можете запускать Firejail с использованием дополнительных аргументов командной строки. Вы можете найти информацию о них на странице руководства, доступной после исполнения в терминале команды man firejail, а также на данной странице.

6. Запуск веб-браузера Firefox в изолированном окружении по умолчанию

Вы можете организовать автоматический запуск веб-браузера Firefox в изолированном окружении в рамках вашей учетной записи вне зависимости от способа его запуска. Я не рекомендую выполнять описанные ниже манипуляции, так как в этом случае вы будете периодически сталкиваться с надоедливыми ограничениями, которые не так просто обойти. Но если вы все же хотите использовать веб-браузер Firefox в изолированном окружении при любых обстоятельствах, вам придется выполнить две команды в терминале.

Первая команда для копирования файла запуска приложения Firefox (используйте функции копирования/вставки, это одна строка):

cp -v /usr/share/applications/firefox.desktop ~/.local/share/applications

После окончания ввода команды следует нажать клавишу Enter для ее исполнения. Далее следует ввести вторую команду для замены команды запуска приложения Firefox в скопированном файле (используйте функции копирования/вставки, это также одна строка):

sed -i 's/Exec=firefox/Exec=firejail firefox/g' .local/share/applications/firefox.desktop

После окончания ввода команды также следует нажать клавишу Enter для ее исполнения, закрыть все окна веб-браузера Firefox и запустить его снова.

Вы можете отменить все внесенные в систему изменения, выполнив следующую команду (используйте функции копирования/вставки):

rm -v ~/.local/share/applications/firefox.desktop

После окончания ввода команды также следует нажать клавишу Enter для ее исполнения, закрыть все окна веб-браузера Firefox и запустить его снова.

7. Запуск веб-браузеров Google Chrome и Chromium в изолированном окружении

Изолированное окружение менее актуально для веб-браузеров Google Chrome и Chromium, чем для веб-браузера Firefox ввиду их более безопасной архитектуры, тем не менее, вы также можете запускать эти веб-браузеры в рамках изолированного окружения для повышения безопасности веб-серфинга.

Примечание: в разделах 7, 8 и 9 описывается методика запуска веб-браузер Google Chrome в изолированном окружении. Вы используете Chromium? В этом случае вам просто придется заменить во всех командах «google-chrome-stable» на «chromium-browser».

После установки Firejail вы можете запустить веб-браузер Google Chrome в изолированном окружении, просто открыв окно терминала и введя в него следующую команду (используйте функции копирования/вставки):

firejail google-chrome-stable

После окончания ввода команды следует нажать клавишу Enter для ее исполнения.

И это все, что нужно для запуска веб-браузера Google Chrome в изолированном окружении! В комплекте поставки утилиты Firejail содержится файл со стандартными параметрами запуска веб-браузера Google Chrome, которые не приводят к значительному снижению его пользовательских качеств, при этом значительно увеличивая безопасность веб-серфинга. Среднестатистическому пользователю, скорее всего, не захочется изменять эти параметры.

Но данная команда позволяет лишь однократно запустить веб-браузер в изолированном окружении; конечно же, использование терминала не является самым удобным решением для запуска приложения с графическим интерфейсом. По этой причине я рекомендую создать иконку для запуска Google Chrome в изолированном окружении.

Для этого в Linux Mint следует навести указатель мыши на иконку веб-браузера на панели окружения рабочего стола Cinnamon, нажать правую кнопку мыши, осуществить переход по открывшемуся меню «Еще — Изменить» и в открывшемся окне заменить содержимое поля Command: с «google-chrome-stable %u» на «firejail google-chrome-stable %u», после чего нажать на кнопку «OK». В других окружениях рабочих столов дистриубтива Linux Mint, в окружении рабочего стола дистриубтива Ubuntu (Unity) и в окружении рабочего стола дистриубтива Fedora (GNOME 3) следует воспользоваться следующей командой с целью создания дополнительного пункта меню приложений для запуска Firefox в изолированном окружении Firejail (используйте функции копирования/вставки, это одна команда):

sed -e 's/Name=Google Chrome/Name=Google Chrome (Firejail)/' -e 's/Exec=google-chrome-stable %u/Exec=firejail google-chrome-stable %u/' < /usr/share/applications/google-chrome.desktop > ~/.local/share/applications/google-chrome-firejail.desktop

Для удаления созданного пункта меню достаточно выполнить следующую команду:

rm ~/.local/share/applications/google-chrome-firejail.desktop

Теперь попробуйте закрыть все окна веб-браузера Google Chrome и воспользоваться иконкой на панели или отдельным пунктом меню приложений для запуска Google Chrome в изолированном окружении. Для того, чтобы убедиться в том, что веб-браузер был запущен именно в изолированном окружении, следует открыть окно терминала и ввести в него следующую команду (используйте функции копирования/вставки):

firejail --tree

После окончания ввода команды следует нажать клавишу Enter для ее исполнения. Данная команда позволяет проверить факт запуска веб-браузера Google Chrome в изолированном окружении.

8. Проверка и модификация параметров запуска веб-браузера Google Chrome в изолированном окружении (для опытных пользователей)

Хотите проверить параметры запуска веб-браузера Google Chrome, используемые утилитой Firejail? Они находятся в файле /etc/firejail/google-chrome-stable.profile.

Вам нужно изменить какие-либо из этих параметров? В этом случае оптимальным решением является не модификация системного файла профиля приложения Google Chrome утилиты Firejail, а копии этого системного файла профиля из вашей домашней директории. Для этого придется воспользоваться приведенными ниже командами (используйте функции копирования/вставки для копирования их в окно терминала).

Первая команда для создания директории файлов профилей утилиты Firejail в домашней директории пользователя:

mkdir -v ~/.config/firejail

После окончания ввода команды следует нажать клавишу Enter для ее исполнения. Далее следует ввести следующую команду для копирования системного файла профиля приложения Google Chrome утилиты Firejail в созданную директорию:

cp -v /etc/firejail/google-chrome-stable.profile ~/.config/firejail

После окончания ввода команды также следует нажать клавишу Enter для ее исполнения. Наконец, в том случае, если у вас установлен текстовый редактор Leafpad, следует ввести в окно терминала следующую команду (если вы используете другой текстовый редактор, отредактируйте команду соответствующим образом):

leafpad ~/.config/firejail/google-chrome-stable.profile

Разумеется, после окончания ввода команды также следует нажать клавишу Enter для ее исполнения. Теперь вы можете экспериментировать с копией файла профиля, причем ваши модификации параметров запуска приложения сохранятся даже после обновления версии Firejail.

Также вы можете запускать Firejail с использованием дополнительных аргументов командной строки. Вы можете найти информацию о них на странице руководства, доступной после исполнения в терминале команды man firejail, а также на данной странице.

6. Запуск веб-браузера Google Chrome в изолированном окружении по умолчанию

Вы можете организовать автоматический запуск веб-браузера Google Chrome в изолированном окружении в рамках вашей учетной записи вне зависимости от способа его запуска. Я не рекомендую выполнять описанные ниже манипуляции, так как в этом случае вы будете периодически сталкиваться с надоедливыми ограничениями, которые не так просто обойти. Но если вы все же хотите использовать веб-браузер Google Chrome в изолированном окружении при любых обстоятельствах, вам придется выполнить две команды в терминале.

Первая команда для копирования файла запуска приложения Google Chrome (используйте функции копирования/вставки, это одна строка):

cp -v /usr/share/applications/google-chrome-stable.desktop ~/.local/share/applications

После окончания ввода команды следует нажать клавишу Enter для ее исполнения. Далее следует ввести вторую команду для замены команды запуска приложения Google Chrome в скопированном файле (используйте функции копирования/вставки, это также одна строка):

sed -i 's/Exec=google-chrome-stable/Exec=firejail google-chrome-stable/g' .local/share/applications/google-chrome-stable.desktop

После окончания ввода команды также следует нажать клавишу Enter для ее исполнения, закрыть все окна веб-браузера Google Chrome и запустить его снова.

Вы можете отменить все внесенные в систему изменения, выполнив следующую команду (используйте функции копирования/вставки):

rm -v ~/.local/share/applications/google-chrome-stable.desktop

После окончания ввода команды также следует нажать клавишу Enter для ее исполнения, закрыть все окна веб-браузера Google Chrome и запустить его снова.

10. Нужно ли запускать другие приложения в изолированном окружении?

Конечно же, веб-браузер является приложением, которое нужно защищать в первую очередь, ведь он является целью большинства атак. Но вы можете запускать и другие приложения в изолированном окружении по аналогии с веб-браузерами Firefox и Google Chrome.

Для этого следует в первую очередь убедиться в том, что в комплекте поставки утилиты Firejail присутствует отдельный файл профиля для приложения, которое вы желаете защитить. Если же такого файла не имеется, Firejail будет использовать стандартный профиль, который может оказаться несовместимым с вашим приложением. Доступные файлы профилей размещаются в директории /etc/firejail.

В том же случае, если вы используете такой клиент электронной почты, как Thunderbird или такой торрент-клиент, как Transmission, использование его в рамках изолированного окружения, созданного средствами утилиты Firejail, можно считать вполне обоснованным.

11. Использование утилиты Firejail для блокировки доступа в Интернет отдельных приложений

Вы также можете использовать утилиту Firejail для блокировки доступа в Интернет отдельного приложения. Да, вам не понадобится создавать сложные правила межсетевого экрана для того, чтобы быть уверенным в том, что какое-либо приложение не передает конфиденциальные данные в Интерент за вашей спиной!

Для этой цели следует использовать параметр --net=none утилиты Firejail. А это пример ограничения доступа к ресурсам сети Интернет мультимедийного проигрывателя VLC:

firejail --net=none vlc

Если в результате использования данного параметра утилиты запускаемое приложение аварийно завершается или выводит большое количество сообщений об ошибках в окно терминала, вы можете попытаться использовать вместо него параметр --protocol=unix. И снова пример ограничения доступа к ресурсам сети Интернет мультимедийного проигрывателя VLC:

firejail --protocol=unix vlc

Данная команда позволяет ограничить доступ к ресурсам сети Интернет без ограничения доступа к шине системных сообщений DBUS. Различие между двумя командами состоит в следующем: в первом случае приложение имеет информацию о доступности сетевого соединения, но не может соединиться с каким-либо ресурсом, во втором — вообще не имеет информации о доступности сетевого соединения.

12. Более подробное руководство на форуме Linux Mint

Вы можете найти более подробное руководство по использованию утилиты Firejail, предназначенное, в том числе, для опытных пользователей, на форуме Linux Mint.

13. Хотите ознакомиться с дополнительными советами?

Хотите узнать о других настройках и приемах работы с Linux-системами? На данном веб-сайте размещено большое количество подобных материалов.