Zum Inhalt springen

Linux/SELinux/04/05 Systemstart

Aus Foxwiki
Version vom 31. März 2026, 10:48 Uhr von Dirkwagner (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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: