Normalerweise können Anwendungen, die mit der effektiven UID des Benutzers ausgeführt werden, auf die im Basisverzeichnis eines Benutzers gespeicherten privaten Dateien zugreifen. Wie kann ich verhindern, dass eine bestimmte Anwendung auf bestimmte private Dateien zugreift, während andere Anwendungen mit AppArmor unter openSUSE weiterhin auf die Dateien zugreifen können?
opensuse
access-control
apparmor
ist oben
quelle
quelle
Antworten:
AppArmor ist ein MAC- Linux-Sicherheitsmodul ( Mandatory Access Control ), das unter anderem von Ubuntu und SUSE Linux verwendet wird. AppArmor-Zugriffssteuerungsregeln werden in AppArmor-Profilen in definiert . Die Profile sind einfach Textdateien, die Informationen zu Ressourcen enthalten, auf die die Anwendung, auf die sich das Profil bezieht, zugreifen darf.
/etc/apparmor.d/
In der Regel wird beim Entwerfen von Profilen die Anwendung mit dem auf AppArmor eingestellten
complain
Modus ausgeführt, in dem Verstöße gegen die Zugriffssteuerung zulässig sind, jedoch protokolliert werden. Mit den Protokollen würde man das Profil iterativ verfeinern. Wenn das Profil fertig ist, kann AppArmor in denenforce
Modus geschaltet werden, in dem die im Profil definierten Zugriffssteuerungsregeln erzwungen und alle Verstoßversuche protokolliert werden.Der Umriss eines AppArmor-Profils sieht folgendermaßen aus:
Die
#include
Richtlinien ermöglichen es, Anweisungen, die sich auf mehrere Anwendungen beziehen, in einer gemeinsamen Datei abzulegen und dann in das Profil jeder relevanten Anwendung aufzunehmen.Die
<tunables/global>
Datei, die wiederum entspricht,/etc/apparmor.d/tunables/global
enthält Definitionen, die für jedes Profil verfügbar sein sollten. Eine dieser zusätzlichen Funktionen ist/etc/apparmor/tunables/home
, die zusammen mit einer@{HOME}/** rw
(oder einer ähnlichen Richtlinie) Anwendungen Zugriff auf Benutzer-Home-Verzeichnisse gewähren.In diesem Fall müsste eine Profilregel hinzugefügt werden, um den Zugriff auf die Dateien explizit zu verweigern , um den Zugriff auf bestimmte Dateien im Benutzerverzeichnis zu verweigern . Dies kann mithilfe der
deny
Direktive erfolgen, wie im folgenden Beispiel:Das würde read (
r
), write (w
) und append (a
) den Zugriff verweigern/home/user/file
.Eine Alternative besteht darin, die Pfade, die Sie schützen möchten, zu
/etc/apparmor.d/abstractions/private-files
oder hinzuzufügen/etc/apparmor.d/abstractions/private-files-strict
und sicherzustellen, dass das AppArmor-Profil für jede betroffene Anwendung das<abstractions/private-files>
oder enthält<abstraction/private-files-strict>
. Diese Dateien sollten bereits Regeln für allgemeine Dateien enthalten, die aus Datenschutz- oder anderen Sicherheitsgründen geschützt werden sollten.Eine vollständige Liste der Details zum Zugriffsmodus und weitere Informationen zu AppArmor-Sicherheitsprofilen finden Sie auf der
apparmor.d
Handbuchseite und im Novell AppArmor Administration Guide (pdf) .quelle
[Antwort auf die bearbeitete, spezifischere Frage.]
Um den Zugriff in AppArmor für ein Programm einzuschränken, erstellen Sie foo ein Profil mit dem Eintrag
Ermöglicht den Lesezugriff auf die Dateien in / etc / foo
würde Lesezugriff auf alle Unterverzeichnisse in / etc. ermöglichen
Umgekehrt können Sie verwenden
um den Zugriff auf einen privaten Pfad einzuschränken.
Verweise
quelle