| accueil | articles | projets | contact | plan |
"Non ca n'est pas sale".
dernière mise à jour 21/08/2014
Cette page est un aide mémoire et une proposition de durcissement de l'utilisation de Firefox sous Linux. Les commandes et configurations ont été testées sur Ubuntu 14.04 et Fedora 20.
L'objectif du projet est de limiter les fuites d'informations et corrélations entres usages personnel et professionnel du web, mais aussi de limiter les risques de compromission du poste de travail au travers de l'exploitation de failles du navigateur.
Le niveau de sécurité atteint n'est pas extrême. En particulier, toute exploitation de X11 peut mener à des compromissions catastrophiques (X11 sans suid et execution en root est un premier pas). Une meilleure compartimentation peut être atteinte en utilisant des LXC voire en utilisant un système créé pour comme Qubes-OS (https://qubes-os.org/), mais l'objectif de ce projet est de proposer une méthode relativement simple, utilisable directement sur des distributions ordinaires.
Tous commentaires sont les bienvenus par email: crenard@goupilland.net.
Disclaimer: Configurer votre navigateur comme suit n'améliore pas la confidentialité de vos navigations et ne contribue à l'anonymat que marginalement. Pour ce genre de chose, vous avez besoin de :
Bref, un bon anonymat est obtenu en se pourrissant la vie, good luck (si vraiment vous voulez creuser la question allez demander au Grugq http://grugq.tumblr.com/ )
Je crée 3 profils: pro, perso, anonymous
$ firefox --CreateProfile pro
$ firefox --CreateProfile perso
$ firefox --CreateProfile anonymous
$
Vous pouvez éditer les profils, les renommer, voir changer les defauts en éditant le fichier .mozilla/firefox/profiles.ini
.
En particulier, je positionne Default=1
sur le profil perso, pour l'utiliser par défaut quand Firefox est ouvert depuis un appel externe.
Le profil perso est utilisé comme profil Firefox par défaut. L'option no-remote me permet d'avoir plusieurs instances tournant de concert avec des profils différents.
$ echo "/usr/bin/firefox -p perso --no-remote" > ~/bin/persofox
$ echo "/usr/bin/firefox -p pro --no-remote" > ~/bin/profox
$ echo "/usr/bin/firefox -p anonymous -private --no-remote" > ~/bin/anonfox
$ chmod +x persofox profox anonfox
$
Exécuter l'un ou l'autre des scripts permet de lancer une instance de profil avec le bon profil. Dans le cas du profil anonyme, il démarre par défaut en mode de navigation privée. Ces scripts remplacent avantageusement le lancement direct pour la plupart des Windows Manager.
Installer FireJail: http://l3net.wordpress.com/projects/firejail/.
Chez moi FireJail est installé dans /opt/firejail
.
/opt/firejail/bin/firejail \
--profile=/etc/firejail/firefox.profile \
--seccomp \
/usr/bin/firefox -p pro --no-remote
/opt/firejail/bin/firejail \
--profile=/etc/firejail/firefox.profile \
--seccomp \
/usr/bin/firefox -p perso --no-remote
/opt/firejail/bin/firejail \
--profile=/etc/firejail/firefox.profile \
--seccomp \
/usr/bin/firefox -p anonymous -private --no-remote
Cette partie n'a été testée que sous Ubuntu faute d'un debootstrap sous Fedora.
L'idée est de faire tourner une instance de Firefox (enfin Iceweasel) dans un chroot dédié. La manipulation est encore plus efficace si votre noyau utilise les patchs GrSecurity https://grsecurity.net/ pour durcir l'isolation des chroot.
Nota: le chroot sans recherche d'optimisation particulière consomme 630Mo sur mon disque.
$ sudo mkdir /var/chroot/darkfox
$ sudo debootstrap jessie darkfox
$
/etc/shadow
et /etc/password
dans /
ou seulement les lignes de votre utilisateur courant
$ sudo chroot /var/chroot/darkfox
chroot $ su -
chroot # apt-get install iceweasel
chroot # exit
chroot $ exit
$
$ echo "/opt/firejail/bin/firejail \
--debug --chroot=/var/chroot/darkfox --seccomp \
--profile=/etc/firejail/iceweasel.profile \
iceweasel -private" > bin/darkfox
$ chmod +x bin/darkfox
$
Et voilà !!
Lancer bin/darkfox vous donne un navigateur avec un "pretty good level of isolation".
Si vous voulez distinguer visuellement les différentes instances, vous pouvez leur faire utiliser des thêmes distincts;
Enjoy.
Sources des options et commandes utilisés dans le présent document.
Ligne de commande des outils Mozilla | https://developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options |
Ligne de commande Firefox | http://kb.mozillazine.org/Command_line_arguments |
Firejail | http://l3net.wordpress.com/projects/firejail/ |
Debootstrap et Chroot | https://wiki.ubuntu.com/DebootstrapChroot |
Quelques outils et méthodes alternatives pour la séparation de processus sous Linux.
MBox | http://pdos.csail.mit.edu/mbox/ |
PFlask | https://github.com/ghedo/pflask |
Dive | https://github.com/vi/dive |
Containers | https://github.com/arachsys/containers |
Sandboxer avec SELinux | http://danwalsh.livejournal.com/28545.html |