Як налаштувати Firejail на Linux

Linux відомий своєю високою стійкістю до загроз, і серед трьох найпопулярніших операційних систем він вирізняється мінімальною кількістю проблем, пов’язаних із захистом персональних даних. Однак, навіть при високому рівні безпеки, завжди є можливість для її вдосконалення. Саме тут на сцену виходить Firejail. Ця утиліта дозволяє користувачам створювати ізольоване середовище для будь-якої програми, обмежуючи її доступ до інших частин системи. Firejail є найпоширенішим засобом для запуску програм у так званій “пісочниці” в Linux, і саме з цієї причини багато дистрибутивів Linux включають його в стандартний набір програм. Далі ми розглянемо, як встановити Firejail на Linux.

ПІДКАЗКА: Прокрутіть сторінку вниз, щоб переглянути відеоінструкцію в кінці цієї статті.

Інсталяція

Ubuntu

sudo apt install firejail

Debian

sudo apt-get install firejail

Arch Linux

sudo pacman -S firejail

Не задовольняє версія Firejail з репозиторію Arch? Можна розглянути встановлення Git версії з AUR.

Fedora

На жаль, для Fedora не існує офіційного пакету Firejail. Він відсутній у стандартних репозиторіях, і немає підстав вважати, що ситуація зміниться. Однак користувачі Fedora можуть скористатися репозиторіями Copr для встановлення цієї програми.

Copr працює за аналогією з PPA в Ubuntu або AUR в Arch Linux. Кожен користувач може створити свій репозиторій Copr і розмістити в ньому програмне забезпечення. Існує багато репозиторіїв Copr з Firejail, тому якщо обраний нами перестане оновлюватись, можна скористатися сайтом Copr для пошуку альтернативного варіанту.

Для встановлення Firejail на Fedora, виконайте наступні команди:

sudo dnf copr enable ssabchew/firejail

sudo dnf install firejail

OpenSUSE

Як і більшість сторонніх програм для Suse, Firejail можна знайти в OBS. Версії Firejail доступні для швидкого встановлення на останні версії Leap і Tumbleweed. Завантажити їх можна тут.

Не забудьте скористатися кнопкою “в один клік” для встановлення через YaST.

Інші дистрибутиви

Вихідний код Firejail є відкритим і доступний для компіляції, якщо ви використовуєте дистрибутив Linux, який офіційно не підтримується.

Для початку необхідно встановити пакет Git на свій дистрибутив Linux. Зазвичай це можна зробити через менеджер пакетів, знайшовши “git” та встановивши його. Також переконайтеся, що встановили всі необхідні інструменти для збірки, специфічні для вашого дистрибутиву (інструкції можна знайти у вікі вашого дистрибутива). Наприклад, для компіляції в Debian/Ubuntu потрібен пакет build-essential.

Після встановлення git, скористайтеся ним для завантаження останньої версії Firejail.

git clone https://github.com/netblue30/firejail.git

Тепер код знаходиться на вашому комп’ютері. Перейдіть в папку, куди завантажили код, за допомогою команди cd.

cd firejail

Перед компіляцією потрібно виконати конфігурацію. Ця операція просканує систему і повідомить програмі про апаратні характеристики та інші деталі. Без цього програмне забезпечення не зможе зібратися.

configure

Програма готова до компіляції. Згенеруємо Makefile. Makefile містить інструкції для збірки програмного забезпечення. Виконайте це за допомогою команди make.

make

Нарешті, встановіть Firejail у систему:

sudo make install-strip

Використання Firejail

Запустити програму в пісочниці Firejail досить легко. Для базової ізоляції програми потрібно просто додати префікс “firejail” перед командою. Наприклад: щоб запустити текстовий редактор Gedit в ізольованій пісочниці, де він не матиме доступу до інших частин системи, введіть: firejail gedit. Цього достатньо для базової ізоляції. Проте, зважаючи на складність цієї програми, може знадобитися додаткова конфігурація.

Наприклад: якщо ви запустите firejail firefox, браузер Firefox буде працювати в ізольованому середовищі, і жодна інша програма не зможе з ним взаємодіяти. Це чудово для безпеки, але якщо ви захочете завантажити файл в певну папку, у вас можуть виникнути проблеми, оскільки Firejail може не мати доступу до всіх папок в системі. Тому, потрібно налаштувати, до яких саме папок пісочниця МОЖЕ та НЕ МОЖЕ мати доступ. Ось як це робиться:

Створення білого та чорного списку профілів

Налаштування білого та чорного списку потрібне для кожної програми окремо. Немає загальних налаштувань за замовчуванням для доступу ізольованих програм. Firejail вже має багато готових конфігураційних файлів. Ці файли забезпечують розумні налаштування за замовчуванням, тому більшості користувачів не доведеться нічого змінювати. Тим не менш, якщо ви досвідчений користувач, редагування цих файлів може бути корисним.

Відкрийте термінал і перейдіть до каталогу /etc/firejail.

cd /etc/firejail

Скористайтеся командою ls для перегляду вмісту каталогу і застосуйте канал для зручного перегляду посторінково. Натискайте клавішу Enter для переходу до наступної сторінки.

Знайдіть файл конфігурації для потрібної програми та запам’ятайте його назву. Для прикладу, розглянемо Firefox.

ls | more

Відкрийте профіль Firejail для Firefox у текстовому редакторі nano.

sudo nano /etc/firejail/firefox.profile

Як згадувалось раніше, Firejail має налаштування за замовчуванням, розроблені таким чином, щоб вони підходили більшості користувачів. Наприклад, незважаючи на те, що програма ізольована, папка ~/Downloads та папки з плагінами залишаються доступними. Щоб додати додаткові елементи до білого списку, знайдіть відповідний розділ у файлі конфігурації та додайте потрібні правила.

Наприклад, щоб спростити завантаження фотографій у профіль Facebook через Firefox у Firejail, потрібно додати:

whitelist ~/Pictures

Цей самий принцип застосовується і для створення чорного списку. Щоб заборонити Firefox в пісочниці доступ до певних папок, можна використовувати наступну команду:

blacklist ~/secret/file/area

Збережіть зміни, натиснувши Ctrl + O

Примітка: ” ~/” означає /home/ім’я поточного користувача

Висновок

Використання пісочниці є ефективним способом захисту від шкідливого програмного забезпечення або зловмисників, які намагаються викрасти ваші дані. Якщо ви стурбовані безпекою в Linux, варто серйозно розглянути можливість використання цього інструменту.