Apparmor Profilaufbau: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | *Eine Profil-Datei ist dabei prinzipiell wie folgt aufgebaut: | ||
<pre> | <pre> | ||
#include <tunables/global> | #include <tunables/global> | ||
| Zeile 14: | Zeile 15: | ||
} | } | ||
</pre> | </pre> | ||
| + | =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. | ||
Aktuelle Version vom 17. Januar 2023, 05:36 Uhr
- 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.