Zum Inhalt springen

Linux/SELinux/04/05 Systemstart: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite SELinux/DOC/04 Arbeiten mit SELinux/Ändern der SELinux-Modi beim Systemstart nach Linux/SELinux/DOC/04 Arbeiten mit Linux/SELinux/Ändern der Linux/SELinux-Modi beim Systemstart, ohne dabei eine Weiterleitung anzulegen: Textersetzung - „SELinux“ durch „Linux/SELinux“
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Navigation|Linux/SELinux/04/04 Dauerhafte Änderungen|Linux/SELinux/04/06 Booleane}}
'''Linux/SELinux/04/05 Ändern der SELinux-Modi beim Systemstart'''
=== Ändern der SELinux-Modi beim Systemstart ===
=== Ändern der SELinux-Modi beim Systemstart ===
Beim Systemstart können Sie mehrere Kernel-Parameter setzen, um die Funktionsweise von SELinux zu ändern
Beim Systemstart können Kernel-Parameter das SELinux-Verhalten direkt während des Bootvorgangs beeinflussen.
enforcing=0
 
* Diese Parameter überschreiben die übliche SELinux-Konfiguration für den jeweiligen Start.
* Sie sind vor allem für Fehlersuche, Relabeling und Notfallszenarien relevant.
* Für dauerhafte Änderungen über die Konfigurationsdatei siehe [[Linux/SELinux/04/04 Dauerhafte Änderungen|Dauerhafte Änderungen]].
 
{| class="wikitable options big"
! Parameter
! Wirkung
! Typischer Einsatz
|-
| ''enforcing=0''
| Start im permissiven Modus
| Fehlersuche und sicherer Start vor einem Relabeling
|-
| ''selinux=0''
| Der Kernel lädt keine SELinux-Infrastruktur
| Ausnahmefall bei schweren Startproblemen
|-
| ''autorelabel=1''
| Erzwingt ein Relabeling beim nächsten Start
| Reparatur fehlerhafter oder unvollständiger Dateilabels
|}
 
=== ''enforcing=0'' ===
Der Parameter ''enforcing=0'' startet das System im permissiven Modus.
 
<syntaxhighlight lang="text" copy line highlight="1">
enforcing=0
</syntaxhighlight>
 
* SELinux bleibt geladen, erzwingt die Policy jedoch nicht.
* Zugriffe werden nicht blockiert, mögliche Ablehnungen werden aber weiterhin protokolliert.
* Dieser Modus ist für die Fehlersuche besser geeignet als eine vollständige Deaktivierung.
* Neue Labels werden weiterhin korrekt erzeugt.
* Die entstehenden AVC-Meldungen können sich vom Enforcing-Modus unterscheiden, weil Prozesse nach einer protokollierten Ablehnung weiterlaufen können.
 
=== ''selinux=0'' ===
Der Parameter ''selinux=0'' deaktiviert SELinux bereits im Kernel.
 
<syntaxhighlight lang="text" copy line highlight="1">
selinux=0
</syntaxhighlight>
 
* Der Kernel lädt keinen Teil der SELinux-Infrastruktur.
* Dieser Parameter ist kein regulärer Weg zur Fehlersuche.
* Für Debugging sollte nach Möglichkeit ''enforcing=0'' verwendet werden.
* Wird später wieder mit aktiviertem SELinux gestartet, ist in der Regel ein Relabeling erforderlich.
 
; Hinweis
: Beim Start mit ''selinux=0'' wird ''/.autorelabel'' vorbereitet, damit das System beim nächsten Start mit aktiviertem SELinux neu gekennzeichnet werden kann.
 
=== ''autorelabel=1'' ===
Der Parameter ''autorelabel=1'' erzwingt ein Relabeling beim Start.
 
<syntaxhighlight lang="text" copy line highlight="1">
autorelabel=1
</syntaxhighlight>
 
Dies entspricht funktional dem folgenden Ablauf:
 
<syntaxhighlight lang="bash" copy line highlight="">
touch /.autorelabel
reboot
</syntaxhighlight>
 
* Wenn viele Objekte falsch oder gar nicht gelabelt sind, sollte der Start zusätzlich permissiv erfolgen.
* Dafür kann ''autorelabel=1'' mit ''enforcing=0'' kombiniert werden.


Durch das Setzen dieses Parameters startet das System im permissiven Modus, was bei der Fehlerbehebung nützlich ist
=== Relabeling vorbereiten ===
* Die Verwendung des permissiven Modus ist möglicherweise die einzige Möglichkeit, ein Problem zu erkennen, wenn Ihr Dateisystem zu stark beschädigt ist
Auf Debian und RHEL kann ein Relabeling auch aus dem laufenden System für den nächsten Start vorgemerkt werden.
* Außerdem erstellt das System im permissiven Modus weiterhin die Labels korrekt
* Die in diesem Modus erzeugten AVC-Meldungen können sich von denen im Enforcing-Modus unterscheiden


Im Permissive-Modus wird nur die erste Verweigerung aus einer Reihe gleicher Verweigerungen gemeldet
1.&nbsp; Relabeling für den nächsten Start markieren:
* Im Enforcing-Modus hingegen erhalten Sie möglicherweise eine Verweigerung beim Lesen eines Verzeichnisses, woraufhin eine Anwendung stoppt
<syntaxhighlight lang="bash" copy line highlight="1">
* Im permissiven Modus erhalten Sie dieselbe AVC-Meldung, aber die Anwendung liest weiterhin Dateien in dem Verzeichnis, und Sie erhalten zusätzlich für jede Verweigerung eine AVC
fixfiles -F onboot
selinux=0
</syntaxhighlight>
2.&nbsp; System neu starten:
<syntaxhighlight lang="bash" copy line highlight="1">
reboot
</syntaxhighlight>
3.&nbsp; Falls das System zuvor ohne SELinux betrieben wurde oder viele Labels fehlen, zusätzlich permissiv starten:
<syntaxhighlight lang="text" copy line highlight="1">
enforcing=0
</syntaxhighlight>


Dieser Parameter bewirkt, dass der Kernel keinen Teil der SELinux-Infrastruktur lädt
* ''fixfiles -F onboot'' legt die Markierung für das Relabeling des nächsten Starts an.
* Die Init-Skripte erkennen, dass das System mit dem Parameter [[selinux=0]] gebootet wurde, und schreiben in die Datei [[/.autorelabel]]
* Laut Debian-Dokumentation wird ''/.autorelabel'' beim automatischen Relabeling mit ''fixfiles -F restore'' ausgewertet.
* Dies bewirkt, dass das System beim nächsten Start mit aktiviertem SELinux automatisch eine Neukennzeichnung durchführt


; Wichtig
=== Unterschiede zwischen Debian und RHEL ===
: Red Hat empfiehlt die Verwendung des Parameters [[selinux=0]] nicht
* Die Kernel-Parameter ''enforcing=0'', ''selinux=0'' und ''autorelabel=1'' sind distributionsunabhängig.
* Verwenden Sie zum Debuggen Ihres Systems vorzugsweise den permissiven Modus
* RHEL dokumentiert diese Parameter direkt im SELinux-Handbuch.
autorelabel=1
* Debian dokumentiert die zugehörige Relabeling-Mechanik vor allem über ''fixfiles(8)'' und ''selinux_config(5)''.
* Die konkrete Eintragung in die Bootloader-Konfiguration ist distributions- und Bootloader-abhängig und wird hier nicht behandelt.


Dieser Parameter zwingt das System zu einer Neukennzeichnung, ähnlich wie die folgenden Befehle
=== Hinweise ===
sudo touch /.autorelabel
* Boot-Parameter wirken nur bei Starts, bei denen sie tatsächlich übergeben werden.
sudo reboot
* Bleibt ein Parameter dauerhaft in der Bootloader-Konfiguration eingetragen, gilt er bei jedem weiteren Start.
* Für den normalen Betrieb sollte SELinux nicht über ''selinux=0'', sondern nur in begründeten Ausnahmefällen vollständig deaktiviert werden.


Wenn die Systemkennzeichnung eine große Anzahl von Fehlern enthält, müssen Sie möglicherweise im permissiven Modus booten, damit die automatische Neukennzeichnung erfolgreich ist
== Weblinks ==
Red Hat Documentation:
* https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/using_selinux/changing-selinux-states-and-modes
Debian Manpages:
* https://manpages.debian.org/testing/policycoreutils/fixfiles.8.en.html
* https://manpages.debian.org/testing/policycoreutils/selinux_config.5.en.html


Weitere SELinux-bezogene Kernel-Boot-Parameter, wie beispielsweise [[checkreqprot]], finden Sie in der Datei [[/ usr/share/doc/kernel-doc-‚‘<KERNEL_VER>‚‘/Documentation/kernel-parameters.txt]]-Datei
{{Navigation|Linux/SELinux/04/04 Dauerhafte Änderungen|Linux/SELinux/04/06 Booleane}}
* Diese Dokumentation wird mit dem Paket kernel-doc installiert
* Ersetzen Sie die Zeichenfolge ‚‘<KERNEL_VER>‚‘ durch die Versionsnummer des installierten Kernels, zum Beispiel
sudo yum install kernel-doc
less /usr/share/doc/kernel-doc-‚'3.10.0‘' /Documentation/kernel-parameters.txt


[[Kategorie:Linux/SELinux/DOC/04]]
[[Kategorie:Linux/SELinux/04]]

Aktuelle Version vom 31. März 2026, 10:48 Uhr

Linux/SELinux/04/05 Ändern der SELinux-Modi beim Systemstart

Ändern der SELinux-Modi beim Systemstart

Beim Systemstart können Kernel-Parameter das SELinux-Verhalten direkt während des Bootvorgangs beeinflussen.

  • Diese Parameter überschreiben die übliche SELinux-Konfiguration für den jeweiligen Start.
  • Sie sind vor allem für Fehlersuche, Relabeling und Notfallszenarien relevant.
  • Für dauerhafte Änderungen über die Konfigurationsdatei siehe Dauerhafte Änderungen.
Parameter Wirkung Typischer Einsatz
enforcing=0 Start im permissiven Modus Fehlersuche und sicherer Start vor einem Relabeling
selinux=0 Der Kernel lädt keine SELinux-Infrastruktur Ausnahmefall bei schweren Startproblemen
autorelabel=1 Erzwingt ein Relabeling beim nächsten Start Reparatur fehlerhafter oder unvollständiger Dateilabels

enforcing=0

Der Parameter enforcing=0 startet das System im permissiven Modus.

enforcing=0
  • SELinux bleibt geladen, erzwingt die Policy jedoch nicht.
  • Zugriffe werden nicht blockiert, mögliche Ablehnungen werden aber weiterhin protokolliert.
  • Dieser Modus ist für die Fehlersuche besser geeignet als eine vollständige Deaktivierung.
  • Neue Labels werden weiterhin korrekt erzeugt.
  • Die entstehenden AVC-Meldungen können sich vom Enforcing-Modus unterscheiden, weil Prozesse nach einer protokollierten Ablehnung weiterlaufen können.

selinux=0

Der Parameter selinux=0 deaktiviert SELinux bereits im Kernel.

selinux=0
  • Der Kernel lädt keinen Teil der SELinux-Infrastruktur.
  • Dieser Parameter ist kein regulärer Weg zur Fehlersuche.
  • Für Debugging sollte nach Möglichkeit enforcing=0 verwendet werden.
  • Wird später wieder mit aktiviertem SELinux gestartet, ist in der Regel ein Relabeling erforderlich.
Hinweis
Beim Start mit selinux=0 wird /.autorelabel vorbereitet, damit das System beim nächsten Start mit aktiviertem SELinux neu gekennzeichnet werden kann.

autorelabel=1

Der Parameter autorelabel=1 erzwingt ein Relabeling beim Start.

autorelabel=1

Dies entspricht funktional dem folgenden Ablauf:

touch /.autorelabel
reboot
  • Wenn viele Objekte falsch oder gar nicht gelabelt sind, sollte der Start zusätzlich permissiv erfolgen.
  • Dafür kann autorelabel=1 mit enforcing=0 kombiniert werden.

Relabeling vorbereiten

Auf Debian und RHEL kann ein Relabeling auch aus dem laufenden System für den nächsten Start vorgemerkt werden.

1.  Relabeling für den nächsten Start markieren:

fixfiles -F onboot

2.  System neu starten:

reboot

3.  Falls das System zuvor ohne SELinux betrieben wurde oder viele Labels fehlen, zusätzlich permissiv starten:

enforcing=0
  • fixfiles -F onboot legt die Markierung für das Relabeling des nächsten Starts an.
  • Laut Debian-Dokumentation wird /.autorelabel beim automatischen Relabeling mit fixfiles -F restore ausgewertet.

Unterschiede zwischen Debian und RHEL

  • Die Kernel-Parameter enforcing=0, selinux=0 und autorelabel=1 sind distributionsunabhängig.
  • RHEL dokumentiert diese Parameter direkt im SELinux-Handbuch.
  • Debian dokumentiert die zugehörige Relabeling-Mechanik vor allem über fixfiles(8) und selinux_config(5).
  • Die konkrete Eintragung in die Bootloader-Konfiguration ist distributions- und Bootloader-abhängig und wird hier nicht behandelt.

Hinweise

  • Boot-Parameter wirken nur bei Starts, bei denen sie tatsächlich übergeben werden.
  • Bleibt ein Parameter dauerhaft in der Bootloader-Konfiguration eingetragen, gilt er bei jedem weiteren Start.
  • Für den normalen Betrieb sollte SELinux nicht über selinux=0, sondern nur in begründeten Ausnahmefällen vollständig deaktiviert werden.

Red Hat Documentation:

Debian Manpages: