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.cfgHINWEIS :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 --> offWas sind SELinux-Benutzer und wie werden Linux-Benutzer SELinux-Benutzern zugeordnet