Пожарен затвор е рамка, която разработва система за изолирано изпълнение на графични приложения, конзола и сървър. Използване на Firejail минимизира риска от компрометиране на системата main, когато стартирате ненадеждни или потенциално уязвими програми. Програмата е написана на C, разпространява се под лиценза GPLv2 и може да работи на всяка Linux дистрибуция.
Пожарен затвор използва пространства от имена, AppArmor и филтриране на системни повиквания (seccomp-bpf) на Linux за изолация. Веднъж стартирани, програмата и всички нейни дъщерни процеси използват отделни представяния на ресурси на ядрото, като мрежовия стек, таблицата на процесите и точките на монтиране.
Зависимите приложения могат да се комбинират в обща пясъчник. По желание Firejail може да се използва и за стартиране на Docker, LXC и OpenVZ контейнери.
За Firejail
За разлика от изолационните инструменти за контейнери, Firejail е изключително лесен за конфигуриране и не изисква подготовка на системно изображение: съставът на контейнера се формира въз основа на съдържанието на текущата файлова система и се премахва след края на приложението.
Se предоставят гъвкави инструменти за задаване на правила за достъп до файловата система, можете да определите кои файлове и директории са отказани или отказан достъп, да свържете временни файлови системи (tmpfs) за данни, да ограничите достъпа само за четене до файлове или директории, да комбинирате директории, използвайки bind-mount и overlayfs.
За голям брой популярни приложения, включително Firefox, Chromium, VLC, наред с други, профилите за изолиране на системни обаждания са подготвени от кутията.
За да се получат необходимите привилегии за настройване на пясъчник, изпълнимият файл firejail се инсталира с коренния флаг SUID (след инициализация привилегиите се нулират).
Какво е новото в Firejail 0.9.62?
В тази нова версия е подчертано, че идва с повече профили, добавени за стартиране на приложението изолирани, с които общият брой на профилите достига до 884.
Освен него настройката за ограничение на копиране на файлове е добавена към конфигурационния файл /etc/firejail/firejail.config, Това ви позволява да ограничите размера на файловете, които ще бъдат копирани в паметта, като използвате опциите „–private- *“ (по подразбиране ограничението е зададено на 500MB).
Извикването на chroot вече се извършва не въз основа на пътя, а вместо това използва точки за монтиране въз основа на дескриптора на файла.
От останалите промени:
- В профилите е разрешено използването на дебъгъри.
- Подобрено филтриране на системни обаждания с помощта на механизма seccomp.
- Осигурено е автоматично откриване на флаговете на компилатора.
- Директорията / usr / share е в белия списък за различни профили.
- Новите помощни скриптове gdb-firejail.sh и sort.py са добавени към секцията conrib.
- Подобрена защита в привилегирования етап на изпълнение на кода (SUID).
- За профили са внедрени нови условни знаци HAS_X11 и HAS_NET, за да се провери наличието на X сървъра и достъп до мрежата.
Как да инсталирам Firejail на Linux?
За тези, които се интересуват от възможността да инсталират Firejail на своята Linux дистрибуция, те могат да го направят, следвайки инструкциите че споделяме по-долу.
На Debian, Ubuntu и деривати инсталацията е доста проста, тъй като те могат да инсталират Firejail от хранилищата на неговото разпространение или те могат да изтеглят подготвените deb пакети от sourceforge.
В случай на избор на инсталацията от хранилищата, просто отворете терминал и изпълнете следната команда:
sudo apt-get install firejail
Или ако са решили да изтеглят deb пакетите, те могат да инсталират с предпочитания от тях мениджър на пакети или от терминала с командата:
sudo dpkg -i firejail_0.9.62_1*.deb
Докато за случая с Arch Linux и производни от това, просто изпълнете:
sudo pacman -S firejail
За случая с Fedora, RHEL, CentOS, OpenSUSE или който и да е друг дистрибутор с поддръжка за rpm пакети може да получи пакетите от следната връзка.
И инсталацията се извършва с:
sudo rpm -i firejail-0.9.62-1.x86_64.rpm
конфигурация
След като инсталацията приключи, сега ще трябва да конфигурираме пясъчника и също така трябва да сме активирали AppArmor.
От терминал ще напишем:
sudo firecfg sudo apparmor_parser -r /etc/apparmor.d/firejail-default
За да знаете неговото използване и интегриране, можете да се консултирате с неговото ръководство В следващия линк.