LXC Apparmor füllt Log mit denied ptrace Einträgen

LXC Fehler audit: type=1400 “apparmor=”DENIED” operation=”ptrace” profile=”lxc-container-default”

Die Überschrift sagt eigentlich alles!! Ein nerviger Apparmor “Fehler” den man getrost loswerden kann. Hier steht wie es geht!

 

Das ganze Log voll von Meldungen wie:

Feb 11 20:35:46 server3 kernel: audit: type=1400 audit(1455219346.030:19661): apparmor="DENIED" operation="ptrace" profile="lxc-container-default" pid=17960 comm="ps" requested_mask="trace" denied_mask="trace" peer="unconfined"
Feb 11 20:35:51 server3 kernel: audit: type=1400 audit(1455219351.070:19662): apparmor="DENIED" operation="ptrace" profile="lxc-container-default" pid=18046 comm="ps" requested_mask="trace" denied_mask="trace" peer="unconfined"
Feb 11 20:35:56 server3 kernel: audit: type=1400 audit(1455219356.022:19663): apparmor="DENIED" operation="ptrace" profile="lxc-container-default" pid=18069 comm="ps" requested_mask="trace" denied_mask="trace" peer="unconfined"
Feb 11 20:36:01 server3 kernel: audit: type=1400 audit(1455219361.022:19664): apparmor="DENIED" operation="ptrace" profile="lxc-container-default" pid=18148 comm="ps" requested_mask="trace" denied_mask="trace" peer="unconfined"
Feb 11 20:36:06 server3 kernel: audit: type=1400 audit(1455219366.054:19665): apparmor="DENIED" operation="ptrace" profile="lxc-container-default" pid=18179 comm="ps" requested_mask="trace" denied_mask="trace" peer="unconfined"
Feb 11 20:36:11 server3 kernel: audit: type=1400 audit(1455219371.026:19666): apparmor="DENIED" operation="ptrace" profile="lxc-container-default" pid=18261 comm="ps" requested_mask="trace" denied_mask="trace" peer="unconfined"

Woher kommt der Fehler? Hmm steht eigentlich dort. In einem Container wird ein ps aufgerufen und die Meldung besagt lediglich, dass der Container daran gehindert wurde die Prozesse der anderen User anzuzeigen.

Gut. Damit will man nun nicht unbedingt das ganze Log voll haben. Die Meldungen gibt es unter Umständen ja im Sekunden Takt.

Also entweder schaltet man das Logging gänzlich aus oder deaktiviert nur genau diese Meldungen. Letzteres halte ich für Sinnvoller.

Möglichkeit 1) Logging Deaktivieren

sh -c 'echo -n "quiet_denied" > /sys/module/apparmor/parameters/audit'

Bei Ubuntu Systemen muss das Kommando mit sudo am Anfang ausgeführt werden.

Hier noch ein paar mögliche Parameter und deren Erklärung:

  • normal – module auditing is not doing any special overrides
  • quiet_denied – module is quieting all denied access (reject) messages
  • quiet – module is quieting all messages
  • noquiet – module is overriding profile rules that quiet messages
  • all – output all audit for all permission requests (this includes things that were allowed). This is very noisy if an AppArmor profile is in use.

 

Möglichkeit 2) Logging dieser Meldungen zuordnen und damit deaktivieren

in /etc/apparmor.d/lxc/lxc-default  folgendes einfügen:

ptrace peer=@{profile_name},

Die Datei würde dann insgesamt so aussehen:

# Do not load this file.  Rather, load /etc/apparmor.d/lxc-containers, which
# will source all profiles under /etc/apparmor.d/lxc

profile lxc-container-default flags=(attach_disconnected,mediate_deleted) {
  #include <abstractions/lxc/container-base>

  # the container may never be allowed to mount devpts.  If it does, it
  # will remount the host's devpts.  We could allow it to do it with
  # the newinstance option (but, right now, we don't).
  deny mount fstype=devpts,
  ptrace peer=@{profile_name},
}

 

Anschließend muss bei beiden Varianten Apparmor neugestartet werden

/etc/init.d/apparmor restart

oder für Debian 8

service apparmor restart

Bei Variante 2 müssen zusätzlich noch alle Container neugestartet werden.

Dann sollte auch euer Log sauber sein und sich nicht binnen Minuten mit ein paar hundert Megabyte füllen.

Share it!Share on FacebookEmail this to someoneShare on Google+Tweet about this on Twitter

Schreibe einen Kommentar