GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Grundlegendes zur SELinux-Dateikennzeichnung und zum SELinux-Kontext

SELinux-Dateikennzeichnung

Allen Dateien, Verzeichnissen, Geräten und Prozessen ist ein Sicherheitskontext (oder Label) zugeordnet. Bei Dateien wird dieser Kontext in den erweiterten Attributen des Dateisystems gespeichert. Probleme mit SELinux entstehen oft dadurch, dass das Dateisystem falsch bezeichnet wird. Wenn Sie eine Fehlermeldung sehen, die file_t enthält , das ist normalerweise ein guter Indikator dafür, dass Sie ein Problem mit der Dateisystemkennzeichnung haben.

Es gibt mehrere Möglichkeiten, das Dateisystem umzubenennen:

  • Erstellen Sie die /.autorelabel-Datei und starten Sie neu.
  • Die Statusansicht in der SELinux-GUI bietet eine Option zum Umbenennen beim nächsten Neustart.
  • Drei Befehlszeilenprogramme, restorecon, setfiles und fixfiles, um Dateien umzubenennen.

SELinux-Kontext

Der SELinux-Kontext enthält zusätzliche Informationen wie SELinux-Benutzer, -Rolle, -Typ und -Level. Entscheidungen zur Zugriffskontrolle auf Prozesse, Linux-Benutzer und Dateien basieren auf diesen Kontextinformationen. Die Zugriffskontrolle basiert auf den folgenden Informationen:

  • SELinux-Benutzer :Linux-Benutzer werden SELinux-Benutzern zugeordnet.
  • Rolle :Ein Attribut von RBAC, das als Vermittler zwischen Domänen und SELinux-Benutzern fungiert
  • Typ :Ein Attribut von TE, das eine Domäne für Prozesse definiert
  • Stufe :Optionale Information; ein Attribut von MLS und MCS

Anzeigen von SELinux-Kontextinformationen

Sehen Sie sich SELinux-Kontextinformationen zu Dateien an
Um die Kontextinformationen des Dateisystems von der Befehlszeile aus anzuzeigen, verwenden Sie den Befehl „ls –Z ” Befehl:

# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 initial-setup-ks.cfg
HINWEIS :Diese Informationen werden auch im Verzeichnis /etc/selinux/[SELINUXTYPE]/contexts/files gespeichert.

Sehen Sie sich SELinux-Kontextinformationen zu Prozessen an
Um die SELinux-Kontextinformationen zu Prozessen anzuzeigen, verwenden Sie die „ps –Z ” Befehl:

# ps -Z
LABEL                              PID TTY          TIME CMD
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6617 pts/0 00:00:00 sudo
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6623 pts/0 00:00:00 su
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6624 pts/0 00:00:00 bash
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 8188 pts/0 00:00:00 ps

Sehen Sie sich SELinux-Kontextinformationen über Benutzer an
Um den mit Ihrem Linux-Benutzer verknüpften SELinux-Kontext anzuzeigen, verwenden Sie die „id –Z ” Befehl:

# id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Der SELinux-Kontext wird mithilfe der folgenden Syntax angezeigt:

user:role:type:level

Kontextdateityp ändern

Festplatten-Images virtueller KVM-Maschinen werden im Verzeichnis /var/lib/libvirt/images erstellt Verzeichnis standardmäßig. SELinux erfordert, dass Bilddateien das virt_image_t haben Etikett an ihnen angebracht. Sie können den Befehl „ls –dZ“ verwenden, um zu bestätigen, dass diese Bezeichnung auf das Verzeichnis /var/lib/libvirt/images angewendet wird:

# ls -dZ /var/lib/libvirt/images
drwx--x--x. root root system_u:object_r:virt_image_t:s0 /var/lib/libvirt/images

Sie können ein anderes Verzeichnis für Ihre VM-Images verwenden, aber Sie müssen das neue Verzeichnis zu Ihrer SELinux-Richtlinie hinzufügen und es zuerst umbenennen. Die folgenden Schritte werden verwendet, um das /kvmimages-Verzeichnis zur Ziel-SELinux-Richtlinie hinzuzufügen und das Verzeichnis umzubenennen:

# semanage fcontext -a -t virt_image_t "/kvmimages(/.*)?"

Der obige Befehl fügt das /kvmimages-Verzeichnis zur SELinux-Richtlinie hinzu, indem er eine Zeile an die folgende Datei anhängt:

# cat /etc/selinux/targeted/contexts/files/file_contexts.local
/kvmimages(/.*)?    system _u:object_r:virt_image_t:s0

Sie müssen noch den neuen Sicherheitskontext für das Verzeichnis und alle Dateien im Verzeichnis festlegen. Sie können einen der folgenden Befehle verwenden, um die SELinux-Kontexte im Verzeichnis /kvmimages zu ändern:

  • Dateien reparieren :Korrigiert den Sicherheitskontext auf Dateisystemen
  • restorecon :Setzt den Sicherheitskontext für eine oder mehrere Dateien zurück
  • setfiles :Initialisiert den Sicherheitskontext für eine oder mehrere Dateien

Jeder dieser Befehle liest die Dateien in /etc/selinux/targeted/contexts/files Verzeichnis. Das folgende Beispiel zeigt die SELinux-Kontexte vor dem Ausführen des Befehls restorecon:

# ls -dZ /kvmimages
drwx--x--x. root root system_u:object_r:unlabeled_t:s0 /var/lib/libvirt/images

Beachten Sie, dass der SELinux-Typ auf unlabeled_t gesetzt ist . Das folgende Beispiel führt den Befehl restorecon aus, um den Typ wie in /etc/selinux/targeted/contexts/files/file_contexts.local definiert zu ändern Datei:

# restorecon -R -v /kvmimages
# ls -dZ /var/kvmimages
drwx--x--x. root root system_u:object_r:virt_image_t:s0 /kvmimages

Es gibt auch SELinux-Booleans, die KVM beeinflussen, wenn sie von libvirt gestartet werden. Zwei dieser Booleschen Werte sind wie folgt aufgelistet:

  • virt_use_nfs :Virt erlauben, NFS-Dateien zu verwalten.
  • virt_use_samba :Virt erlauben, CIFS-Dateien zu verwalten.

Diese booleschen Werte müssen aktiviert werden, wenn NFS- bzw. SAMBA-Freigaben zum Speichern von Datenträgerabbildern virtueller Maschinen verwendet werden. Es gibt zusätzliche SELinux-Booleans, die sich auf KVM auswirken. Einige davon sind wie folgt aufgeführt:

# getsebool -a | grep virt
staff_use_svirt --> off
unprivuser_use_svirt --> off
virt_read_qemu_ga_data --> off
virt_rw_qemu_ga_data --> off
virt_sandbox_use_all_caps --> on
virt_sandbox_use_audit --> on
virt_sandbox_use_fusefs --> off
virt_sandbox_use_mknod --> off
virt_sandbox_use_netlink --> off
virt_sandbox_use_sys_admin --> off
virt_transition_userdomain --> off
virt_use_comm --> off
virt_use_execmem --> off
virt_use_fusefs --> off
virt_use_nfs --> on
virt_use_rawip --> off
virt_use_samba --> off
virt_use_sanlock --> off
virt_use_usb --> on
virt_use_xserver --> off
Was sind SELinux-Benutzer und wie werden Linux-Benutzer SELinux-Benutzern zugeordnet


Cent OS
  1. Linux – Unix-Berechtigungen und Dateitypen verstehen?

  2. Dateiberechtigungen und Speichern?

  3. Ausgabe umleiten und leiten?

  4. Installation und Konfiguration von vsFTPD

  5. Logrotate-Dienstprogramm verstehen

Dateipfade verstehen und wie man sie unter Linux verwendet

Grundlegendes zu Linux-Dateiberechtigungen

SELinux Fehlerbehebung und Fallstricke

Grundlegendes zu Linux-Dateiberechtigungen

Grundlegendes zu Linux Multipath (dm-multipath)

Grundlegende Dateiberechtigungen und Eigentumsrechte in Linux verstehen