Версия: 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
Внимание! Если система загружена в режиме полного сохранения, то внесенные изменения в систему будут сохранены. Если режим загрузки другой, то рекомендуется воспользоваться "Сохранением изменений".