Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
firejail [2021/02/13 16:07] – cyrille | firejail [2021/02/13 18:52] (Version actuelle) – ut cyrille | ||
---|---|---|---|
Ligne 14: | Ligne 14: | ||
Depuis les dépôts | Depuis les dépôts | ||
+ | <code | download> | ||
apt install firejail | apt install firejail | ||
+ | </ | ||
+ | <code | download> | ||
sudo apt install firejail | sudo apt install firejail | ||
+ | </ | ||
Depuis le git | Depuis le git | ||
+ | <code | download> | ||
git clone https:// | git clone https:// | ||
cd firejail | cd firejail | ||
./configure && make && sudo make install-strip | ./configure && make && sudo make install-strip | ||
+ | </ | ||
Ligne 27: | Ligne 33: | ||
+ | <code | download> | ||
firejail < | firejail < | ||
+ | </ | ||
Par exemple | Par exemple | ||
+ | <code | download> | ||
firejail mousepad | firejail mousepad | ||
+ | </ | ||
Ligne 41: | Ligne 51: | ||
==== Les fichiers de configuration === | ==== Les fichiers de configuration === | ||
- | Afin de sécurité | + | Afin de sécuriser |
- | Lors de l' | + | Lors de l' |
- | Si aucun profil approprié n'est trouvé, Firejail utilisera un profil par défaut. | + | Si aucun profil approprié n'est trouvé, Firejail utilisera un profil par défaut. |
- | + | ||
- | Le profil par défaut est assez restrictif. Au cas où l' | + | |
Ligne 57: | Ligne 65: | ||
Ces profils sont localisés dans | Ces profils sont localisés dans | ||
+ | <code | download> | ||
ls / | ls / | ||
| | ||
+ | </ | ||
- | Plus de mille profils sont disponibles... Un profil éponyme à l' | + | Plus de mille profils sont disponibles... Un profil éponyme à l' |
Ce sont ces profils qui définiront les règles de sécurité d' | Ce sont ces profils qui définiront les règles de sécurité d' | ||
- | Attention, il ne faut pas modifier ces profils sous /etc car en cas de mise à jour de firejail ils seront écrasés par les nouveaux. Dans ce cas, il suffit de copier le profil | + | Attention, il ne faut pas modifier ces profils sous **/etc/ |
==== Lancement sans nom d' | ==== Lancement sans nom d' | ||
Ligne 70: | Ligne 80: | ||
+ | <code | download> | ||
firejail | firejail | ||
Reading profile / | Reading profile / | ||
Ligne 81: | Ligne 92: | ||
Parent pid 211751, child pid 211752 | Parent pid 211751, child pid 211752 | ||
Child process initialized in 78.39 ms | Child process initialized in 78.39 ms | ||
+ | </ | ||
- | Ainsi lancer, le /home de l' | + | Ainsi lancer, le **/home** de l' |
- | Pour sortir de ce bac à sable, | + | Pour sortir de ce bac à sable, |
Pour lister les bacs à sable en cours d' | Pour lister les bacs à sable en cours d' | ||
+ | <code | download> | ||
firejail --list | firejail --list | ||
- | 211751: | + | 211751: |
+ | </ | ||
+ | ==== Les fichiers inclus dans les profils ==== | ||
+ | Les lignes commençant par un hachage (#) sont des commentaires. Au début, les profils comprennent des inclusions defichiers, et à la fin on peut en trouver d' | ||
- | ==== L' | ||
+ | |disable-mgmt.inc | rend les commandes de gestion du système inaccessibles (répertoires / sbin et / usr / sbin, et quelques commandes)| | ||
+ | |disable-secret.inc | rend les fichiers secrets inaccessibles dans votre répertoire personnel (clés SSH, trousseaux de clés Gnome et KDE, clés GPG, etc.)| | ||
+ | |disable-common.inc | rend les fichiers inaccessibles à partir d' | ||
+ | |disable-devel.inc | rend les commandes de développement inaccessibles (comme les compilateurs, | ||
+ | |whitelist-common.inc | rend accessibles les fichiers et répertoires communs dont la plupart des programmes graphiques auront besoin| | ||
- | Sans doute la plus intéressante. C'est cette option qui va enfermer votre application à l' | ||
- | En effet, cette option permet de monter /root et /home/$USER dans les systèmes de fichiers temporaires. A la fermeture du bac à sable toutes les modifications seront ignorées. Par conséquent, | + | La ligne " |
- | Exemple: | + | |" |
+ | |" | ||
+ | |" | ||
+ | |" | ||
- | firejail | + | ==== L' |
- | ==== Le cas de Firefox ==== | + | Sans doute la plus intéressante. C'est cette option qui va enfermer votre application à l' |
+ | En effet, cette option permet de monter** /root** et **/ | ||
+ | Exemple: | ||
+ | <code | download> | ||
+ | firejail --private claws-mail | ||
+ | </ | ||
+ | Afin de monter un répertoire dans le bac à sable, il suffit de sélectionner son emplacement dans private | ||
+ | <code | download> | ||
+ | firejail --private --whitelist=/ | ||
+ | </ | ||
+ | Ainsi le répertoire Documents de l' | ||
+ | Les principales options | ||
+ | |--blacklist=dirname | Rend le répertoire ou le fichier inaccessible| | ||
+ | |--cpu=cpu-number| Définit les cœurs de CPU que le programme pourra utiliser| | ||
+ | |--net=none | Refuse l' | ||
+ | |--private | Donne au programme une copie privée de votre répertoire personnel qui est jeté après la fermeture du programme| | ||
+ | |--private=directory | Utilise le répertoire donné comme répertoire personnel du programme, il n'est pas supprimé après la fermeture du programme| | ||
+ | |--tmpfs = dirname - |onne au programme un répertoire vide pour le répertoire donné qui est rejeté après la fermeture du programme| | ||
- | Vous voudrez sans doute peaufiner tout cela. | ||
+ | ==== Le cas de Firefox ==== | ||
+ | |||
+ | Par exemple, voici les règles de sécurité mises en place par le lancement de firefox dans un bac à sable. | ||
+ | Firejail désactivera plusieurs moyens par lesquels Firefox peut obtenir les privilèges root; | ||
+ | * Cela fait même en sorte que le compte root n' | ||
+ | * Cela rend les profils firejail inaccessibles; | ||
+ | * Cela rend inaccessibles les répertoires binaires système et plusieurs binaires système sur n' | ||
+ | * Il rend les clés secrètes (trousseaux de clés de session, clés GnuPG, clés SSH, etc.) inaccessibles; | ||
+ | * Cela rend vos fichiers utilisateur d' | ||
+ | * Il rend les fichiers d' | ||
+ | * Firefox ne peut pas voir les autres processus sur votre système; | ||
+ | * Firefox ne peut écrire des fichiers que dans les répertoires / home, / tmp et / var (s'il y est autorisé) et tous les autres répertoires sont immuables. | ||