GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Welche Rolle spielen DAC (Dateiberechtigungen), ACL und MAC (SELinux) bei der Linux-Dateisicherheit?

Wenn ein Prozess eine Operation an einer Datei ausführt, führt der Linux-Kernel die Prüfung in der folgenden Reihenfolge durch:

  1. Discretionary Access Control (DAC) oder vom Benutzer vorgegebene Zugriffskontrolle. Dies umfasst sowohl Berechtigungsprüfungen im klassischen UNIX-Stil als auch POSIX-Zugriffssteuerungslisten (ACL). Klassische UNIX-Prüfungen vergleichen die aktuelle Prozess-UID und -GID mit der UID und GID der Datei, auf die zugegriffen wird, hinsichtlich der eingestellten Modi (Read/Write/eXecute). Die Zugriffskontrollliste erweitert die klassischen UNIX-Prüfungen, um mehr Optionen bezüglich der Berechtigungskontrolle zu ermöglichen.

  2. Mandatory Access Control (MAC) oder richtlinienbasierte Zugriffskontrolle. Dies wird mithilfe von Linux-Sicherheitsmodulen (LSM) implementiert, die keine echten Module mehr sind (früher waren sie es, wurden aber fallen gelassen). Sie ermöglichen zusätzliche Prüfungen, die auf anderen Modellen als den klassischen Sicherheitsprüfungen im UNIX-Stil basieren. Alle diese Modelle basieren auf einer Richtlinie, die beschreibt, welche Art von Operationen für welchen Prozess in welchem ​​Kontext erlaubt sind.

Hier ist ein Beispiel für den Inodes-Zugriff (einschließlich Dateizugriff), um meine Antwort mit Links zu einem Online-Linux-Querverweis zu untermauern. Die Datei „function_name (Dateiname:Zeile)" sind für die Version 3.14 des Linux-Kernels.

Die Funktion inode_permission (fs/namei.c:449) überprüft zuerst die Leseberechtigung auf dem Dateisystem selbst (sb_permission in fs/namei.c:425), ruft dann __inode_permission auf (fs/namei.c:394), um auf Lese-/Schreib-/Ausführungsberechtigungen und POSIX-ACL auf einem Inode in do_inode_permission zu prüfen (fs/namei.c:368) (DAC) und dann LSM-bezogene Berechtigungen (MAC) in security_inode_permission (security/security.c:550).

Es gab nur eine Ausnahme zu dieser Reihenfolge (DAC, dann MAC):Es war für die mmap-Prüfungen. Dies wurde jedoch in der Version 3.15 des Linux-Kernels behoben (entsprechender Commit).


DAC ==Discretionary Access Control , http://en.wikipedia.org/wiki/Discretionary_access_control
MAC ==Mandatory Access Control , http://en.wikipedia.org/wiki/Mandatory_access_control
ACL ==Access Control List , http://en.wikipedia.org/wiki/Access_control_list

Die ACL spezifiziert die anzuwendenden Kontrollen durch die Kontrollmethode DAC oder MAC . MAC ist explizit, wird zentral gesteuert und erlaubt Benutzern nicht, einem Objekt Autorität zu erteilen, es sei denn, sie haben ausdrückliche Berechtigungen dazu, wohingegen DAC ermöglicht Benutzern, anderen Benutzern Zugriff auf Objekte zu gewähren, auf die sie zugreifen können.

MAC ACL s werden immer zuerst auf eine Anfrage angewendet, und wenn der Zugriff verweigert wird, wird die Verarbeitung gestoppt. Wenn der Zugriff erlaubt ist, dann DAC ACL s angewendet werden, und erneut, wenn der Zugriff verweigert wird, wird die Verarbeitung gestoppt. Nur wenn der Zugriff von beiden MAC gewährt wird und DAC ACL s kann der Benutzer auf das angeforderte Objekt zugreifen.

SELinux ist ein MAC Implementierung für Linux (es gibt andere), während die traditionelle rwx Dateiberechtigungen, kombiniert mit dem besitzenden Benutzer und der Gruppe, bilden den vollständigen DAC ACL . Die SELinux „Richtlinie“ ist im Wesentlichen die MAC ACL .


Tut mir leid, dass ich streite, aber ich denke, einige der Antworten hier könnten falsch sein. Direkt von Fedoras http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html:

SELinux-Richtlinienregeln werden nach DAC-Regeln überprüft. SELinux-Richtlinienregeln werden nicht verwendet, wenn DAC-Regeln zuerst den Zugriff verweigern.


Linux
  1. Was ist Umask unter Linux

  2. Was ist NFS und wie wird es unter Linux installiert?

  3. Linux – Was sind die verschiedenen Möglichkeiten zum Festlegen von Dateiberechtigungen usw. unter Gnu/Linux?

  4. Linux-Interviewfragen – Grundlegende Datei- und Verzeichnisberechtigungen

  5. In welchen Sprachen sind Windows, Mac OS X und Linux geschrieben?

Linux-Dateibefehl:Was macht er und wie wird er verwendet?

Grundlegendes zu Linux-Dateiberechtigungen

Was ist umask unter Linux?

Linux-Dateiberechtigungen und Eigentumsrechte mit Beispielen erklärt

Grundlegende Dateiberechtigungen und Eigentumsrechte in Linux verstehen

Was ist eine XPerf-Alternative für Linux und Mac OS X?