Ich höre viel über apparmor reden, ich möchte Folgendes wissen:
- Was ist apparmor
- Wie funktioniert AppArmor?
Apparmor ist ein System mit obligatorischer Zugriffskontrolle (MAC). Es verwendet Verbesserungen des LSM-Kernels, um Programme auf bestimmte Ressourcen zu beschränken. AppArmor führt dies mit Profilen durch, die beim Systemstart in den Kernel geladen werden. Apparmor bietet zwei Arten von Profilmodi: Durchsetzung und Beschwerde. Profile in Erzwingungsmodus erzwingen um die Profilregeln und Verletzung Versuche berichten syslog
oder auditd
. Profile im Reklamationsmodus erzwingen keine Profilregeln, sondern protokollieren lediglich Verletzungsversuche.
In Ubuntu ist Apparmor standardmäßig installiert. Es beschränkt Anwendungen auf Profile, um zu bestimmen, auf welche Dateien und Berechtigungen ein Programm zugreifen muss. Einige Anwendungen werden mit ihren eigenen Eigenschaften geliefert und weitere sind im apparmor-profiles
Paket enthalten.
Sie können apparmor-profiles
durch Ausführen installieren sudo apt-get install apparmor-profiles
.
Ich habe in den Ubuntu-Foren ein gutes Beispiel für Apparmor gefunden, das ich für diesen Beitrag umgeschrieben habe.
Apparmor ist ein Sicherheitsframework, das verhindert, dass Anwendungen böse werden. Beispiel: Wenn ich Firefox ausführe und eine fehlerhafte Website besuche, auf der versucht wird, Malware zu installieren, mit der mein
home
Ordner gelöscht wird, hat Apparmor Einschränkungen für Firefox, obwohl verhindert wird, dass etwas getan wird, was ich nicht möchte (z. B. Zugriff auf meine Musik, Dokumente usw.). Auf diese Weise kann kein Schaden angerichtet werden, selbst wenn Ihre Anwendung gefährdet ist.
Das apparmor-utils
Paket enthält Befehlszeilentools zum Konfigurieren von Apparmor. Hiermit können Sie den Ausführungsmodus von Apparmor ändern, den Status eines Profils ermitteln, neue Profile erstellen usw.
Dies sind die häufigsten Befehle:
Hinweis: Profile werden in gespeichert/etc/apparmor.d/
sudo apparmor_status
. Sie erhalten eine Liste aller geladenen Profile *, aller Profile im Erzwingungsmodus, aller Profile im Beschwerdemodus, welche Prozesse in Erzwingung / Beschwerde definiert sind usw. sudo aa-complain /path/to/bin
, wo /path/to/bin
sich der Programmordner befindet bin
. Wenn Sie beispielsweise: sudo aa-complain /usr/bin/firefox
ausführen, wird Firefox in den Beschwerdemodus versetzt.sudo aa-enforce /path/to/bin
erzwingen Sie ein Programmprofil. sudo aa-complain /etc/apparmor.d/*
und in den Beschwerde- / Erzwingungsmodus laden sudo aa-enforce.d/*
. Zum Laden eines Profils in den Kernel verwenden Sie apparmor_parser
. Sie können Profile mit dem -r
Parameter neu laden .
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
den Inhalt von effektiv profile.name
in Apparmors Parser zu drucken.-r
Parameter wie folgt:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
sudo service apparmor reload
So deaktivieren Sie ein Profil , das Sie verbinden es /etc/apparmor.d/disable/
mit ln
so: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
dann laufen: sudo apparmor_parser -R /etc/apparmor.d/profile.name
.
Hinweis: Verwechseln Sie nichtapparmor_parser -r
mitapparmor_parser -R
SIE SIND NICHT DIE GLEICHEN!
/etc/apparmor.d/disable/
und laden Sie es mit dem -a
Parameter.sudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
sudo service apparmor stop
und das Kernelmodul mit entfernensudo update-rc.d -f apparmor defaults
sudo service apparmor start
und laden Sie die Kernelmodule mitsudo update-rc.d apparmor defaults
Profile werden in gespeichert /etc/apparmor.d/
und nach dem vollständigen Pfad der ausführbaren Datei benannt, die sie enthalten, wobei '/' durch '.' Ersetzt wird. Zum Beispiel /etc/apparmor.d/bin.ping
ist das Profil für ping
in /bin
.
Es gibt zwei Haupttypen von Einträgen in Profilen:
Pfadeinträge bestimmen, auf welche Dateien eine Anwendung zugreifen kann.
Funktionseinträge bestimmen, welche Berechtigungen ein Prozess verwenden kann.
Schauen wir uns als Beispiel das Profil an ping
, in dem sich etc/apparmor.d/bin.ping
befindet.
#include <tunables/global>
/bin/ping flags=(complain) {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
/bin/ping mixr,
/etc/modules.conf r,
}
#include <tunables/global>
Wenn die Datei global
in das Verzeichnis aufgenommen wird tunables
, können Anweisungen für mehrere Anwendungen in einer gemeinsamen Datei abgelegt werden.
/bin/ping flags=(complain)
Legt den Pfad zum Profilprogramm und den Beschwerdemodus fest.
capability net_raw
Ermöglicht der Anwendung den Zugriff auf die CAP_NET_RAW Posix.1e
Funktion.
/bin/ping mixr
Ermöglicht der Anwendung das Lesen und Ausführen des Zugriffs auf die Datei.
/etc/modules.conf r,
Das r
gibt die Anwendung Leseberechtigungen für/etc/modules.conf
Hinweis: Nachdem Sie ein Profil erstellt / bearbeitet haben, müssen Sie es erneut laden, damit die Änderungen wirksam werden.
Hier ist eine Liste der Berechtigungen, die Sie verwenden können:
r
- lesen w
- schreiben ux
- Uneingeschränkte Ausführung Ux
- Uneingeschränkte Ausführung - Bereinigen Sie die Umgebung px
- Diskretes Profil ausführen Px
- Diskretes Profil ausführen - Umgebung reinigen ix
- Ausführen übernehmen m
- PROT_EXEC
Mit mmap(2)
Anrufen zulassenl
- Verknüpfung
Ich habe ein paar weitere hilfreiche Links zu dir: Wiki.Ubuntu.com Ubuntuforums.org
Apparmor-Anleitungen für Ubuntu 12.04 und Ubuntu 12.10
Hoffe das wird dir helfen.
quelle
Hier ist ein Zitat aus dem Apparmor-Wiki :
quelle