Antworten:
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üpfungAppArmor ist ein MAC-System (Mandatory Access Control), eine Kernel-Erweiterung (LSM), mit der Programme auf einen begrenzten Ressourcensatz beschränkt werden können. Das Sicherheitsmodell von AppArmor besteht darin, Zugriffssteuerungsattribute nicht an Benutzer, sondern an Programme zu binden. Die AppArmor-Beschränkung erfolgt über Profile, die normalerweise beim Booten in den Kernel geladen werden. AppArmor-Profile können in zwei Modi ausgeführt werden: Durchsetzung und Beschwerde. Im Durchsetzungsmodus geladene Profile führen zur Durchsetzung der im Profil definierten Richtlinie sowie zur Meldung von Richtlinienverletzungsversuchen (entweder über syslog oder auditd). Bei Profilen im Beschwerdemodus werden keine Richtlinien erzwungen, sondern Richtlinienverletzungsversuche gemeldet.
AppArmor unterscheidet sich von einigen anderen MAC-Systemen unter Linux darin, dass es pfadbasiert ist, das Mischen von Durchsetzungs- und Beschwerdemodus-Profilen ermöglicht, Include-Dateien verwendet, um die Entwicklung zu vereinfachen, und eine weit geringere Eintrittsbarriere aufweist als andere gängige MAC-Systeme.
AppArmor ist eine etablierte Technologie, die erstmals in Immunix verwendet und später in Ubuntu, Novell / SUSE und Mandriva integriert wurde. Die Hauptfunktionalität von AppArmor ist ab 2.6.36 im Linux-Kernel enthalten. AppArmor, Ubuntu und andere Entwickler arbeiten derzeit daran, zusätzliche AppArmor-Funktionen in den Hauptkern zu integrieren.
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.
Hier ist ein Zitat aus dem Apparmor-Wiki :
AppArmor ist ein effektives und benutzerfreundliches Linux-Anwendungssicherheitssystem. AppArmor schützt das Betriebssystem und die Anwendungen proaktiv vor externen oder internen Bedrohungen, auch vor Zero-Day-Angriffen, indem es ein gutes Verhalten erzwingt und verhindert, dass auch unbekannte Anwendungsfehler ausgenutzt werden. AppArmor-Sicherheitsrichtlinien definieren vollständig, auf welche Systemressourcen einzelne Anwendungen zugreifen können und mit welchen Berechtigungen. In AppArmor sind eine Reihe von Standardrichtlinien enthalten. Mithilfe einer Kombination aus fortschrittlicher statischer Analyse und lernbasierten Tools können AppArmor-Richtlinien auch für sehr komplexe Anwendungen innerhalb weniger Stunden erfolgreich bereitgestellt werden.