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
apparmor [Le 04/07/2022, 09:17] – vandalisme 82.65.90.171apparmor [Le 08/10/2026, 13:28] (Version actuelle) – simplification titre | alternative selinux | liens internes et wpfr | mise en forme krodelabestiole
Ligne 1: Ligne 1:
 {{tag>Trusty serveur sécurité}} {{tag>Trusty serveur sécurité}}
  
-----+====== AppArmor ======
  
-====== AppArmor : gestion des droits d'accès sur les applications ======+**[[wpfr>AppArmor]]** (//Application Armor//) est un logiciel libre de sécurité pour Linux. C'est une alternative à [[wpfr>SELinux]] conçue par [[:Canonical]].
  
 +**AppArmor** gère les droits d'accès des [[:application|applications]].\\
 +Il permet à l'administrateur système d'associer à chaque programme un profil de sécurité qui restreint les capacités de celui-ci.
  
-AppArmor ("Application Armor") est un logiciel libre de sécurité pour Linux. AppArmor permet à l'administrateur système d'associer à chaque programme un profil de sécurité qui restreint les capacités de celui-ci.+Il s'agit plus précisément d'un outil qui permet en principe de verrouiller les applications en limitant strictement leur accès aux seules ressources auxquelles elles ont droit sans perturber leur fonctionnement.
  
-Il s'agit plus précisément d'un outil qui permet de verrouiller les applications en limitant strictement leur accès aux seules ressources auxquelles elles ont droit sans perturber leur fonctionnement.+===== Installation =====
  
 +**AppArmor** est installé par défaut sous Ubuntu.
  
-===== Installation =====+Vous pouvez ajouter de nouveaux profils en [[:deb#installer_un_paquet_deb|installant le paquet]] ''[[apt>apparmor-profiles]]''.
  
-AppArmor est installé par défaut sous Ubuntu.\\ +Pour pouvoir contrôler **AppArmor**, vous devriez installer le paquet ''[[apt>apparmor-utils]]'' qui contient des utilitaires en ligne de commande que vous pouvez utiliser pour changer le mode d'exécution d'**AppArmor**, trouver l'état d'un profil, créer de nouveaux profils, etc.
-Vous pouvez ajouter de nouveaux profils en [[:tutoriel:comment_installer_un_paquet|installant le paquet]] **[[apt>apparmor-profiles]]**. +
-Pour pouvoir contrôler Apparmor, vous devriez installer le paquet **[[apt>apparmor-utils]]** qui contient des utilitaires en ligne de commande que vous pouvez utiliser pour changer le mode d'exécution d'AppArmor, trouver l'état d'un profil, créer de nouveaux profils, etc.+
  
 ===== Utilisation ===== ===== Utilisation =====
  
-Le répertoire **/etc/apparmor.d** est l'endroit où se situent les profils d'AppArmor. Il peut être utilisé pour manipuler le mode de l'ensemble des profils.\\+Le répertoire ''/etc/apparmor.d'' est l'endroit où se situent les profils d'**AppArmor**. Il peut être utilisé pour manipuler le mode de l'ensemble des profils. 
 Cette commande va lancer tous les profils en mode ''enforce'' : Cette commande va lancer tous les profils en mode ''enforce'' :
 <code> <code>
 sudo aa-enforce /etc/apparmor.d/*</code> sudo aa-enforce /etc/apparmor.d/*</code>
-Celle-ci va tous les mettre en mode ''complain'' (recommandation) : <code>sudo aa-complain /etc/apparmor.d/*</code>+Celle-ci va tous les mettre en mode ''complain'' (recommandation) : 
 +<code>sudo aa-complain /etc/apparmor.d/* 
 +</code> 
 Pour mettre seulement le profil d'une application en marche: Pour mettre seulement le profil d'une application en marche:
 <code> <code>
 sudo aa-enforce firefox sudo aa-enforce firefox
 </code> </code>
 +
 Les commandes d'AppArmor : Les commandes d'AppArmor :
   * Pour voir l'état actuel des profils d'AppArmor entrez la commande dans un [[:terminal]]: <code>sudo apparmor_status</code>   * Pour voir l'état actuel des profils d'AppArmor entrez la commande dans un [[:terminal]]: <code>sudo apparmor_status</code>
Ligne 35: Ligne 41:
 Pour recharger un profil : <code>cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r</code> Pour recharger un profil : <code>cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r</code>
   * ''service apparmor'' peut être utilisé pour recharger tous les profils: <code>sudo service apparmor reload</code>   * ''service apparmor'' peut être utilisé pour recharger tous les profils: <code>sudo service apparmor reload</code>
-  * Le répertoire **/etc/apparmor.d/disable** peut être utilisé en même temps que l'option apparmor_parser -R pour désactiver un profil: <code>sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/  +  * Le répertoire ''/etc/apparmor.d/disable'' peut être utilisé en même temps que l'option ''apparmor_parser -R'' pour désactiver un profil\_:<code>sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/  
-sudo apparmor_parser -R /etc/apparmor.d/profile.name</code> Afin de ré-activer un profil désactivé, supprimez le lien symbolique vers le profil dans **/etc/apparmor.d/disable/**, puis chargez le profil en utilisant l'option -a : <code>sudo rm /etc/apparmor.d/disable/profile.name+sudo apparmor_parser -R /etc/apparmor.d/profile.name</code> Afin de ré-activer un profil désactivé, supprimez le lien symbolique vers le profil dans ''/etc/apparmor.d/disable/'', puis chargez le profil en utilisant l'option ''-a''\_:<code>sudo rm /etc/apparmor.d/disable/profile.name
 cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a</code> cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a</code>
-  * AppArmor peut être désactivé, et le module déchargé du noyau en entrant les lignes suivantes : <code>sudo service apparmor stop+  * **AppArmor** peut être désactivé, et le module déchargé du noyau en entrant les lignes suivantes\_:<code>sudo service apparmor stop
 sudo update-rc.d -f apparmor remove</code> sudo update-rc.d -f apparmor remove</code>
-  * Pour réactiver AppArmor saisissez : <code>sudo service apparmor start+  * Pour réactiver AppArmor saisissez\_:<code>sudo service apparmor start
 sudo update-rc.d apparmor defaults</code> sudo update-rc.d apparmor defaults</code>
-Remplacez ''nom.profil'' avec le nom du profil que vous souhaitez manipuler. Remplacez aussi **/chemin/vers/application** avec le chemin d'accès de l'exécutable en cours. Par exemple, pour la commande ping utilisez **/bin/ping**. 
  
-=====Les profils===== +Remplacez ''nom.profil'' avec le nom du profil que vous souhaitez manipuler. Remplacez aussi ''/chemin/vers/application'' avec le [[:chemins|chemin d'accès]] de l'exécutable en cours.\\ 
-Les profils AppArmor sont de simples fichiers texte qui se trouvent dans **/etc/apparmor.d/**. Les fichiers portent le nom du chemin d'accès entier de l'exécutable dont ils sont les profils en remplaçant "/" par ".". Par exemple **/etc/apparmor.d/bin.ping** est le profil AppArmor de la commande ''/bin/ping''.+Par exemple, pour la commande ping utilisez ''/bin/ping''.
  
-Il existe deux grands types de règles utilisées dans les profils :+===== Les profils ===== 
 + 
 +Les profils **AppArmor** sont de simples fichiers texte qui se trouvent dans ''/etc/apparmor.d/''. Les fichiers portent le nom du chemin d'accès entier de l'exécutable dont ils sont les profils en remplaçant ''/'' par ''.''.\\ 
 +Par exemple ''/etc/apparmor.d/bin.ping'' est le profil **AppArmor** de la commande ''/bin/ping''. 
 + 
 +Il existe deux grands types de règles utilisées dans les profils\_:
   * ''Path entries'' : les fichiers auxquels une application peut avoir accès dans le système de fichier.   * ''Path entries'' : les fichiers auxquels une application peut avoir accès dans le système de fichier.
   * ''Capability entries'' : détermine les privilèges qu'un processus restreint est autorisé à utiliser.   * ''Capability entries'' : détermine les privilèges qu'un processus restreint est autorisé à utiliser.
  
-À titre d'exemple, regardez le fichier **/etc/apparmor.d/bin.ping** : <file> /etc/apparmor.d/bin.ping>+À titre d'exemple, regardez le fichier ''/etc/apparmor.d/bin.ping''\_: 
 +<file> 
 +/etc/apparmor.d/bin.ping>
 #include <tunables/global> #include <tunables/global>
 /bin/ping flags=(complain) { /bin/ping flags=(complain) {
Ligne 73: Ligne 85:
 /bin/ping mixr,: donne à l'application les droits de lecture et d'exécution sur le fichier. /bin/ping mixr,: donne à l'application les droits de lecture et d'exécution sur le fichier.
 </file> </file>
-Après modification d'un fichier de profil, le profil doit être rechargé (Voir plus haut).+Après modification d'un fichier de profil, le profil doit être rechargé (voir plus haut). 
 + 
 +==== Création d'un profil ====
  
-====Création d'un profil==== 
 Il existe deux manières de créer de nouveaux profils. La première s'applique dans le cas d'un processus qui s'exécute simplement, pour une durée limitée. La seconde s'applique aux processus de type //daemon//, ou encore aux processus exécutés périodiquement ou sur une longue période. Il existe deux manières de créer de nouveaux profils. La première s'applique dans le cas d'un processus qui s'exécute simplement, pour une durée limitée. La seconde s'applique aux processus de type //daemon//, ou encore aux processus exécutés périodiquement ou sur une longue période.
 +
 === Processus à durée limitée === === Processus à durée limitée ===
  
Ligne 88: Ligne 102:
  
 Pour plus de détails, vous pouvez vous reporter à la documentation sur [[http://www.novell.com/documentation/apparmor/book_apparmor21_admin/data/book_apparmor_admin.html|le site de Novell]] pour connaître les différentes options proposées par ''aa-logprof''. Pour plus de détails, vous pouvez vous reporter à la documentation sur [[http://www.novell.com/documentation/apparmor/book_apparmor21_admin/data/book_apparmor_admin.html|le site de Novell]] pour connaître les différentes options proposées par ''aa-logprof''.
- 
  
 Pour la conception d'un plan de test, réfléchissez à la manière dont l'application doit être examinée. Le plan de test devrait être divisé en tests unitaires. Chaque test unitaire devrait avoir une courte description et énumérer les étapes à suivre. Pour la conception d'un plan de test, réfléchissez à la manière dont l'application doit être examinée. Le plan de test devrait être divisé en tests unitaires. Chaque test unitaire devrait avoir une courte description et énumérer les étapes à suivre.
Ligne 103: Ligne 116:
 Par exemple : <code>sudo aa-genprof slapd</code> Par exemple : <code>sudo aa-genprof slapd</code>
  
 +==== Mise à jour des profils ====
  
-====Mise à jour des profils==== +Lorsque le programme ne se comporte pas correctement, des messages d'audit sont journalisés. L'application ''aa-logprof'' peut être utilisée pour analyser les messages d'audit **AppArmor** dans les fichiers journaux. Examinez-les puis mettez à jour le profil. Dans un terminal :
- +
-Lorsque le programme ne se comporte pas correctement, des messages d'audit sont journalisés. L'application ''aa-logprof'' peut être utilisée pour analyser les messages d'audit AppArmor dans les fichiers journaux. Examinez-les puis mettez à jour le profil. Dans un terminal :+
 <code>sudo aa-logprof</code> <code>sudo aa-logprof</code>
- 
  
 ==== Notifications de violations ==== ==== Notifications de violations ====
  
-Le mode strict applique les règles et rapporte les tentatives de violation, alors que le mode relâché se contente d'enregistrer dans les journaux système les appels système qui auraient été bloqués, sans les bloquer réellement.\\+Le mode strict applique les règles et rapporte les tentatives de violation, alors que le mode relâché se contente d'enregistrer dans les journaux système les appels système qui auraient été bloqués, sans les bloquer réellement. 
 ''aa-genprof'' n'est en fait qu'un petit script intelligent qui utilise ''aa-logprof'' : il crée un profil vide, le charge en mode relâché, puis lance ''aa-logprof''. Ce dernier est un outil qui met à jour un profil en fonction des violations qui ont été enregistrées. On peut donc relancer cet outil plus tard, de manière à améliorer le profil nouvellement créé. ''aa-genprof'' n'est en fait qu'un petit script intelligent qui utilise ''aa-logprof'' : il crée un profil vide, le charge en mode relâché, puis lance ''aa-logprof''. Ce dernier est un outil qui met à jour un profil en fonction des violations qui ont été enregistrées. On peut donc relancer cet outil plus tard, de manière à améliorer le profil nouvellement créé.
-Pour voir une notification sur votre bureau lorsqu'AppArmor entre un log "DENIED" log entry vous devez entrer cette commande :+Pour voir une notification sur votre bureau lorsqu'**AppArmor** entre un log "DENIED" log entry vous devez entrer cette commande\_:
 <code>sudo aa-notify -p --display $DISPLAY</code> <code>sudo aa-notify -p --display $DISPLAY</code>
 qui doit être ajoutée à chaque boot. qui doit être ajoutée à chaque boot.
  
-Une autre solution pourrait être l'installation du paquet **[[apt>logcheck]]** ( [[http://nyquist.life.free.fr/dotclear/index.php?post/2008/10/13/Logcheck|tutoriel-1]], [[https://home.demi-lune.org/brain/?page=display&section=articles&id=129|tutoriel-2]] ) , qui se chargera d'envoyer par courriel diverses informations contenues dans les logs, dont les violations signalées par AppArmor. +Une autre solution pourrait être l'installation du paquet ''[[apt>logcheck]]'' ([[http://nyquist.life.free.fr/dotclear/index.php?post/2008/10/13/Logcheck|tutoriel-1]], [[https://home.demi-lune.org/brain/?page=display&section=articles&id=129|tutoriel-2]]), qui se chargera d'envoyer par courriel diverses informations contenues dans les logs, dont les violations signalées par **AppArmor**.
- +
  
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * [[https://code.launchpad.net/apparmor-profiles|Sur launchpad]] +  * [[https://code.launchpad.net/apparmor-profiles|Launchpad]] 
-  * [[https://wiki.ubuntu.com/AppArmor|Wiki ubuntu Apparmor]] +  * [[https://wiki.ubuntu.com/AppArmor|Wiki ubuntu AppArmor]] 
-  * [[https://wiki.ubuntu.com/DebuggingApparmor|Wiki Ubuntu DebuggingApparmor]]+  * Wiki Ubuntu //[[https://wiki.ubuntu.com/DebuggingApparmor|Debugging AppArmor]]//
   * [[http://fabianmoser.at/blog/2010/09/24/secure-firefox-with-apparmor/|Ajouter le support des profiles pulseaudio dans les profiles firefox]]   * [[http://fabianmoser.at/blog/2010/09/24/secure-firefox-with-apparmor/|Ajouter le support des profiles pulseaudio dans les profiles firefox]]
-  * [[http://www.mpipks-dresden.mpg.de/~mueller/docs/suse10.1/suselinux-manual_en/manual/bx5bmkm.html|Building Novell AppArmor Profiles with the YaST GUI]] ( une interface un peu plus évolué pour apparmor sur novell ) +  * //[[http://www.mpipks-dresden.mpg.de/~mueller/docs/suse10.1/suselinux-manual_en/manual/bx5bmkm.html|Building Novell AppArmor Profiles with the YaST GUI]]// (une interface un peu plus évolué pour **AppArmor** sur Novell)
-  * [[:selinux]]+
   * [[:sécurité]]   * [[:sécurité]]
   * [[http://www.novell.com/linux/security/apparmor/|Apparmor par Novell]], plus spécifiquement la [[http://www.novell.com/documentation/apparmor/book_apparmor21_admin/data/book_apparmor_admin.html|documentation]].   * [[http://www.novell.com/linux/security/apparmor/|Apparmor par Novell]], plus spécifiquement la [[http://www.novell.com/documentation/apparmor/book_apparmor21_admin/data/book_apparmor_admin.html|documentation]].
  
----- 
-//Contributeurs principaux: ..//