AppArmor
AppArmor : module de sécurité du noyau Linux (un LSM) qui confine des programmes désignés par des profils fondés sur les chemins de fichiers (« chronyd peut lire /etc/chrony/** »). Il est actif par défaut sur Ubuntu et sur Debian depuis la version 10.
Les profils vivent dans /etc/apparmor.d/ et fonctionnent en deux modes : enforce (les accès non prévus sont refusés et journalisés) et complain (autorisés mais journalisés, pour mettre un profil au point). sudo aa-status liste les profils chargés et les processus confinés ; un refus laisse dans le journal du noyau une ligne contenant apparmor="DENIED" (journalctl -k -g 'apparmor="DENIED"'). Le paquet apparmor-utils fournit aa-enforce, aa-complain, et aa-genprof et aa-logprof pour écrire un profil à partir de l'observation.
Point essentiel : AppArmor ne protège que les programmes qui ont un profil. Les autres sont unconfined, comme un Gunicorn lancé depuis un environnement virtuel. Sa décision s'ajoute aux permissions Unix : il ne peut que restreindre, jamais accorder. Docker applique à chaque conteneur le profil docker-default, et Ubuntu 24.04 s'en sert pour restreindre les espaces de noms utilisateur non privilégiés (kernel.apparmor_restrict_unprivileged_userns = 1). Passer un profil en complain « pour que ça marche » revient à le désactiver.
Dans les cours
- Linux : administration système, leçon 14 : Durcir un serveur
- Docker : les fondamentaux, leçon 2 : Un conteneur à la main : namespaces, cgroups, capabilities
- Docker : les fondamentaux, leçon 12 : Sécuriser et limiter ses conteneurs