Zum Inhalt springen

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

Aus Foxwiki
Die Seite wurde neu angelegt: „=== Ändern der SELinux-Modi beim Systemstart === Beim Systemstart können Sie mehrere Kernel-Parameter setzen, um die Funktionsweise von SELinux zu ändern enforcing=0 Durch das Setzen dieses Parameters startet das System im permissiven Modus, was bei der Fehlerbehebung nützlich ist * Die Verwendung des permissiven Modus ist möglicherweise die einzige Möglichkeit, ein Problem zu erkennen, wenn Ihr Dateisystem zu stark beschädigt ist * Außerdem ers…“
 
Keine Bearbeitungszusammenfassung
 
(10 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.
 
=== Relabeling vorbereiten ===
Auf Debian und RHEL kann ein Relabeling auch aus dem laufenden System für den nächsten Start vorgemerkt werden.


Durch das Setzen dieses Parameters startet das System im permissiven Modus, was bei der Fehlerbehebung nützlich ist
1.&nbsp; Relabeling für den nächsten Start markieren:
* Die Verwendung des permissiven Modus ist möglicherweise die einzige Möglichkeit, ein Problem zu erkennen, wenn Ihr Dateisystem zu stark beschädigt ist
<syntaxhighlight lang="bash" copy line highlight="1">
* Außerdem erstellt das System im permissiven Modus weiterhin die Labels korrekt
fixfiles -F onboot
* Die in diesem Modus erzeugten AVC-Meldungen können sich von denen im Enforcing-Modus unterscheiden
</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>


Im Permissive-Modus wird nur die erste Verweigerung aus einer Reihe gleicher Verweigerungen gemeldet
* ''fixfiles -F onboot'' legt die Markierung für das Relabeling des nächsten Starts an.
* Im Enforcing-Modus hingegen erhalten Sie möglicherweise eine Verweigerung beim Lesen eines Verzeichnisses, woraufhin eine Anwendung stoppt
* Laut Debian-Dokumentation wird ''/.autorelabel'' beim automatischen Relabeling mit ''fixfiles -F restore'' ausgewertet.
* 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
selinux=0


Dieser Parameter bewirkt, dass der Kernel keinen Teil der SELinux-Infrastruktur lädt
=== Unterschiede zwischen Debian und RHEL ===
* Die Init-Skripte erkennen, dass das System mit dem Parameter [[selinux=0]] gebootet wurde, und schreiben in die Datei [[/.autorelabel]]
* Die Kernel-Parameter ''enforcing=0'', ''selinux=0'' und ''autorelabel=1'' sind distributionsunabhängig.
* Dies bewirkt, dass das System beim nächsten Start mit aktiviertem SELinux automatisch eine Neukennzeichnung durchführt
* 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.


; Wichtig
=== Hinweise ===
: Red Hat empfiehlt die Verwendung des Parameters [[selinux=0]] nicht
* Boot-Parameter wirken nur bei Starts, bei denen sie tatsächlich übergeben werden.
* Verwenden Sie zum Debuggen Ihres Systems vorzugsweise den permissiven Modus
* Bleibt ein Parameter dauerhaft in der Bootloader-Konfiguration eingetragen, gilt er bei jedem weiteren Start.
autorelabel=1
* Für den normalen Betrieb sollte SELinux nicht über ''selinux=0'', sondern nur in begründeten Ausnahmefällen vollständig deaktiviert werden.


Dieser Parameter zwingt das System zu einer Neukennzeichnung, ähnlich wie die folgenden Befehle
== Weblinks ==
sudo touch /.autorelabel
Red Hat Documentation:
sudo reboot
* 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


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


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
[[Kategorie:Linux/SELinux/04]]
* 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

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: