Версия: 0.9.68
Firejail — это простая в использовании Setuid программа-песочница, снижающая риск нарушения безопасности, ограничивая среду запуска недоверенных приложений с помощью (namespaces), фильтрации системных вызовов (seccomp-bpf) и возможностей AppArmor.
Возможности:
Контактная информация:
Официальный сайт
Проект GitHub
Разработчик:
Sergej Pupykin
Daniel M. Capella
T.J. Townsend
Лицензия:
GPL2
Firejail использует профили для установки защиты безопасности для каждого из приложений, выполняемых внутри него - профили по умолчанию можно найти в /etc/firejail/application.profile.
Если требуются пользовательские профили для приложений, не включенные в пакет, или необходимо изменить значения по умолчанию, то можно поместить новые правила или копии значений по умолчанию в каталог. Присутствует возможность иметь несколько файлов пользовательских профилей для одного приложения, а также использовать один и тот же файл профиля для нескольких приложений.
Если у firejail нет профиля для отдельных приложений - он использует ограничительный общесистемный профиль по умолчанию. Это может выглядеть так, что приложение не будет работать так, как необходимо, без появления создания пользовательского профиля с ограниченными возможностями.
Синтаксис:
firejail [опции] [программы и аргументы]
Основные опции:
| Опция | Описание |
|---|---|
| -- | Сигнализирует об окончании действия опций и отключает дальнейшую обработку опций |
| --allow-debuggers | Разрешить использовать такие инструменты, как strace и gdb, внутри песочницы |
| --apparmor | Включить AppArmor |
| --appimage | Включить AppImage |
| --blacklist=filename | Внести каталог или файл в черный список |
| --build | Создать профиль для приложения, внесенный в белый список |
| --caps | Включить фильтр возможностей Linux по умолчанию |
| --chroot=dirname | chroot в каталог |
| --dbus-system=filter|none | Установить политику доступа к системным DBus |
| --dbus-log=file | Установить местоположение файла журнала DBus |
| --dbus-user=filter|none | Установить политику доступа к сеансовым DBus |
| --dbus-user.call=rule | Разрешить вызовы в сеансовых DBus в соответствии с правилом |
| --debug | Выводить отладочные сообщения песочницы |
| --debug-blacklists | Внесение в черный список отладки |
| --debug-caps | Вывод всех распознанных возможностей |
| --debug-protocols | Вывод всех распознанных протоколов |
| --help, -? | Вывод справки |
| --hostname=name | Задать имя хоста |
| --ignore=command | Игнорировать команду в файлах профиля |
| --ip=address | Установить IP-адрес интерфейса |
| --ip=dhcp | Получить IP-адрес, запустив dhclient |
| --ip6=address | Установить IPv6-адрес интерфейса |
| --ipc-namespace | Включить новое пространство имен IPC. |
| --join=name|pid | Присоединение к песочнице |
| --list | Перечислить все песочницы |
| --ls=name | Список файлов в контейнере "песочницы" |
| --mac=xx:xx:xx:xx:xx:xx | Установить MAC-адрес интерфейса |
| --mkdir=dirname | Создать каталог |
| --name=name | Задать имя песочницы |
| --netfilter[=filename,arg1,arg2,arg3 ...] | Включить брандмауэр |
| --netlock | Включить функцию блокировки сети |
| --netmask=address | Определить сетевую маску при работе с неконфигурированными родительскими интерфейсами |
| --noexec=filename | Повторно смонтировать файл или каталог noexec, nosuid и nodev |
| --noprofile | Не использовать профиль безопасности |
| --noroot | Установить пространство имен пользователя только с текущим пользователем |
| --private | Временный домашний каталог |
| --private=directory | Используйте каталог в качестве домашнего пользователя |
| --private-home=file,directory | Создать новый домашний адрес пользователя во временной файловой системе и скопировать файлы и каталоги из списка в новый домашний адрес |
| --private-tmp | Смонтировать tmpfs поверх каталога /tmp |
| --profile=filename|profile_name | Использовать пользовательский профиль |
| --profile-path=directory | Использовать этот каталог для поиска файлов профиля |
| --quiet | Отключить вывод Firejail |
| --read-only=filename | Установить доступ к каталогу или файлу только для чтения |
| --seccomp | Включить фильтр seccomp и применить черный список по умолчанию |
| --shell=none | Запустить программу напрямую, без пользовательской оболочки |
| --trace | Отслеживание системных вызовов open, access и connect |
| --version | Распечатать версию программы и завершить работу |
| --whitelist=filename | Внести каталог или файл в белый список |
| --writable-etc | Монтировать в каталог /etc для чтения и записи |
| --writable-run-user | Разрешить доступ к /run/user/$UID/systemd и /run/user/$UID/gnupg. |
| --x11 | Включить песочницу X11. Программное обеспечение сначала проверяет, установлен ли Xpra, а затем проверяет, установлен ли Xephyr. Если ничего не получится, он попытается использовать расширение безопасности X11 |
Подробнее о программе и опциях:
firejail --help
#или
firejail -?
Примеры:
Запуск Mozilla Firefox:
firejail firefox
Отладка песочницы Firefox:
firejail --debug firefox
Запустить Mozilla Firefox с новым пустым домашним каталогом и указанной настройкой DNS-сервера:
firejail --private --dns=8.8.8.8 firefox
Запустить Firefox в новом соединении:
firejail --net=eth0 firefox
Запустить Firefox и песочницу X11:
firejail --x11=xorg firefox
Список всех запущенных песочниц:
firejail --list
Полностью запретить доступ к домашнему каталогу:
firejail firefox --private
Для изолированного запуска приложения выполнить команду:
firejail имя_приложения
Например:
firejail firefox
При запуске браузера в изолированной среде доступ к большинству пользовательских данных ограничен. Firejail имеет стандартные настройки по умолчанию. Даже если приложение находится в контейнере, каталог ~/Downloads и каталоги плагинов в системе доступны:

Запустив браузер обычным способом - будут доступны все файлы и каталоги:

Вывод всех доступных профилей приложений:
ls /etc/firejail

Чтобы добавить элементы белого и черного списка, следует перейти в конфигурационный файл (на примере Mozilla Firefox):
sudo vim /etc/firejail/firefox.profile #Вместо vim можно использовать любой текстовый редактор
Для добавления элементов в белый список следует в раздел whitelist указать необходимый файл/каталог, например:
whitelist /home/superadmin/Изображения/
После добавления доступны каталоги:

Для добавления элементов в черный список следует в раздел blacklist указать необходимый файл/каталог, например:
blacklist /home/superadmin/Изображения/image.png
После добавления файл не доступен:

Установить можно отдельным модулем или пакетом:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Модуль, необходимый для установки:
Для установки следует воспользоваться утилитой "Установка и удаление программ".
Пакет, необходимый для установки:
firejail
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены после перезагрузки.
Если режим загрузки другой, то рекомендуется воспользоваться утилитой "Сохранение изменений" до перезагрузки системы.