Zum Inhalt springen

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

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
'''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.


Durch das Setzen dieses Parameters startet das System im permissiven Modus, was bei der Fehlerbehebung nützlich ist
<syntaxhighlight lang="text" copy line highlight="1">
* Die Verwendung des permissiven Modus ist möglicherweise die einzige Möglichkeit, ein Problem zu erkennen, wenn Ihr Dateisystem zu stark beschädigt ist
selinux=0
* Außerdem erstellt das System im permissiven Modus weiterhin die Labels korrekt
</syntaxhighlight>
* 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
* Der Kernel lädt keinen Teil der SELinux-Infrastruktur.
* Im Enforcing-Modus hingegen erhalten Sie möglicherweise eine Verweigerung beim Lesen eines Verzeichnisses, woraufhin eine Anwendung stoppt
* Dieser Parameter ist kein regulärer Weg zur Fehlersuche.
* 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
* Für Debugging sollte nach Möglichkeit ''enforcing=0'' verwendet werden.
selinux=0
* Wird später wieder mit aktiviertem SELinux gestartet, ist in der Regel ein Relabeling erforderlich.


Dieser Parameter bewirkt, dass der Kernel keinen Teil der SELinux-Infrastruktur lädt
; Hinweis
* Die Init-Skripte erkennen, dass das System mit dem Parameter [[selinux=0]] gebootet wurde, und schreiben in die Datei [[/.autorelabel]]
: Beim Start mit ''selinux=0'' wird ''/.autorelabel'' vorbereitet, damit das System beim nächsten Start mit aktiviertem SELinux neu gekennzeichnet werden kann.
* Dies bewirkt, dass das System beim nächsten Start mit aktiviertem SELinux automatisch eine Neukennzeichnung durchführt


; Wichtig
=== ''autorelabel=1'' ===
: Red Hat empfiehlt die Verwendung des Parameters [[selinux=0]] nicht
Der Parameter ''autorelabel=1'' erzwingt ein Relabeling beim Start.
* Verwenden Sie zum Debuggen Ihres Systems vorzugsweise den permissiven Modus
autorelabel=1


Dieser Parameter zwingt das System zu einer Neukennzeichnung, ähnlich wie die folgenden Befehle
<syntaxhighlight lang="text" copy line highlight="1">
sudo touch /.autorelabel
autorelabel=1
sudo reboot
</syntaxhighlight>


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
Dies entspricht funktional dem folgenden Ablauf:


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
<syntaxhighlight lang="bash" copy line highlight="">
* Diese Dokumentation wird mit dem Paket kernel-doc installiert
touch /.autorelabel
* Ersetzen Sie die Zeichenfolge ‚‘<KERNEL_VER>‚‘ durch die Versionsnummer des installierten Kernels, zum Beispiel
reboot
sudo yum install kernel-doc
</syntaxhighlight>
less /usr/share/doc/kernel-doc-‚'3.10.0‘' /Documentation/kernel-parameters.txt
 
* 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.&nbsp; Relabeling für den nächsten Start markieren:
<syntaxhighlight lang="bash" copy line highlight="1">
fixfiles -F onboot
</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>
 
* ''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.


{{Navigation|Linux/SELinux/04/04 Dauerhafte Änderungen|Linux/SELinux/04/06 Booleane}}
{{Navigation|Linux/SELinux/04/04 Dauerhafte Änderungen|Linux/SELinux/04/06 Booleane}}
== 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


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

Version vom 30. März 2026, 02:29 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: