Table des matières

Apparmor

Liens

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).

Type de permission

 /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
}
alias /home/ -> /mnt/users/
owner /foo r,
owner=fred
owner=1001
owner=(fred)
owner=(fred george)
owner=(fred 1001)
 /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* {

     }
  }

Activer apparmor

$ chkconfig boot.apparmor on

$ chkconfig boot.apparmor
boot.apparmor  on

Commandes

aa-status

Voir le status de apparmor :

$ aa-status

La commande apparmor_status permet de faire la même chose.

aa-enforce

Activer un profile existant, par exemple firefox :

$ aa-enforce firefox

Ou

$ aa-enforce /usr/bin/firefox

Ou charger tous les profils :

$ aa-enforce /etc/apparmor.d/*

aa-complain

Permet de ne pas bloquer les accès mais log toutes les violation de la politique : s'utilise de la même manière que aa-enforce. Par défaut les profils sont en mode enforced.

$ aa-complain firefox

aa-genprof

AppArmor détectera automatiquement les accès faits par l'application, générera le fichier profil approprié et le placera dans le répertoire /etc/apparmor.d.

Attention ce mode est fait pour les process à durée de vite limité, pour les daemon il faut utiliser aa-autodep

aa-autodep

On crée d'abord un profil temporaire à l'aide de la commande aa-autodep.

On laisse tourner le processus à confiner durant le temps nécessaire, puis on corrige le fichier de profil à l'aide des messages laissés dans les fichiers log, grâce à la commande aa-logprof.

Au besoin, on continue à laisser tourner le processus et on relance la commande aa-logprof, jusqu'à ce que le fichier de profil soit adéquat.

On peut alors placer ce fichier en mode enforced.

aa-logprof

$ grep logfiles /etc/apparmor/logprof.conf
    logfiles = /var/log/audit/audit.log /var/log/syslog /var/log/messages

$ aa-logprof

$ aa-logprof -m "17:04:21"

$ grep firefox /var/log/audit/audit.log > gigix
$ aa-logprof -f gigix

apparmor_parser

$ apparmor_parser -Q --debug /etc/apparmor.d/usr.sbin.apache2

$ apparmor_parser -p /etc/apparmor.d/usr.sbin.apache2

$ apparmor_parser -r /etc/apparmor.d/bin.ping