Outils pour utilisateurs

Outils du site


systeme:apparmor

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
systeme:apparmor [2015/08/10 18:14] – [aa-autodep] rootsysteme:apparmor [2016/10/08 16:34] (Version actuelle) – [Liens] root
Ligne 1: Ligne 1:
 ====== Apparmor ====== ====== Apparmor ======
-Voir : https://www.suse.com/documentation/sles-12/singlehtml/book_security/book_security.html#part.apparmor+===== Liens ===== 
 +  * [[http://wiki.apparmor.net/|Wiki Apparmor]] 
 +  * [[https://www.suse.com/documentation/sles-12/singlehtml/book_security/book_security.html#part.apparmor|SLES12]] 
 +  * [[https://debian-handbook.info/browse/fr-FR/stable/sect.apparmor.html|Exemples]]
 ===== Description ===== ===== Description =====
 AppArmor permet à l'administrateur système d'associer à chaque programme un profil de sécurité qui restreint ses accès au système d'exploitation. Il complète le traditionnel modèle d'Unix du contrôle d'accès discrétionnaire (DAC, Discretionary access control) en permettant d'utiliser le contrôle d'accès obligatoire (MAC, Mandatory access control). AppArmor permet à l'administrateur système d'associer à chaque programme un profil de sécurité qui restreint ses accès au système d'exploitation. Il complète le traditionnel modèle d'Unix du contrôle d'accès discrétionnaire (DAC, Discretionary access control) en permettant d'utiliser le contrôle d'accès obligatoire (MAC, Mandatory access control).
-===== Activer apparmor =====+ 
 +====== Type de permission ====== 
 +  * [[http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference|Exemple site officiel]] 
 + 
 +  * **r** : Read mode 
 +  * **w** : Write mode (mutually exclusive to a) 
 +  * **a** : Append mode (mutually exclusive to w) 
 +  * **k** : File locking mode 
 +  * **x** : Execute 
 +    * **ux** : Execute unconfined (preserve environment) -- WARNING: should only be used in very special cases 
 +    * **Ux** : Execute unconfined (scrub the environment) 
 +    * **px** : Execute under a specific profile (preserve the environment) -- WARNING: should only be used in special cases 
 +    * **Px** : Execute under a specific profile (scrub the environment) 
 +    * **pix** : as px but fallback to inheriting the current profile if the target profile is not found 
 +    * **Pix** : as Px but fallback to inheriting the current profile if the target profile is not found 
 +    * **pux** : as px but fallback to executing unconfined if the target profile is not found 
 +    * **Pux** : as Px but fallback to executing unconfined if the target profile is not found 
 +    * **ix** : Execute and inherit the current profile 
 +    * **cx** : Execute and transition to a child profile (preserve the environment) 
 +    * **Cx** : Execute and transition to a child profile (scrub the environment) 
 +    * **cix** : as cx but fallback to inheriting the current profile if the target profile is not found 
 +    * **Cix** : as Cx but fallback to inheriting the current profile if the target profile is not found 
 +    * **cux** : as cx but fallback to executing unconfined if the target profile is not found 
 +    * **Cux** : as Cx but fallback to executing unconfined if the target profile is not found 
 +  * **m** : Allow PROT_EXEC with mmap(2) calls 
 +  * **l** : Link mode 
 + 
 +  * **audit** : force logging 
 +  * **deny** : explicitly deny, without logging 
 +  * **audit deny** : combination to explicitly deny, but log 
 +  * **quiet** : clears audit qualifier off of rules. Does it take precedence over audit like deny over allow 
 + 
 +<code> 
 + /profile { 
 +    /path/to/file*            r,  # allow read to /path/to/file* 
 +    /path/to/file1            w,  # allow write to /path/to/file1 
 +    deny /path/to/file2,      w,  # deny write to /path/to/file2, without logging 
 +    audit /path/to/file3      w,  # allow write to /path/to/file3, with logging 
 +    audit deny /path/to/file4 r,  # deny read to /path/to/file4, with logging 
 +
 +</code> 
 + 
 +  * **alias** : crée un mapping 
 +<code> 
 +alias /home/ -> /mnt/users/ 
 +</code> 
 + 
 +  * **owner** : autorise seulement si le propriétaire de la tache est le même que celui du fichier : 
 +<code> 
 +owner /foo r, 
 +</code> 
 + 
 +<code> 
 +owner=fred 
 +owner=1001 
 +owner=(fred) 
 +owner=(fred george) 
 +owner=(fred 1001) 
 +</code> 
 + 
 +  * **Child profile (cx)** : 
 +<code> 
 + /parent/profile { 
 + 
 +     /path/to/child1 cx -> child1, 
 +     /path/to/child2 cx, 
 +     /path/to/* cx,           # for * matching child3 will transition to child3, 
 +                              # child4, child5, ... will transition to /path/to/child* 
 +                              # if matching child profile does not exist will fail 
 +     /another/path/to/* cx -> child1,        # send all matching execs to child1 
 + 
 +     profile child1 { 
 + 
 +     } 
 + 
 +     profile /path/to/child2 { 
 + 
 +     } 
 + 
 +     profile /path/to/child3 { 
 + 
 +     } 
 + 
 +     # generic fall back profile 
 +     profile /path/to/child* { 
 + 
 +     } 
 +  } 
 +</code> 
 +====== Activer apparmor ======
 <xtermrtf> <xtermrtf>
 $ chkconfig boot.apparmor on $ chkconfig boot.apparmor on
Ligne 60: Ligne 152:
 On peut alors placer ce fichier en mode ''enforced''. On peut alors placer ce fichier en mode ''enforced''.
  
-==== aa-logprof ====+===== aa-logprof =====
   * Pour voir les fichiers que aa-logprof scan :   * Pour voir les fichiers que aa-logprof scan :
 <xtermrtf> <xtermrtf>
Ligne 81: Ligne 173:
 $ grep firefox /var/log/audit/audit.log > gigix $ grep firefox /var/log/audit/audit.log > gigix
 $ aa-logprof -f gigix $ aa-logprof -f gigix
 +</xtermrtf>
 +
 +===== apparmor_parser =====
 +  * Voir ce qu'il y a de charger dans le profil apache2 :
 +<xtermrtf>
 +$ apparmor_parser -Q --debug /etc/apparmor.d/usr.sbin.apache2
 +</xtermrtf>
 +
 +<xtermrtf>
 +$ apparmor_parser -p /etc/apparmor.d/usr.sbin.apache2
 +</xtermrtf>
 +
 +  * Recharger le profile ping :
 +<xtermrtf>
 +$ apparmor_parser -r /etc/apparmor.d/bin.ping
 </xtermrtf> </xtermrtf>
systeme/apparmor.1439230460.txt.gz · Dernière modification : 2015/08/10 18:14 de root