Ich suche nach einer Möglichkeit, eine einzelne Zeile aus /var/log/syslog
der von AppArmor für ein Profil im Beschwerdemodus gemeldeten Meldung einfach umzukehren. Ich habe gesehen, dass dabei aa-genprof
die Meldungen aus dem Syslog zur Erstellung von Regeln verwendet werden. Zum größten Teil konnte ich meine Regeln von Hand schreiben, um das Nötige zuzulassen, aber jetzt hänge ich bei diesen beiden Zeilen aus meinem Syslog fest:
[88529.103991] Audit: Typ = 1400 Audit (1414408592.500:5298): Apparmor = "ERLAUBT" Operation = "Mount" Info = "Typübereinstimmung fehlgeschlagen" Fehler = -13 Profil = "Docker-das" Name = "/var/lib/docker/btrfs/" pid = 9289 Comm = "Docker" Quellname = "/var/lib/docker/btrfs/" Flags = "rw, bind"
[88529.104010] Audit: Typ = 1400 Audit (1414408592.500:5299): Apparmor = "ERLAUBT" Operation = "Mount" Info = "Typübereinstimmung fehlgeschlagen" Fehler = -13 Profil = "Docker-das" Name = "/var/lib/docker/btrfs/" pid = 9289 Comm = "Docker" Flags = "rw, privat"
Ich habe versucht, die folgende Zeile (und mehrere Varianten beim Herumprobieren) zu meinem docker-das
Profil hinzuzufügen, aber ohne Erfolg:
mount fstype=btrfs -> /var/lib/docker/btrfs/
Der einzige Grund, warum dies meines Erachtens nicht funktionieren würde, ist, dass comm
ist gleich im docker
Gegensatz zu mount
(was bei der Verwendung nativer Mount-Befehle der Fall ist).
Leider kann ich anscheinend nicht aa-genprof
weiterhelfen (ich glaube, das liegt daran, dass das Profil keinen standardmäßigen Namen hat) und die AppArmor-Dokumentation ist ein einziges Durcheinander (obwohl sie jetzt hilfreich ist, da ich die richtige Seite in ihrem Wiki gefunden habe).
Wenn es eine einfache Möglichkeit gibt, die erforderliche Zeile zu generieren, wäre das ein großartiges Wissen. Andernfalls kann jemand sehen, was an der Regel falsch ist, oder herausfinden, welche Regel ich brauche, um die in den Protokollen angezeigten Mounts zuzulassen. Ich hätte gerne die stärkste Übereinstimmung für eine Protokollzeile, damit ich dann entscheiden kann, welche Teile nicht erforderlich sind.
Antwort1
Obwohl es sich nicht um eine vollständige Lösung handelt (es löst nicht das Problem, aus jeder Protokollzeile eine passende Regel generieren zu können), ist das Folgende die beste Lösung, die mir für das spezielle Problem eingefallen ist und die sicher genug sein sollte:
deny mount /dev/**,
mount -> /var/lib/docker/btrfs/
Dennoch wäre es schön, die stärkste mögliche Übereinstimmung für den Protokolleintrag zu erhalten, sodass ich ihn dann verwenden oder (falls gewünscht) abschwächen kann.