Firejail ist ein Programm, das Applikationen auf einem Linux Desktop isoliert in einer Sandbox ausführt. Wenn nun in einer der ausgeführten Applikationen (Thunderbird, Firefox, Anydesk, KeepassXC usw.) eine Sicherheitslücke ausgenutzt wird, begrenzt sich der mögliche Schaden auf die isolierte Sandbox. Ein Zugriff auf den gesamten Desktop wird verhindert, indem bsp. der Zugriff auf das Home-Verzeichnis eingeschränkt wird.
Die Installation kann über die Paketverwaltung (apt bei Debian basierten Distributionen) erfolgen:
apt-get install firejail firejail-profiles
Firejail bringt schon verschiedenste, vordefinierte Sandbox-Profile mit. Diese befinden sich unter /etc/firejail/. Wenn Anpassungen an den Profilen nötig sind, sollten diese nach ~/.config/firejail kopiert und dort angepasst werden. Das Home Verzeichnis hat immer Vorrang vor den Standardprofilen in /etc/firejail/.
Firejail kann automatisch die vorhandenen Programme auf dem Desktop erkennen und die entsprechenden Profile aktivieren:
sudo firecfg
Alles auf Default zurücksetzen (Symlinks entfernen) kann man mit:
sudo firecfg --clean
Firejail erstellt für jede Applikation einen Symlink unter /usr/local/bin. Diese Verknüpfung verweist dann auf den ursprünglichen Pfad der Applikation mit dem Firejail Aufruf.
Beispiel Anydesk:
which -a anydesk
/usr/local/bin/anydesk
/usr/bin/anydesk
/bin/anydesk
Anydesk Symlink auf Firejail:
ls -la /usr/local/bin/anydesk
lrwxrwxrwx 1 root root 17 4. Okt 11:50 /usr/local/bin/anydesk -> /usr/bin/firejail
Startet man nun Anydesk, wird die Applikation in einer Sandbox ausgeführt und der Zugriff auf das lokale Dateisystem ist nicht mehr möglich. Das führt dann zu dem Folgeproblem, dass man keine Dateien mehr vom lokalen System auf das Remote System kopieren kann. Daher können wir die Anydesk-Firejail-Config anpassen, damit der "Downloads" Ordner des aktuellen Benutzers erlaubt wird.
Standardprofil von Anydesk in den Home Ordner kopieren:
cp /etc/firejail/anydesk.profile $HOME/.config/firejail
Den Downloads-Pfad zur Whitelist hinzufügen:
echo "
noblacklist $HOME/Downloads
whitelist $HOME/Downloads" >> $HOME/.config/firejail/anydesk.profile
Jetzt sollte Anydesk Zugriff auf den persönlichen Downloads Ordner des aktuellen Benutzers haben.
Wird Firefox und KeepassXC in der Sandbox ausgeführt, können Sie keine Daten mehr miteinander austauschen und das Auto-Fill-Feature funktioniert nicht mehr. Damit das wieder klappt, müssen zwei Configs angepasst werden:
Standardprofil von Firefox und KeepassXC in den Home Ordner kopieren:
cp /etc/firejail/keepassxc.profile $HOME/.config/firejail
cp /etc/firejail/firefox-esr.profile $HOME/.config/firejail
KeepassXC Config anpassen und Zugriff auf das RUNUSER/APP Verzeichnis erlauben:
echo " noblacklist ${RUNUSER}/app" >> $HOME/.config/firejail/keepassxc.profile
In der Firefox Config den Zugriff auf das gleiche Verzeichnis für den Datenaustausch erlauben:
echo "
noblacklist ${RUNUSER}/app
mkdir ${RUNUSER}/app/org.keepassxc.KeePassXC
whitelist ${RUNUSER}/app/org.keepassxc.KeePassXC" >> $HOME/.config/firejail/firefox-esr.profile:
Jetzt sollte das KeepassXC AddOn aus Firefox wieder mit dem Passwortmanager kommunizieren können. Weitere Applikationen können analog dieser Beispiele angepasst werden. Falls man eine Applikation nicht mehr in der Sandbox ausführen möchte, einfach den Symlink unter /usr/local/bin/ entfernen.