Apparmor

Aus Mediawiki Ferdinand Gruber
Zur Navigation springen Zur Suche springen

Apparmor

  • Service starten
systemctl start apparmor.service
systemctl enable apparmor.service
  • Apparmor Flags

Jedes Profil kann in einem der drei Modi aktiviert werden: complain, enforce, audit

Es können auch alle Profile in einen bestimmten Modus versetzt werden
# Beispiele
aa-complain /etc/apparmor.d/*     # für den "Complain"-Modus"
aa-enforce /etc/apparmor.d/*      # für den "Enforce"-Modus

Ein Apparmor Profil anpassen

  • Ein Apparmor Profil in den Complain Modus setzen
# Beispiel
aa-complain /usr/lib/dovecot/config
  • Dann das entsprechende Programm starten
dovecot

Nun werden Aktionen, die gegen die Regeln im Profil verstoßen, in /var/log/audit/audit.log geschrieben.

  • Profil automatisch anpassen
aa-logprof

Troubles

Probleme nach Systemupgrade

server dovecot: IMAP(username): file_dotlock_create(/var/mail/username) failed: Permission denied

... oder ähnliche Meldungen.

Die Ursache liegt im AppArmor Profil für dovecot.
  • Apparmor Profile überprüfen

Die Profile befinden sich in

/etc/apparmor.d

Möglicherweise müssen nach einem Systemupgrade einige Profile erneuert werden.

# Beispiel
cd /etc/apparmor.d
mv usr.sbin.dovecot usr.sbin.dovecot.bak
mv usr.sbin.dovecot.rpmnew usr.sbin.dovecot
  • Thread zu diesem Thema

Dovecot wird blockiert von Apparmor

Dovecot Profile ändern

Auf meinem openSUSE Server hat sich gezeigt, dass einige Korrekturen notwendig sind.

Änderungen sollte man nicht an den Dateien in /etc/apparmor.d vornehmen sondern in /etc/apparmor.d/local.
Hier befinden sich Dateien gleichen Namens, die von den jeweiligen Profildateien in /etc/apparmor.d includiert werden.
master: Fatal: execv(/usr/lib/dovecot/stats) failed: Permission denied

Mit folgender Zeile in der Datei /etc/apparmor.d/local/usr/lib/dovecot/stats konnte ich das Problem lösen:

/usr/lib/dovecot/stats mrpx,

Letsencrypt Zertifikate

Folgende Ergänzungen in /etc/apparmor.d/local habe ich vorgenommen, damit Dovecot mit Apparmor funktioniert:

# usr.lib.dovecot.config:
/etc/letsencrypt/archive/mydomainname/* r,
/etc/letsencrypt/live/mydomainname/* r,

# usr.sbin.dovecot
/etc/letsencrypt/archive/mydomainname/* r,

Info

Crashkurs AppArmor

https://wiki.ubuntuusers.de/AppArmor/