Outils pour utilisateurs

Outils du site


firejail

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
firejail [2021/02/13 17:07] cyrillefirejail [2021/02/13 19: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>
  
 +<code | download>
 sudo apt install firejail sudo apt install firejail
 +</code>
  
 Depuis le git Depuis le git
 +<code | download>
 git clone https://github.com/netblue30/firejail.git git clone https://github.com/netblue30/firejail.git
 cd firejail cd firejail
 ./configure && make && sudo make install-strip ./configure && make && sudo make install-strip
 +</code>
  
  
Ligne 27: Ligne 33:
  
  
 +<code | download>
 firejail <OPTIONS> <APPLICATION> firejail <OPTIONS> <APPLICATION>
 +</code>
  
 Par exemple Par exemple
  
 +<code | download>
 firejail mousepad firejail mousepad
 +</code>
  
  
Ligne 41: Ligne 51:
 ==== Les fichiers de configuration === ==== Les fichiers de configuration ===
  
-Afin de sécurité le système, il y a toute une floppée d'options (voir le man de firejail pour en avoir un aperçu)qui s'ajoute aux profils de base.+Afin de sécuriser le système, il y a toute une flopée d'options (voir le** man de firejail** pour en avoir un aperçu) qui peuvent s'ajouter aux profils de base.
  
-Lors de l'exécution, Firejail cherche d'abord dans ~/.config/firejail/ un profil éponyme au nom de l'application et s'il n'en trouve pas, il cherche dans /etc/firejail/.+Lors de l'exécution, **Firejail** cherche d'abord dans **~/.config/firejail/** un profil éponyme au nom de l'application et s'il n'en trouve pas, il cherche dans **/etc/firejail/**.
  
-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. Ce profil par défaut est assez restrictif. Au cas où l'application ne fonctionne pas, utilisez l'option** --noprofile** pour le désactiver. 
- +
-Le profil par défaut est assez restrictif. Au cas où l'application ne fonctionne pas, utilisez l'option --noprofile pour le désactiver. +
  
  
Ligne 57: Ligne 65:
 Ces profils sont localisés dans  Ces profils sont localisés dans 
  
 +<code | download>
 ls /etc/firejail/ | wc ls /etc/firejail/ | wc
    1101    1101   20335    1101    1101   20335
 +</code>
        
-Plus de mille profils sont disponibles... Un profil éponyme à l'application lancée pour les plus communes. Et aussi des héritages de profil que nous laisserons ici de côté.+Plus de mille profils sont disponibles... Un profil éponyme à l'application lancé pour les plus communes. Et aussi des héritages de profil que nous laisserons ici de côté.
  
 Ce sont ces profils qui définiront les règles de sécurité d'ouverture / fermeture des portes de la prison.  Ce sont ces profils qui définiront les règles de sécurité d'ouverture / fermeture des portes de la prison. 
  
-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  à modifier sous  ~/.config/firejail/ +Attention, il ne faut pas modifier ces profils sous **/etc/firejail** car en cas de mise à jour de firejail ils seront écrasés par les nouveaux. Dans ce cas, il suffit de copier le profil  à modifier sous  **~/.config/firejail/** 
  
 ==== Lancement sans nom d'application ==== ==== Lancement sans nom d'application ====
Ligne 70: Ligne 80:
  
  
 +<code | download>
 firejail  firejail 
 Reading profile /etc/firejail/default.profile Reading profile /etc/firejail/default.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
 +</code>
  
  
-Ainsi lancer, le /home de l'$USER sera accessible comme d'habitude , un ls vous le confirmera.+Ainsi lancer, le **/home** de l'$USER sera accessible comme d'habitude , un ls vous le confirmera.
  
-Pour sortir de ce bac à sable, saissez simplement l'option exit+Pour sortir de ce bac à sable, saisissez simplement l'option **exit**
  
 Pour lister les bacs à sable en cours d'exécution : Pour lister les bacs à sable en cours d'exécution :
  
 +<code | download>
 firejail --list firejail --list
-211751:ragnarok::firejail +211751:ragnarok::firejail 
 +</code> 
  
 +==== 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'autres. Vous pouvez les examiner vous-même, mais pour les essentielles :
  
  
-==== L'option --private ==== 
  
 +|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'autres navigateurs, avec la ligne "noblacklist $ {HOME} /. mozilla" ci-dessus garantissant que les fichiers pour Firefox ne sont pas rendus inaccessibles (= liste noire).|
 +|disable-devel.inc | rend les commandes de développement inaccessibles (comme les compilateurs, les outils de débogage, les outils de script, etc.)|
 +|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'intérieure d'une prison. 
  
-En effet, cette option permet de monter /root et /home/$USER dans les systèmes de fichiers temporairesla fermeture du bac à sable toutes les modifications seront ignoréesPar conséquent, l'application se lancera comme si c'était la première fois qu'on la lançait sur un système vierge, les fichiers de configuration ne seront pas conséquent pas lus.+La ligne "seccomp" active un filtre pour les appels système que le programme peut effectuerLa ligne «protocole» adapte en outre le filtre d'appel système pour la mise en réseauVoici les options des différentes lignes : 
  
-Exemple:+|"netfilter" | Un filtre réseau par défaut est activé si vous configurez un nouvel espace de noms réseau.| 
 +|"tracelog" | Toute violation où le programme essaie d'accéder à des fichiers ou répertoires sur liste noire sera enregistrée dans /var/log/syslog .| 
 +|"noroot" | Désactive l'utilisateur root dans le bac à sable.| 
 +|"whitelist" | Rend accessible les fichiers et répertoires qui seraient utilisés le programme. Les modifications apportées aux fichiers et répertoires de la liste blanche sont persistantes, tout le reste écrit dans votre répertoire personnel est supprimé lorsque le bac à sable est fermé.|
  
-firejail --private claws-mail+==== L'option --private ====
  
  
-==== Le cas de Firefox ====+Sans doute la plus intéressante. C'est cette option qui va enfermer votre application à l'intérieure d'une prison.
  
 +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, l'application se lancera comme si c'était la première fois qu'on la lançait sur un système vierge, les fichiers de configuration ne seront pas conséquent pas lus.
  
 +Exemple:
  
 +<code | download>
 +firejail --private claws-mail
 +</code>
  
 +Afin de monter un répertoire dans le bac à sable, il suffit de sélectionner son emplacement dans private
  
 +<code | download>
 +firejail --private --whitelist=/home/$USER/Documents  gimp
 +</code>
  
 +Ainsi le répertoire Documents de l'$USER sera monté en lecture / écriture et les modifications seront gardées après fermeture de la prison
  
 +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'accès au réseau du programme|
 +|--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'existe même pas dans le bac à sable;
 +  * Cela rend les profils firejail inaccessibles;
 +  * Cela rend inaccessibles les répertoires binaires système et plusieurs binaires système sur n'importe quel répertoire de votre chemin;
 +  * 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'autres navigateurs Web, clients FTP et programmes de discussion inaccessibles;
 +  * Il rend les fichiers d'historique de votre console inaccessibles (historique de bash, less, etc.);
 +  * 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.
  
firejail.1613232457.txt.gz · Dernière modification : 2021/02/13 17:07 de cyrille