[gelöst] Iceweasel plus Firejail

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
tomi89
Beiträge: 269
Registriert: 21.08.2014 00:21:52

[gelöst] Iceweasel plus Firejail

Beitrag von tomi89 » 14.02.2015 16:16:53

Hallo Leute,

ich surfe mit Iceweasel und Firejail.

Falls es jemanden interessiert: http://l3net.wordpress.com/2014/09/19/f ... a-firefox/

Das funktioniert wunderbar als Standardbenutzer.

Sobald ich das jedoch unter einem anderen Benutzer ausführen möchte erscheint eine Fehlermeldung:

Code: Alles auswählen

sudo -u browser firejail /usr/bin/iceweasel
No protocol specified
No protocol specified
Error: cannot open display: :0.0
Die /etc/sudoers hatte ich bereits bearbeitet:

Code: Alles auswählen

Defaults	env_reset
Defaults	env_keep = "DISPLAY XAUTHORITY"
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# User privilege specification
root	ALL=(ALL:ALL) ALL
user	ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d
user ALL = (browser) NOPASSWD: /usr/bin/firejail, /usr/bin/iceweasel, /usr/bin/jondofox-start
Der Benutzer wurde bereits neu erstellt um mögliche Fehlerquellen auszuschließen:

Code: Alles auswählen

sudo groupadd webmail
sudo gpasswd -a user webmail
sudo adduser --system --home /home/browser/ --disabled-login browser
sudo gpasswd -a browser webmail
sudo chgrp webmail ~/.Xauthority
chmod 640 ~/.Xauthority
Habe ich noch etwas vergessen oder was?
Zuletzt geändert von tomi89 am 14.02.2015 17:36:40, insgesamt 1-mal geändert.

uname
Beiträge: 12044
Registriert: 03.06.2008 09:33:02

Re: Iceweasel plus Firejail

Beitrag von uname » 14.02.2015 16:58:04

Auf meinem Produktivsystem probiere ich sowas nicht aus und mein Live-Crunchbang-Stick ist leider nur 32Bit. Daher konnte ich nur den Quellcode kompilieren und diese Version probieren.

Erst mal:

Code: Alles auswählen

Firejail is a SUID security sandbox program that reduces the risk of security breaches by restricting the running environment of untrusted applications using Linux namespaces and seccomp-bpf.
Hierzu braucht mal viel Vertrauen. Denn natürlich hat das Programm "firejail" erst mal root-Rechte.

Code: Alles auswählen

./firejail iceweasel
...
Warning: seccomp disabled, it requires a Linux kernel version 3.5 or newer.
Child process initialized
Ich befürchte bei Debian Wheezy gibt es Probleme. Bei mir wurde in Crunchbang Waldorf (kompilierte Version) die Funktion "seccomp" deaktiviert. Damit scheint wohl das ganze gar nicht zu funktionieren. Es unterscheidet sich

Code: Alles auswählen

file:///bin
file:///home
in den beiden Versionen nicht. Komisch. Mag aber an meiner 32-Bit-Version und am veralteteten Kernel liegen. Nur wenn in der "abgesicherten" Version keine Daten mehr sind macht der Einsatz überhaupt Sinn.

Ich für meinen Fall verzichte auf sowas. Wenn dann sollte man ehrliche chroot-Umgebungen nutzen. Leider kenne ich keine. Ich für meinen Fall schreibe einfach ~/.mozilla in die Ramdisk und hoffe, dass es Iceweasel-Sicherheitslücke es nie schafft auf meine Benutzerdaten unter /home zuzugreifen. Sinnvoll wäre es einen Benutzer "browser" anzulegen, der z.B. keinen Zugriff auf /home/tomi89 hat. Das hilft wahrscheinlich mehr als irgendein SUID-Zeug aus einer Fremdquelle.

Anmerkung:
Schau dir noch

Code: Alles auswählen

lsof |fgrep firejail
lsof |fgrep iceweasel
pstree -p
an, um alles genau zu verstehen.

Zum eigentlichen Problem:
Es scheint ein X-Server-Problem zu sein. Versuche mal alle Benutzer für dein Display zu berechtigen:

Code: Alles auswählen

xhost +
Und dann erst den Befehl.

tomi89
Beiträge: 269
Registriert: 21.08.2014 00:21:52

Re: Iceweasel plus Firejail

Beitrag von tomi89 » 14.02.2015 17:23:06

Das ist mir schon klar.

Aber lieber Firejail als sudo ausführen (ich weis ja was es tut) und Iceweasel absichern als nicht.

Dazu habe ich sowieso einen neuen Benutzer erstellt, welcher sobald es mal ordentlich funktioniert noch etwas abgesichert wird.

Den Zugriff auf /home/user/ habe ich dem Benutzer bereits entzogen.

Das Iceweasel Profil habe ich nun nach /tmp gelegt, danke füpr den Tipp.

Seccomp funktioniert nur wenn man den Backportskernel benutzt.

Wenn ich auf Wheezy amd64 mit dem Backports Kernel das .deb Paket von Sourceforge installiere, sieht das als Standardbenutzer so aus:

Code: Alles auswählen

sudo firejail /usr/bin/iceweasel -P default --no-remote
Reading profile /etc/firejail/iceweasel.profile
Reading profile /etc/firejail/firefox.profile
Reading profile /etc/firejail/disable-mgmt.inc
Reading profile /etc/firejail/disable-secret.inc
Parent pid 11303, child pid 11304
Interface           IP                  Mask                Status              
lo                  127.0.0.1           255.0.0.0           UP                  
eth0                192.168.88.254      255.255.255.0       UP                  

Child process initialized
Hat jetzt geklappt, naja fast.

Code: Alles auswählen

sudo -u browser firejail /usr/bin/iceweasel
Reading profile /etc/firejail/iceweasel.profile
Reading profile /etc/firejail/firefox.profile
Reading profile /etc/firejail/disable-mgmt.inc
Reading profile /etc/firejail/disable-secret.inc
Parent pid 11579, child pid 11580
Interface           IP                  Mask                Status              
lo                  127.0.0.1           255.0.0.0           UP                  
eth0                192.168.88.254      255.255.255.0       UP                  

Child process initialized
Could not create per-user gnome configuration directory `/home/browser/.gnome2/': Permission denied

parent is shutting down, bye...
Das Problem ist damit schonmal gelöst.

VIELEN DANK dafür uname.
Zuletzt geändert von tomi89 am 14.02.2015 17:45:54, insgesamt 4-mal geändert.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Iceweasel plus Firejail

Beitrag von Cae » 14.02.2015 17:29:11

Vorneweg: Firejail ist hier nicht das Problem, welches zur Fehlermeldung fuehrt. Ob das Tool empfehlenswert ist, sei mal dahingestellt.

Dagegen geht
uname hat geschrieben:

Code: Alles auswählen

xhost +
Und dann erst den Befehl.
in die richtige Richtung, schiesst aber ueber das Ziel hinaus. Mit der Zeile erlaubt man saemtlichen Benutzern Zugriff auf den X-Server, auch remote (sofern der X-Server auf einem Netzwerksocket haengt, was nicht standardmaessig der Fall ist). Stattdessen sollte man spezifischer einschraenken:

Code: Alles auswählen

#!/bin/sh

xhost +si:localuser:browser
sudo -u browser /usr/bin/firejail ...
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

tomi89
Beiträge: 269
Registriert: 21.08.2014 00:21:52

Re: [gelöst] Iceweasel plus Firejail

Beitrag von tomi89 » 14.02.2015 17:39:16

Sehrschön, danke cae.

uname
Beiträge: 12044
Registriert: 03.06.2008 09:33:02

Re: [gelöst] Iceweasel plus Firejail

Beitrag von uname » 14.02.2015 18:46:30

/tmp ist nicht unbedingt tmpfs

Code: Alles auswählen

mount
df /tmp
Ich habe Anpassungen in /etc/fstab vorgenommen.

Antworten