firejail: eine minimalistische Sandbox für Firefox und Co

Firejail ist eine minimalistische Sandbox, die – wie der Name andeutet – ursprünglich entwickelt wurde, um den Firefox abzusichern. Inzwischen werden aber auch diverse weitere Programme wie VLC, Transmission oder Chromium unterstützt.

Um ein Programm mittels firejail in eine Sandbox zu sperren, reicht es aus, den Aufruf des Programmes mit „firejail“ zu prefixen. Im Falle von Firefox wäre der Aufruf f0lglich

firejail firefox

Einen noch bequemeren Weg, Programme mit firejail abzusichern bietet die so genannten „Symlink invocation“, die ab Version 0.9.38 verfügbar ist.

Bei dieser Technik reicht es, einen Symlink zu Firejail, welcher den Namen des abzusichernden Programmes trägt, zu erstellen. Dieser Symlink muss sich jedoch an einem Ort befinden, der sich in der PATH-Variable vor /usr/bin befindet – üblicherweise wäre das z.B. /usr/local/bin.

Um auf diesem Weg Firefox mittels firejail abzusichern müsste man den Symlink wie folgt erstellen:

su -c'ln -s /usr/bin/firejail /usr/local/bin/firefox'

Fortan wird bei jedem Aufruf von Firefox dieser automatisch mittels firejail in eine Sandbox gesperrt.

Firejail ist noch nicht in den Fedora Repositories vorhanden, kann aber mittels eines COPRs installiert werden.

Kennt Ihr auch ein interessantes Programm, das wir hier im Blog vorstellen sollten? Dann sagt uns Bescheid oder schreibt einen Gastbeitrag für uns.

Nautilus: PDF-Dateien in einer Sandbox öffnen

Bitte beachtet auch die Anmerkungen zu den HowTos!

Wer des öfteren PDFs aus dem Internet herunterlädt oder einfach nur so auf Nummer sicher gehen möchte, das eventuell darin enthaltene Schädlinge bei ihm Schaden anrichten, sollte PDFs am besten in einer Sandbox anzeigen. Wie das mit Nautilus zu bewerkstelligen ist, zeigt das folgende HowTo.

Zuerst werden die Pakete nautilus-actions und policycoreutils-sandbox benötigt, die mittels

su -c'yum install nautilus-actions policycoreutils-sandbox'

installiert werden können.

Anschließend wird eine Datei namens fb17582e-91fc-4f14-9208-e1213587bc20.desktop und mit folgendem Inhalt erstellt:

[Desktop Entry]
Type=Action
Name[de_DE]=In Sandbox öffnen
Name[de]=In Sandbox öffnen
Tooltip[de_DE]=öffnet das Dokument in einer Sandbox
Tooltip[de]=öffnet das Dokument in einer Sandbox
ToolbarLabel[de_DE]=In Sandbox öffnen
ToolbarLabel[de]=In Sandbox öffnen
Icon[de_DE]=evince
Icon[de]=evince
Profiles=profile-zero;

[X-Action-Profile profile-zero]
Name[de_DE]=Vorgabeprofil
Name[de]=Vorgabeprofil
Exec=sandbox -X -t sandbox_x_t /usr/bin/evince %F
Basenames=*.pdf;
MimeTypes=application/pdf;

Nachdem im nächsten Schritt nautilus-actions-config-tool gesartet wurde, wählt man dort im Menü „Werkzeuge“ den Importassistenten aus und importiert die soeben erstellte Datei.

Anschließend findet man im Nautilus-Kontextmenü von PDF-Dateien ein neues Untermenü namens Nautilus-Actions actions, in dem sich unser Eintrag zum Öffnen von PDF-Dateien in einer Sandbox befindet.

Chromium unter Fedora 16 nutzen

Tom „Spot“ Callaway stellt in seinem persönlichen Repository zwar Chromium Builds für Fedora 16 bereit, jedoch erhält man beim Start im Terminal folgende Fehlermeldung

execv failed: Permission denied

Um das Problem zu lösen, muss der SELinux Kontext für die Chromium Sandbox korrigiert werden. Das geschieht über folgenden Befehl

su -c'chcon -t textrel_shlib_t /usr/lib/chromium-browser/chrome-sandbox'

Anschließend lässt sich Chromium wieder ganz normal starten.

Firefox in einer SELinux Sandbox ausführen

Die Sandbox von SELinux ist eine sehr nette Sache, um z.B. Webseiten in einer gesicherten Umgebung zu öffnen und zu verhindern, das der Rest des System durch Malware o.ä. in Mitleidenschaft gezogen wird.

Um beispielsweise Firefox in solch einer Sandbox auszuführen, kann man folgendes Kommando verwenden:

sandbox -t sandbox_web_t -X firefox

Dadurch wird Firefox mit einem „nackten“ Profil, d.h. ohne Erweiterungen etc. in einer Sandbox ausgeführt. Durch den Parameter „-t sandbox_web_t“ wird der Sandbox mitgeteilt, das sie den Zugriff auf das Internet erlauben soll.

Möchte man in der Sandbox ein vorhandenes Profil verwenden, ist dafür folgender Befehl notwendig

sandbox -X -t sandbox_web_t -i /home/<username>/.mozilla/extensions / 
-i /home/<username>/.mozilla/plugins /
-i /home/<username>/.mozilla/firefox/<Profilname>/ 
-i /home/<username>/.mozilla/firefox/profiles.ini firefox

Wobei es zu empfehlen ist, sich für die Sandbox ein separates Profil anzulegen.

(via)