Linux genießt den Ruf, ein sehr sicheres Betriebssystem zu sein, und tatsächlich treten im Vergleich zu anderen großen Betriebssystemen deutlich weniger Datenschutzprobleme auf. Trotz dieser Stärke gibt es immer Möglichkeiten zur Verbesserung. Hier kommt Firejail ins Spiel. Diese Anwendung ermöglicht es Benutzern, jede laufende App zu „isolieren“ oder in einer „Sandbox“ zu betreiben. Durch Firejail können Sie eine Anwendung abgrenzen und ihren Zugriff auf andere Systemkomponenten verhindern. Firejail ist das beliebteste Programm-Sandboxing-Tool unter Linux, weshalb viele Distributionen diese Software standardmäßig mitliefern. Hier erfahren Sie, wie Sie Firejail auf Ihrem Linux-System installieren können.
Spoiler-Warnung: Ein Video-Tutorial am Ende dieses Artikels führt Sie durch den Installationsprozess.
Installation
Ubuntu
sudo apt install firejail
Debian
sudo apt-get install firejail
Arch Linux
sudo pacman -S firejail
Sind Sie mit der Repository-Version von Firejail unter Arch nicht zufrieden? Erwägen Sie den Build der Git-Version aus dem AUR.
Fedora
Leider gibt es kein Firejail-Paket in den offiziellen Fedora-Repositories. Es gibt auch keine Anzeichen dafür, dass sich dies bald ändern wird. Fedora-Benutzer können die Software jedoch mithilfe von Copr installieren.
Copr ist vergleichbar mit PPAs unter Ubuntu oder dem Arch Linux AUR. Jeder Benutzer kann ein Copr-Repository erstellen und Software darin bereitstellen. Es existieren viele Firejail Copr Repositories. Sollte das hier aufgeführte Repository nicht mehr aktuell sein, können Sie die Website besuchen und ein anderes auswählen.
So installieren Sie Firejail unter Fedora:
sudo dnf copr enable ssabchew/firejail
sudo dnf install firejail
OpenSUSE
Wie bei vielen Drittanbieter-Anwendungen für Suse finden Benutzer Firejail im OBS. Es gibt einfach zu installierende Versionen für die neuesten Ausgaben von Leap und Tumbleweed. Sie können Firejail hier finden.
Klicken Sie dort auf den 1-Klick-Installationsbutton, um die Installation via YaST zu starten.
Andere Distributionen
Der Quellcode für Firejail ist leicht verfügbar und kann einfach kompiliert werden, falls Sie eine nicht unterstützte Linux-Distribution nutzen.
Installieren Sie zunächst das Git-Paket. Nutzen Sie hierfür Ihren Paketmanager, suchen Sie nach „git“ und installieren Sie es. Stellen Sie zudem sicher, dass alle Build-Tools für Ihre Distribution installiert sind (Anleitungen hierzu finden Sie im Wiki Ihrer Distribution). Unter Debian/Ubuntu benötigen Sie beispielsweise `build-essential`.
Nach der Installation von Git können Sie die neueste Version der Firejail-Software beziehen:
git clone https://github.com/netblue30/firejail.git
Der Code ist nun lokal auf Ihrem System. Wechseln Sie mit `cd` in den heruntergeladenen Ordner, um mit dem Erstellungsprozess zu beginnen.
cd firejail
Bevor die Software kompiliert werden kann, muss eine Konfiguration durchgeführt werden. Dadurch wird Ihr System analysiert und die Software informiert, welche Hardware und Spezifikationen vorliegen. Diese Schritte sind essenziell, da die Software ansonsten nicht korrekt erstellt werden kann.
./configure
Nun ist das Programm für die Kompilierung vorbereitet. Als Nächstes erzeugen wir ein Makefile, das Anweisungen zum Erstellen der Software enthält, mit dem `make`-Befehl.
make
Zuletzt installieren Sie Firejail auf Ihrem System:
sudo make install-strip
Verwendung von Firejail
Das Sandboxing von Anwendungen mit Firejail ist sehr einfach. Vor den Befehl einer Anwendung wird einfach „firejail“ vorangestellt. Um beispielsweise den Texteditor Gedit in einer Sandbox laufen zu lassen, während er vom Rest des Systems isoliert wird, verwenden Sie `firejail gedit` im Terminal. So funktioniert es im Groben. Für einfaches Sandboxing reicht diese Methode. Da die Software jedoch recht detailliert ist, sind einige Konfigurationen erforderlich.
Ein Beispiel: Wenn Sie `firejail firefox` ausführen, wird der Firefox-Browser in einer geschützten Sandbox ausgeführt und ist vom Rest des Systems isoliert. Dies ist ideal für die Sicherheit. Wenn Sie jedoch ein Bild in einem bestimmten Verzeichnis herunterladen möchten, ist dies möglicherweise nicht ohne Weiteres möglich, da Firejail möglicherweise keinen Zugriff auf alle Verzeichnisse des Systems hat. Daher müssen Sie konfigurieren, welche Zugriffe innerhalb der Sandbox erlaubt sein sollen und welche nicht. So geht das:
Profil-Whitelisting und Blacklisting
Whitelisting und Blacklisting werden pro Anwendung konfiguriert. Es gibt keine Möglichkeit, globale Standardeinstellungen für den Zugriff von inhaftierten Apps festzulegen. Firejail enthält bereits zahlreiche Konfigurationsdateien, die sinnvolle Standardwerte bereitstellen, sodass normale Nutzer keine Anpassungen vornehmen müssen. Fortgeschrittene Nutzer können die Konfigurationsdateien jedoch editieren.
Öffnen Sie ein Terminal und navigieren Sie zu `/etc/firejail`.
cd /etc/firejail
Verwenden Sie den `ls`-Befehl mit einer Pipe zu `more`, um den gesamten Verzeichnisinhalt anzuzeigen. Betätigen Sie die Enter-Taste, um die einzelnen Seiten anzuzeigen.
ls | more
Suchen Sie die Konfigurationsdatei für Ihre App und notieren Sie sie sich. In unserem Beispiel verwenden wir Firefox.
Öffnen Sie das Firejail-Profil von Firefox im Nano-Texteditor.
sudo nano /etc/firejail/firefox.profile
Wie bereits erwähnt, bietet Firejail vernünftige Standardeinstellungen. Die Entwickler haben Standardeinstellungen erstellt, die für die meisten Benutzer funktionieren sollten. So sind beispielsweise das Verzeichnis `~/Downloads` sowie Plugin-Verzeichnisse des Systems standardmäßig zugänglich. Um weitere Elemente zur Whitelist hinzuzufügen, bearbeiten Sie die Konfigurationsdatei in dem entsprechenden Abschnitt.
Um beispielsweise das Hochladen von Fotos in mein Facebook-Profil im Firefox-Sandbox zu ermöglichen, muss ich Folgendes hinzufügen:
whitelist ~/Pictures
Das gleiche Prinzip gilt für das Blacklisting. Um zu verhindern, dass die Sandbox-Version von Firefox auf bestimmte Verzeichnisse zugreifen kann, können Sie beispielsweise Folgendes verwenden:
blacklist ~/secret/file/area
Speichern Sie Ihre Änderungen mit Strg + O.
Hinweis: `~/` bedeutet `/home/aktueller Benutzer`
Fazit
Sandboxing ist eine ausgezeichnete Methode, um sich vor unsicheren Anwendungen oder böswilligen Akteuren zu schützen, die versuchen, Daten zu stehlen. Wenn Sie unter Linux Wert auf Sicherheit legen, sollten Sie diesem Tool definitiv eine Chance geben.