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 14:47] – cyrille | firejail [2021/02/13 18:52] (Version actuelle) – ut cyrille | ||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
Il permet à un processus et à tous ses descendants d' | Il permet à un processus et à tous ses descendants d' | ||
- | ==== Installation ==== | + | ===== Installation |
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 | ||
+ | </ | ||
- | ==== Syntaxe de base ==== | + | ===== Syntaxe de base ===== |
+ | <code | download> | ||
firejail < | firejail < | ||
+ | </ | ||
Par exemple | Par exemple | ||
+ | <code | download> | ||
firejail mousepad | firejail mousepad | ||
+ | </ | ||
Attention : Sans aucune option, le bac à sable se compose d'un système de fichiers construit dans un nouvel espace de noms de montage et de nouveaux espaces de noms PID et UTS. Les espaces de noms IPC, réseau et utilisateur peuvent être ajoutés à l'aide de la ligne de commande. Le système de fichiers Firejail par défaut est basé sur le système de fichiers hôte avec les principaux répertoires système montés en lecture seule. Ces répertoires sont /etc, /var, /usr, /bin, /sbin, /lib, /lib32, /libx32 et /lib64. Seuls /home et /tmp sont accessibles en écriture | Attention : Sans aucune option, le bac à sable se compose d'un système de fichiers construit dans un nouvel espace de noms de montage et de nouveaux espaces de noms PID et UTS. Les espaces de noms IPC, réseau et utilisateur peuvent être ajoutés à l'aide de la ligne de commande. Le système de fichiers Firejail par défaut est basé sur le système de fichiers hôte avec les principaux répertoires système montés en lecture seule. Ces répertoires sont /etc, /var, /usr, /bin, /sbin, /lib, /lib32, /libx32 et /lib64. Seuls /home et /tmp sont accessibles en écriture | ||
- | ==== Usage avancé ==== | + | ===== Usage avancé |
- | === 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. Ce profil par défaut est assez restrictif. Au cas où l' |
- | Le profil par défaut est assez restrictif. Au cas où l' | ||
- | + | ==== Les profils par défaut | |
- | === Les profils par défaut === | + | |
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' |
SI vous omettez de préciser le nom de l' | SI vous omettez de préciser le nom de l' | ||
+ | <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' | ||
+ | La ligne " | ||
+ | |||
+ | |" | ||
+ | |" | ||
+ | |" | ||
+ | |" | ||
+ | |||
+ | ==== L' | ||
+ | |||
+ | |||
+ | 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. | ||