Activer
Charger AppArmor via la pile LSM et démarrer le service systemd.
Confinement applicatif AppArmor sur Arch Linux: activation LSM, profils enforce/complain, logs, stratégie de déploiement et dépannage.
Charger AppArmor via la pile LSM et démarrer le service systemd.
Séparer services système matures, applications desktop complexes et profils expérimentaux.
Mettre en enforce les profils stables et en complain les profils à observer.
Lire les logs, utiliser aa-logprof et documenter chaque exception.
Les permissions Unix classiques ne suffisent pas si un service ou une application est compromis. AppArmor ajoute des règles obligatoires pour limiter ce qu'un processus peut lire, écrire ou exécuter, même avec des privilèges élevés.
Exemple basé sur la stratégie documentée: services en enforce, applications desktop complexes en complain.
type de cible contrôle mode documenté
service critique AppArmor enforce
navigateur desktop sandbox natif isolation testée en plus
app desktop complexe AppArmor complain d'abord
IDE / outils dev exception documentée et surveillée
La documentation privée contient des exemples AppArmor; la version publique garde seulement l'intention.
autoriser la lecture des fichiers runtime requis par le rôle
autoriser l'écriture dans une zone de cache dédiée
refuser la lecture des magasins d'identifiants
refuser l'écriture de la configuration système
refuser les capacités d'administration larges
autoriser le réseau seulement si le rôle l'exige
La méthode privilégie le test progressif pour éviter une sécurité désactivée au quotidien.
observer -> complain -> ajuster -> enforce -> surveiller les refus -> documenter l'exception
Les commandes ci-dessous sont volontairement anonymisées: chemins, noms de machines, interfaces, dépôts, périphériques et actions destructrices sont remplacés par des placeholders.
aa-status
cat /sys/kernel/security/lsm
ausearch -m AVC -ts recent
journalctl -k --since '1 hour ago' | rg 'apparmor.*DENIED'
le module AppArmor est actif
validation observée: 175 profils chargés
119 profiles in enforce
7 profiles in complain
0 refus AVC récents sur la fenêtre de validation
aa-status | rg 'enforce|complain'
aa-complain <profile-under-test>
<exercise-application-normally>
journalctl -k | rg 'apparmor'
aa-logprof
les services aux profils mûrs passent en enforce
les applications desktop complexes commencent en complain
les logs sont relus avant durcissement
les exceptions sont documentées au lieu de désactiver silencieusement le confinement
aa-status
aa-enforce <profile-path>
aa-complain <profile-path>
aa-disable <profile-path>
apparmor_parser -r <profile-path>
systemctl reload apparmor.service
le mode du profil est explicite
enforce est réservé aux profils testés
complain sert à l'apprentissage et à la validation desktop
les profils désactivés sont documentés
le reload applique les changements sans masquer les logs
La page documente l'ajout AppArmor dans la pile LSM et la vérification après reboot.
Services système en enforce, applications desktop complexes en complain au départ.
Gestion avec aa-enforce, aa-complain, aa-disable, apparmor_parser et reload du service.
Analyse des DENIED/ALLOWED, aa-logprof et vérification des AVC récents.
Supplément de documentation privée anonymisé
Guide public pour mettre en place AppArmor, un système de contrôle d'accès obligatoire. Les profils privés, chemins locaux et journaux bruts sont remplacés par des placeholders.
AppArmor limite les accès d'une application aux ressources système selon un profil. Contrairement aux permissions classiques DAC, le MAC impose des règles que le processus ne peut pas contourner simplement parce qu'il dispose de privilèges élevés.
| Aspect | AppArmor | SELinux |
|---|---|---|
| Modèle | Profils basés sur chemins | Labels |
| Complexité | Modérée | Élevée |
| Maintenabilité desktop | Bonne | Plus exigeante |
Poste Arch Linux personnel avec pile LSM déjà documentée dans le hardening kernel. AppArmor est traité comme couche MAC, complémentaire à nftables, Firejail, systemd et auditd.
pacman -S apparmor
pacman -S apparmor-profiles
pacman -S apparmor-utils
ls <APPARMOR_PROFILE_DIR>
systemctl status apparmor.service
AppArmor doit être présent dans la ligne de commande kernel:
lsm=landlock,lockdown,yama,apparmor,bpf apparmor=1 security=apparmor
Activer le service puis redémarrer pour valider l'état réel:
systemctl enable apparmor.service
systemctl start apparmor.service
reboot
aa-status
cat /proc/cmdline | rg 'apparmor|security=apparmor|lsm='
lsmod | rg apparmor
cat /sys/kernel/security/lsm
ausearch -m AVC -ts recent
aa-enforce <PROFILE_PATH>
aa-complain <PROFILE_PATH>
aa-status | rg 'enforce|complain'
ls <APPARMOR_PROFILE_DIR>
aa-status
apparmor_parser -r <PROFILE_PATH>
aa-enforce <PROFILE_PATH>
aa-complain <PROFILE_PATH>
aa-disable <PROFILE_PATH>
systemctl reload apparmor.service
journalctl -k | rg apparmor
journalctl -kf | rg apparmor
dmesg | rg apparmor
aa-logprof
aa-logprof -f <APPARMOR_LOG_FILE>
DENIED indique un blocage en enforce. ALLOWED en complain indique une action qui aurait pu être bloquée.
aa-genprof <APPLICATION_BINARY>
apparmor_parser -r <CUSTOM_PROFILE>
aa-enforce <CUSTOM_PROFILE>
aa-status | rg '<APPLICATION_NAME>'
La version publique ne publie pas de profil complet. Elle montre seulement la logique: exécutable, fichiers de configuration, cache dédié, logs et refus explicites.
journalctl -k | rg 'apparmor.*DENIED'
aa-status | rg '<APPLICATION_NAME>'
aa-complain <PROFILE_PATH>
aa-logprof
apparmor_parser -r <PROFILE_PATH>
systemctl reload apparmor.service
Passer temporairement en complain permet de confirmer qu'un profil est responsable sans désactiver toute la couche AppArmor.
aa-status
aa-enforce <PROFILE_PATH>
aa-complain <PROFILE_PATH>
aa-disable <PROFILE_PATH>
apparmor_parser -r <PROFILE_PATH>
systemctl reload apparmor.service
journalctl -k | rg apparmor
aa-logprof