Outils CLI AppArmor¶
La plupart des commandes proviennent de apparmor-utils. Les profils sont généralement dans /etc/apparmor.d/.
aa-status et aa-enabled¶
aa-status affiche l’état du module, les profils chargés et leurs modes (enforce ou complain). aa-enabled retourne un code non nul si AppArmor n’est pas actif.
aa-enforce, aa-complain, aa-disable¶
sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx
sudo aa-disable /etc/apparmor.d/usr.sbin.nginx
sudo aa-enforce usr.sbin.nginx
aa-enforceapplique les refus du profil.aa-complainjournalise les violations sans les bloquer.aa-disabledécharge/désactive le profil ; à réserver aux tests ou diagnostics.- Plusieurs profils peuvent être fournis dans une même commande.
Après modification, recharger le profil :
aa-complain et génération de profils¶
sudo aa-genprof /usr/sbin/mon-service
sudo aa-logprof
sudo aa-logprof -f /var/log/audit/audit.log
sudo aa-cleanprof /etc/apparmor.d/usr.sbin.mon-service
aa-genprof guide la création d’un profil à partir de l’activité observée. aa-logprof propose des règles à partir des refus journalisés. Toujours relire les propositions : ne pas autoriser automatiquement des chemins ou capacités non nécessaires.
apparmor_parser¶
sudo apparmor_parser -p /etc/apparmor.d/usr.sbin.nginx # prévisualiser
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.nginx # remplacer
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.nginx # retirer
sudo apparmor_parser -T /etc/apparmor.d/usr.sbin.nginx # afficher les stats
sudo apparmor_parser -Q /etc/apparmor.d/usr.sbin.nginx # mode silencieux selon version
Selon la version, -r remplace un profil chargé, -R le retire et -p prévisualise le profil compilé. Utiliser apparmor_parser --help et la manpage locale pour les options exactes.
aa-exec¶
sudo aa-exec -p usr.sbin.nginx -- nginx -t
sudo aa-exec -p unconfined -- id
sudo aa-exec -d /usr/sbin/mon-service -- /usr/sbin/mon-service
-p sélectionne un profil, -d demande un changement de répertoire de profil selon les versions, et -- sépare les options d’aa-exec de la commande.
Diagnostic et journaux¶
sudo journalctl -k -g 'apparmor="DENIED"'
sudo journalctl -u apparmor
sudo dmesg | grep -i apparmor
sudo aa-notify -s 1 -v
sudo aa-notify -p -f /var/log/audit/audit.log
aa-notify résume les refus récents ; -s indique une période en secondes, -p affiche les profils concernés, et -f choisit un fichier d’audit lorsque disponible.