Linux Desktop Hardening mit Firejail am Beispiel Anydesk & KeepassXC

04.10.2024

Was ist Firejail?

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.

Installation von Firejail

Die Installation kann über die Paketverwaltung (apt bei Debian basierten Distributionen) erfolgen:

apt-get install firejail firejail-profiles

Aktivierung der Firejail Konfiguration

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

Technische Details

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
ls -la /usr/local/bin/anydesk 
lrwxrwxrwx 1 root root 17  4. Okt 11:50 /usr/local/bin/anydesk -> /usr/bin/firejail

 




Anydesk


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.


KeepassXC als Firefox AddOn


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.