Apparmor Profilaufbau

Aus xinux.net
Zur Navigation springen Zur Suche springen
  • Eine Profil-Datei ist dabei prinzipiell wie folgt aufgebaut:
#include <tunables/global>

/pfad/zur/anwendung {
  #include <abstractions/base>
  [...]
  capability sys_admin,
  [...]
  # Kommentar
  /usr/lib/gconv/** r,
  /proc/meminfo r,
  /bin/basename rmix,
  [...]
}

Include-Anweisungen

  • Include-Anweisungen sind Direktiven, die Komponenten anderer AppArmor-Profile einbeziehen, um Profile zu vereinfachen.
  • Include-Dateien rufen Zugriffsberechtigungen für Programme ab.
  • Durch die Verwendung eines Include können Sie dem Programm Zugriff auf Verzeichnispfade oder Dateien gewähren, die auch von anderen Programmen benötigt werden.
  • Die Verwendung von Includes kann die Größe eines Profils reduzieren.
  • Include-Anweisungen beginnen normalerweise mit einem Rautezeichen (#).
  • Dies ist verwirrend, da das gleiche Hash-Zeichen für Kommentare in Profildateien verwendet wird.
  • Aus diesem Grund wird #include nur dann als Include behandelt, wenn kein vorangestelltes # (##include ist ein Kommentar) und kein Leerzeichen zwischen # und include vorhanden ist (#include ist ein Kommentar).

Abstractions

  • Abstraktionen sind Einschlüsse, die nach allgemeinen Anwendungsaufgaben gruppiert sind.
  • Diese Aufgaben umfassen den Zugriff auf Authentifizierungsmechanismen, Zugriff auf Namensdienstroutinen, allgemeine Grafikanforderungen und Systemabrechnung.
  • Dateien, die in diesen Abstraktionen aufgelistet sind, sind spezifisch für die benannte Aufgabe.
  • Programme, die eine dieser Dateien benötigen, benötigen normalerweise auch andere Dateien, die in der Abstraktionsdatei aufgeführt sind.
  • Abstraktionen finden Sie in /etc/apparmor.d/abstractions.

Capability Entries

  • Capability-Regeln bestehen einfach aus dem Wort Capability, gefolgt vom Namen der POSIX.1e-Capability, wie in der Manpage Capabilities definiert.
  • Sie können mehrere Fähigkeiten in einer einzigen Regel auflisten oder alle implementierten Fähigkeiten mit dem bloßen Schlüsselwort Fähigkeit gewähren.

Tunables

  • Das Tunables-Verzeichnis (/etc/apparmor.d/tunables) enthält globale Variablendefinitionen.
  • Bei Verwendung in einem Profil erweitern sich diese Variablen auf einen Wert, der geändert werden kann, ohne das gesamte Profil zu ändern.
  • Fügen Sie alle Tunables-Definitionen, die für jedes Profil verfügbar sein sollten, zu /etc/apparmor.d/tunables/global hinzu.

Regel

  • AppArmor kennt AppArmor sowohl Regeln für den Zugriff auf Dateien als auch für den Zugriff auf das Netzwerk.
  • Eine Regel besteht aus einem absoluten Dateinamen oder einem Dateiglobbing
  • gefolgt wird der Dateinamen von den Zugriffsrechten.
  • Sowohl der Dateiname als auch das Globbing kann Variablenenthalten.