Zum Inhalt springen

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

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird 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>


Durch das Setzen dieses Parameters startet das System im permissiven Modus, was bei der Fehlerbehebung nützlich ist
* Wenn viele Objekte falsch oder gar nicht gelabelt sind, sollte der Start zusätzlich permissiv erfolgen.
* Die Verwendung des permissiven Modus ist möglicherweise die einzige Möglichkeit, ein Problem zu erkennen, wenn Ihr Dateisystem zu stark beschädigt ist
* Dafür kann ''autorelabel=1'' mit ''enforcing=0'' kombiniert 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
=== Relabeling vorbereiten ===
* Im Enforcing-Modus hingegen erhalten Sie möglicherweise eine Verweigerung beim Lesen eines Verzeichnisses, woraufhin eine Anwendung stoppt
Auf Debian und RHEL kann ein Relabeling auch aus dem laufenden System für den nächsten Start vorgemerkt werden.
* 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
1.&nbsp; Relabeling für den nächsten Start markieren:
* Die Init-Skripte erkennen, dass das System mit dem Parameter [[selinux=0]] gebootet wurde, und schreiben in die Datei [[/.autorelabel]]
<syntaxhighlight lang="bash" copy line highlight="1">
* Dies bewirkt, dass das System beim nächsten Start mit aktiviertem SELinux automatisch eine Neukennzeichnung durchführt
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>


; Wichtig
* ''fixfiles -F onboot'' legt die Markierung für das Relabeling des nächsten Starts an.
: Red Hat empfiehlt die Verwendung des Parameters [[selinux=0]] nicht
* Laut Debian-Dokumentation wird ''/.autorelabel'' beim automatischen Relabeling mit ''fixfiles -F restore'' ausgewertet.
* 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
=== Unterschiede zwischen Debian und RHEL ===
sudo touch /.autorelabel
* Die Kernel-Parameter ''enforcing=0'', ''selinux=0'' und ''autorelabel=1'' sind distributionsunabhängig.
sudo reboot
* 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.


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
=== 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.


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
== Weblinks ==
* Diese Dokumentation wird mit dem Paket kernel-doc installiert
Red Hat Documentation:
* Ersetzen Sie die Zeichenfolge ‚‘<KERNEL_VER>‚‘ durch die Versionsnummer des installierten Kernels, zum Beispiel
* https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/using_selinux/changing-selinux-states-and-modes
sudo yum install kernel-doc
Debian Manpages:
less /usr/share/doc/kernel-doc-‚'3.10.0‘' /Documentation/kernel-parameters.txt
* https://manpages.debian.org/testing/policycoreutils/fixfiles.8.en.html
* https://manpages.debian.org/testing/policycoreutils/selinux_config.5.en.html


{{Navigation|Linux/SELinux/04/04 Dauerhafte Änderungen|Linux/SELinux/04/06 Booleane}}
{{Navigation|Linux/SELinux/04/04 Dauerhafte Änderungen|Linux/SELinux/04/06 Booleane}}


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