Zum Inhalt springen

Linux/SELinux/02 Installation: Unterschied zwischen den Versionen

Aus Foxwiki
 
(36 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Linux/SELinux/Installation'''
{{Navigation|Linux/SELinux/01 Grundlagen|Linux/SELinux/02 Kontext}}
'''Linux/SELinux/02 Installation''' - SELinux installieren


== Installation (Debian) ==
== Installation (Debian) ==
Die Standardkernel von Debian enthalten bereits SELinux-Unterstützung.
Standardkernel von Debian enthalten SELinux-Unterstützung


Mit den Paketen ''selinux-basics'', ''selinux-policy-default'' und ''auditd'' wird die Grundkonfiguration für ein SELinux-System installiert.
; Paketen (Grundkonfiguration)
* [[selinux-basics]]
* [[selinux-policy-default]]
* [[auditd]]


=== AppArmor entfernen ===
=== AppArmor entfernen ===
Da auf Debian häufig bereits AppArmor verwendet wird, sollte es für dieses Szenario entfernt bzw. deaktiviert werden, damit ausschließlich SELinux als Linux Security Module verwendet wird.
Fall [[AppArmor]] installiert ist sollte dies entfernt werden, um Konflikte zu vermeiden
 
<syntaxhighlight lang="bash" highlight="1" copy>
<syntaxhighlight lang="bash" highlight="1" copy>
sudo apt purge apparmor
sudo apt purge apparmor
Zeile 18: Zeile 23:
<syntaxhighlight lang="bash" highlight="1" copy line>
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo apt install selinux-basics selinux-policy-default auditd newrole attr
sudo apt install selinux-basics selinux-policy-default auditd newrole attr
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="" line>
Installiere:
attr  auditd  newrole  selinux-basics  selinux-policy-default
Installiere Abhängigkeiten:
checkpolicy  libauparse0t64  policycoreutils  selinux-utils
Vorgeschlagene Pakete:
audispd-plugins  logcheck  syslog-summary
Empfohlene Pakete:
policycoreutils-python-utils  setools
Zusammenfassung:
Aktualisiere: 0, Installiere: 9, Entferne: 0, Aktualisiere nicht: 0
Herunterlade-Größe: 4.074 kB
Benötigter Platz: 8.594 kB / 31,7 GB verfügbar
Fortfahren? [J/n]
</syntaxhighlight>
</syntaxhighlight>


Das Paket selinux-policy-default liefert die Standardregeln für Debian. Diese Policy beschränkt standardmäßig vor allem exponierte Systemdienste. Benutzer-Sessions laufen in der Voreinstellung meist weitgehend unconfined.
; selinux-policy-default
Das Paket selinux-policy-default liefert die Standardregeln für Debian
* Diese Policy beschränkt standardmäßig primär exponierte Systemdienste
* Benutzer-Sessions laufen in der Voreinstellung meist weitgehend unconfined


=== SELinux aktivieren ===
=== SELinux aktivieren ===
SELinux wird über Kernel-Parameter aktiviert. Dazu wird die GRUB-Konfiguration angepasst.
; SELinux wird über Kernel-Parameter aktiviert
 
Dazu wird die GRUB-Konfiguration angepasst
<syntaxhighlight lang="bash" highlight="1" copy line>
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo nano /etc/default/grub
sudo vi /etc/default/grub
</syntaxhighlight>
</syntaxhighlight>


In ''GRUB_CMDLINE_LINUX'' und ''GRUB_CMDLINE_LINUX_DEFAULT'' werden folgende Parameter ergänzt:
In '''GRUB_CMDLINE_LINUX''' und '''GRUB_CMDLINE_LINUX_DEFAULT''' folgende Parameter ergänzen
selinux=1 security=selinux
<syntaxhighlight lang="bash" highlight="" copy>
selinux=1 security=selinux
</syntaxhighlight>


* GRUB aktualisieren
; GRUB aktualisieren
<syntaxhighlight lang="bash" highlight="1" copy line>
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo update-grub
sudo update-grub
Zeile 38: Zeile 70:
=== Dateisystem neu labeln ===
=== Dateisystem neu labeln ===
Damit vorhandene Dateien und Verzeichnisse korrekte SELinux-Labels erhalten, wird eine vollständige Relabel-Operation für den nächsten Systemstart vorgemerkt:
Damit vorhandene Dateien und Verzeichnisse korrekte SELinux-Labels erhalten, wird eine vollständige Relabel-Operation für den nächsten Systemstart vorgemerkt:
<syntaxhighlight lang="bash" highlight="1" copy line>
<syntaxhighlight lang="bash" highlight="1" copy>
sudo touch /.autorelabel
sudo touch /.autorelabel
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="1" copy>
sudo reboot
sudo reboot
</syntaxhighlight>
</syntaxhighlight>


Standardmäßig läuft SELinux im permissiven Modus
; Standardmäßig läuft SELinux im permissiven Modus


=== Funktion prüfen ===
=== Funktion prüfen ===
SELinux-Status anzeigen:
SELinux-Status anzeigen
<syntaxhighlight lang="bash" highlight="" copy line>
<syntaxhighlight lang="bash" highlight="1" copy>
getenforce
getenforce
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="">
Permissive
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="1" copy>
sestatus
sestatus
</syntaxhighlight>
</syntaxhighlight>
Nach dem Neustart kann geprüft werden, ob SELinux Zugriffe blockiert hat. Solche Ereignisse erscheinen als AVC-Denials im Audit-Log.
<syntaxhighlight lang="bash" highlight="" line>
sudo grep AVC /var/log/audit/audit.log
SELinux status:                enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:        /etc/selinux
Loaded policy name:            default
Current mode:                  permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:    allowed
Memory protection checking:    actual (secure)
Max kernel policy version:      33
</syntaxhighlight>


AVC-Denials sind Meldungen, in denen SELinux eine angeforderte Operation eines Prozesses auf ein Objekt verweigert hat.
Nach dem Neustart kann geprüft werden, ob SELinux Zugriffe blockiert hat


Solche Einträge enthalten unter anderem den Quellkontext (scontext), den Zielkontext (tcontext) und die Objektklasse (tclass).
Solche Ereignisse erscheinen als AVC-Denials im Audit-Log
<syntaxhighlight lang="bash" highlight="1" copy>
sudo grep AVC /var/log/audit/audit.log
</syntaxhighlight>
 
; AVC-Denials
<blockquote>
Meldungen, in denen SELinux eine angeforderte Operation eines Prozesses auf ein Objekt verweigert hat
* enthalten unter anderem den Quellkontext (scontext), den Zielkontext (tcontext) und die Objektklasse (tclass)
</blockquote>


== Installation (RHEL) ==
== Installation (RHEL) ==
Zeile 67: Zeile 125:
* policycoreutils-gui
* policycoreutils-gui


; Modus
=== Modus ===
Außerdem läuft SELinux standardmäßig SELinux im Enforcing-Modus und die SELinux-Targeted-Policy wird verwendet
* [[SELinux]] läuft standardmäßig im [[Enforcing-Modus]]
* [[SELinux-Targeted-Policy]] wird verwendet


; Zusätzliche SELinux-Pakete
=== Zusätzliche SELinux-Pakete ===
{| class="wikitable options big"
{| class="wikitable options big"
|-
|-
! Pakete !! Beschreibung
! Pakete !! Beschreibung
|-
|-
| policycoreutils || stellt Dienstprogramme wie restorecon, secon, setfiles, semodule, load_policy und setsebool für den Betrieb und die Verwaltung von SELinux bereit
| policycoreutils || Dienstprogramme wie [[restorecon]], [[secon]], [[setfiles]], [[semodule]], [[load_policy]] und [[setsebool]] für den Betrieb und die Verwaltung von SELinux
|-
|-
| selinux-policy || stellt eine grundlegende Verzeichnisstruktur, die Datei selinux-policy.conf und RPM-Makros bereit
| selinux-policy || Grundlegende Verzeichnisstruktur, die Datei [[selinux-policy.conf]] und RPM-Makros
|-
|-
| selinux-policy -targeted || stellt die SELinux-Targeted-Richtlinie bereit
| selinux-policy -targeted || [[SELinux-Targeted-Richtlinie ]]
|-
|-
| libselinux || stellt eine API für SELinux-Anwendungen bereit
| libselinux || API für [[SELinux-Anwendungen]]
|-
|-
| libselinux-utils || stellt die Dienstprogramme avcstat, getenforce, getsebool, matchpathcon, selinuxconlist, selinuxdefcon, selinuxenabled und setenforce bereit
| libselinux-utils || Dienstprogramme [[avcstat]], [[getenforce]], [[getsebool]], [[matchpathcon]], [[selinuxconlist]], [[selinuxdefcon]], [[selinuxenabled]] und [[setenforce]]
|-
|-
| libselinux-python || stellt Python-Bindungen für die Entwicklung von SELinux-Anwendungen bereit
| libselinux-python || [[Python-Bindungen]] für die Entwicklung von [[SELinux-Anwendungen]]
|}
|}


; Standardmäßig nicht installiert
; Standardmäßig nicht installiert
Installation durch
Installation durch
yum install ''<package-name>''
<syntaxhighlight lang="bash" highlight="1">
yum install <package-name>
</syntaxhighlight>


{| class="wikitable options big"
{| class="wikitable options big"
Zeile 96: Zeile 157:
! Pakete !! Beschreibung
! Pakete !! Beschreibung
|-
|-
| selinux-policy-devel || stellt Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen bereit
| selinux-policy-devel || Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen
|-
|-
| selinux-policy-doc || enthält Handbuchseiten, die beschreiben, wie SELinux zusammen mit verschiedenen Diensten konfiguriert wird
| selinux-policy-doc || Handbuchseiten, die beschreiben, wie SELinux zusammen mit verschiedenen Diensten konfiguriert wird
|-
|-
| selinux-policy-mls || enthält die MLS-SELinux-Richtlinie (Multi-Level Security)
| selinux-policy-mls || MLS-SELinux-Richtlinie (Multi-Level Security)
|-
|-
| setroubleshoot-server || übersetzt Ablehnungsmeldungen, die bei einer Zugriffsverweigerung durch SELinux ausgegeben werden, in detaillierte Beschreibungen, die mit dem ebenfalls in diesem Paket enthaltenen Dienstprogramm sealert angezeigt werden können
| setroubleshoot-server || übersetzt Ablehnungsmeldungen, die bei einer Zugriffsverweigerung durch SELinux ausgegeben werden, in detaillierte Beschreibungen, die mit dem ebenfalls in diesem Paket enthaltenen Dienstprogramm [[sealert]] angezeigt werden können
|-
|-
| setools-console || stellt die Tresys Technology SETools-Distribution bereit, eine Reihe von Dienstprogrammen und Bibliotheken zur Analyse und Abfrage von Richtlinien, zur Überwachung und Berichterstellung von Audit-Protokollen sowie zur Verwaltung von Dateikontexten
| setools-console || [[Tresys Technology SETools-Distribution]], eine Reihe von Dienstprogrammen und Bibliotheken zur Analyse und Abfrage von Richtlinien, zur Überwachung und Berichterstellung von Audit-Protokollen sowie zur Verwaltung von Dateikontexten
|-
|-
| setools || Metapaket für SETools
| setools || Metapaket für SETools
|-
|-
| setools-gui || stellt die Dienstprogramme apol und seaudit bereit
| setools-gui || Dienstprogramme [[apol]] und [[seaudit]] bereit
|-
|-
| setools-console || stellt die Befehlszeilen-Dienstprogramme sechecker, sediff, seinfo, sesearch und findcon bereit
| setools-console || Befehlszeilen-Dienstprogramme [[sechecker]], [[sediff]], [[seinfo]], [[sesearch]] und [[findcon]] bereit
* Beachten Sie, dass die Pakete setools und setools-gui nur verfügbar sind, wenn der Red Hat Network Optional-Kanal aktiviert ist
* Beachten Sie, dass die Pakete [[setools]] und [[setools-gui]] nur verfügbar sind, wenn der Red Hat Network Optional-Kanal aktiviert ist
|-
|-
| mcstrans || übersetzt Stufen wie s0-s0:c0.c1023 in eine besser lesbare Form wie SystemLow-SystemHigh
| mcstrans || [[mcstrans]] übersetzt Stufen wie s0-s0:c0.c1023 in eine besser lesbare Form wie SystemLow-SystemHigh
|-
|-
| policycoreutils-python ||  bietet Dienstprogramme wie semanage, audit2allow, audit2why und chcat zum Bedienen und Verwalten von SELinux
| policycoreutils-python ||  Dienstprogramme wie [[semanage]], [[audit2allow]], [[audit2why]] und [[chcat]] zum Bedienen und Verwalten von SELinux
|-
|-
| policycoreutils-gui || stellt system-config-selinux bereit, ein grafisches Dienstprogramm zur Verwaltung von SELinux
| policycoreutils-gui || stellt [[system-config-selinux]] bereit, ein grafisches Dienstprogramm zur Verwaltung von SELinux
|}
|}


[[Kategorie:Linux/SELinux]]
{{Navigation|Linux/SELinux/01 Grundlagen|Linux/SELinux/02 Kontext}}
 
[[Kategorie:Linux/SELinux/01]]

Aktuelle Version vom 12. Juni 2026, 11:50 Uhr

Linux/SELinux/02 Installation - SELinux installieren

Installation (Debian)

Standardkernel von Debian enthalten SELinux-Unterstützung

Paketen (Grundkonfiguration)

AppArmor entfernen

Fall AppArmor installiert ist sollte dies entfernt werden, um Konflikte zu vermeiden

sudo apt purge apparmor
sudo reboot

SELinux installieren

sudo apt install selinux-basics selinux-policy-default auditd newrole attr
Installiere:
attr  auditd  newrole  selinux-basics  selinux-policy-default

Installiere Abhängigkeiten:
checkpolicy  libauparse0t64  policycoreutils  selinux-utils

Vorgeschlagene Pakete:
audispd-plugins  logcheck  syslog-summary

Empfohlene Pakete:
policycoreutils-python-utils  setools

Zusammenfassung:
Aktualisiere: 0, Installiere: 9, Entferne: 0, Aktualisiere nicht: 0
Herunterlade-Größe: 4.074 kB
Benötigter Platz: 8.594 kB / 31,7 GB verfügbar

Fortfahren? [J/n]
selinux-policy-default

Das Paket selinux-policy-default liefert die Standardregeln für Debian

  • Diese Policy beschränkt standardmäßig primär exponierte Systemdienste
  • Benutzer-Sessions laufen in der Voreinstellung meist weitgehend unconfined

SELinux aktivieren

SELinux wird über Kernel-Parameter aktiviert

Dazu wird die GRUB-Konfiguration angepasst

sudo vi /etc/default/grub

In GRUB_CMDLINE_LINUX und GRUB_CMDLINE_LINUX_DEFAULT folgende Parameter ergänzen

selinux=1 security=selinux
GRUB aktualisieren
sudo update-grub

Dateisystem neu labeln

Damit vorhandene Dateien und Verzeichnisse korrekte SELinux-Labels erhalten, wird eine vollständige Relabel-Operation für den nächsten Systemstart vorgemerkt:

sudo touch /.autorelabel
sudo reboot
Standardmäßig läuft SELinux im permissiven Modus

Funktion prüfen

SELinux-Status anzeigen

getenforce
Permissive
sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             default
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

Nach dem Neustart kann geprüft werden, ob SELinux Zugriffe blockiert hat

Solche Ereignisse erscheinen als AVC-Denials im Audit-Log

sudo grep AVC /var/log/audit/audit.log
AVC-Denials

Meldungen, in denen SELinux eine angeforderte Operation eines Prozesses auf ein Objekt verweigert hat

  • enthalten unter anderem den Quellkontext (scontext), den Zielkontext (tcontext) und die Objektklasse (tclass)

Installation (RHEL)

Vollständigen Installation von Red Hat Enterprise Linux

SELinux-Pakete sind standardmäßig installiert

Minimalinstallation im Textmodus

Nicht installiert

  • policycoreutils-python
  • policycoreutils-gui

Modus

Zusätzliche SELinux-Pakete

Pakete Beschreibung
policycoreutils Dienstprogramme wie restorecon, secon, setfiles, semodule, load_policy und setsebool für den Betrieb und die Verwaltung von SELinux
selinux-policy Grundlegende Verzeichnisstruktur, die Datei selinux-policy.conf und RPM-Makros
selinux-policy -targeted SELinux-Targeted-Richtlinie
libselinux API für SELinux-Anwendungen
libselinux-utils Dienstprogramme avcstat, getenforce, getsebool, matchpathcon, selinuxconlist, selinuxdefcon, selinuxenabled und setenforce
libselinux-python Python-Bindungen für die Entwicklung von SELinux-Anwendungen
Standardmäßig nicht installiert

Installation durch

yum install <package-name>
Pakete Beschreibung
selinux-policy-devel Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen
selinux-policy-doc Handbuchseiten, die beschreiben, wie SELinux zusammen mit verschiedenen Diensten konfiguriert wird
selinux-policy-mls MLS-SELinux-Richtlinie (Multi-Level Security)
setroubleshoot-server übersetzt Ablehnungsmeldungen, die bei einer Zugriffsverweigerung durch SELinux ausgegeben werden, in detaillierte Beschreibungen, die mit dem ebenfalls in diesem Paket enthaltenen Dienstprogramm sealert angezeigt werden können
setools-console Tresys Technology SETools-Distribution, eine Reihe von Dienstprogrammen und Bibliotheken zur Analyse und Abfrage von Richtlinien, zur Überwachung und Berichterstellung von Audit-Protokollen sowie zur Verwaltung von Dateikontexten
setools Metapaket für SETools
setools-gui Dienstprogramme apol und seaudit bereit
setools-console Befehlszeilen-Dienstprogramme sechecker, sediff, seinfo, sesearch und findcon bereit
  • Beachten Sie, dass die Pakete setools und setools-gui nur verfügbar sind, wenn der Red Hat Network Optional-Kanal aktiviert ist
mcstrans mcstrans übersetzt Stufen wie s0-s0:c0.c1023 in eine besser lesbare Form wie SystemLow-SystemHigh
policycoreutils-python Dienstprogramme wie semanage, audit2allow, audit2why und chcat zum Bedienen und Verwalten von SELinux
policycoreutils-gui stellt system-config-selinux bereit, ein grafisches Dienstprogramm zur Verwaltung von SELinux