Zum Inhalt springen

Linux/SELinux/02 Installation: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(37 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Linux/SELinux/02 Installation''' - SELinux installieren
{{Navigation|Linux/SELinux/01 Grundlagen|Linux/SELinux/02 Kontext}}
== Installation (Debian) ==
== Installation (Debian) ==
Standardkernel von Debian enthalten SELinux-Unterstützung


Die Standardkernel von Debian enthalten bereits SELinux-Unterstützung.
; Paketen (Grundkonfiguration)
* selinux-basics
* selinux-policy-default
* auditd


Mit den Paketen ''selinux-basics'', ''selinux-policy-default'' und ''auditd'' wird die Grundkonfiguration für ein SELinux-System installiert.
=== AppArmor entfernen ===
Auf vielen Debian-Systemen wir bereits [[AppArmor]]
* Dies muss entfernt werden, um Konflikte zu vermeiden


=== AppArmor entfernen ===
<syntaxhighlight lang="bash" highlight="1" copy>
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.
<syntaxhighlight lang="bash" highlight="" copy line>
sudo apt purge apparmor
sudo apt purge apparmor
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="1" copy>
sudo reboot
sudo reboot
</syntaxhighlight>
</syntaxhighlight>
Zeile 16: Zeile 25:
sudo apt install selinux-basics selinux-policy-default auditd newrole attr
sudo apt install selinux-basics selinux-policy-default auditd newrole attr
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="" line>
Installiere:
attr  auditd  newrole  selinux-basics  selinux-policy-default


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.
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>
 
; 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 35: Zeile 71:
=== 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>
 
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="1" copy>
sudo grep AVC /var/log/audit/audit.log
</syntaxhighlight>


AVC-Denials sind Meldungen, in denen SELinux eine angeforderte Operation eines Prozesses auf ein Objekt verweigert hat. Solche Einträge enthalten unter anderem den Quellkontext (scontext), den Zielkontext (tcontext) und die Objektklasse (tclass).
; 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) ==
Bei einer vollständigen Installation von Red Hat Enterprise Linux werden die SELinux-Pakete standardmäßig installiert, sofern sie nicht während der Installation manuell ausgeschlossen werden
; Vollständigen Installation von Red Hat Enterprise Linux
* Bei einer Minimalinstallation im Textmodus werden die Pakete policycoreutils-python und policycoreutils-gui standardmäßig nicht installiert
SELinux-Pakete sind standardmäßig installiert
* Außerdem läuft SELinux standardmäßig SELinux im Enforcing-Modus und die SELinux-Targeted-Policy wird verwendet
 
* Die folgenden SELinux-Pakete sind standardmäßig auf Ihrem System installiert
; Minimalinstallation im Textmodus
* policycoreutils stellt Dienstprogramme wie restorecon, secon, setfiles, semodule, load_policy und setsebool für den Betrieb und die Verwaltung von SELinux bereit
Nicht installiert
* selinux-policy stellt eine grundlegende Verzeichnisstruktur, die Datei selinux-policy.conf und RPM-Makros bereit
* policycoreutils-python
* selinux-policy -targeted stellt die SELinux-Targeted-Richtlinie bereit
* policycoreutils-gui
* libselinux stellt eine API für SELinux-Anwendungen bereit
 
* libselinux-utils stellt die Dienstprogramme avcstat, getenforce, getsebool, matchpathcon, selinuxconlist, selinuxdefcon, selinuxenabled und setenforce bereit
; Modus
* libselinux-python stellt Python-Bindungen für die Entwicklung von SELinux-Anwendungen bereit
Außerdem läuft SELinux standardmäßig SELinux im Enforcing-Modus und die SELinux-Targeted-Policy wird verwendet
 
; Zusätzliche SELinux-Pakete
{| class="wikitable options big"
|-
! Pakete !! Beschreibung
|-
| policycoreutils || stellt Dienstprogramme wie restorecon, secon, setfiles, semodule, load_policy und setsebool für den Betrieb und die Verwaltung von SELinux bereit
|-
| selinux-policy || stellt eine grundlegende Verzeichnisstruktur, die Datei selinux-policy.conf und RPM-Makros bereit
|-
| selinux-policy -targeted || stellt die SELinux-Targeted-Richtlinie bereit
|-
| libselinux || stellt eine API für SELinux-Anwendungen bereit
|-
| libselinux-utils || stellt die Dienstprogramme avcstat, getenforce, getsebool, matchpathcon, selinuxconlist, selinuxdefcon, selinuxenabled und setenforce bereit
|-
| libselinux-python || stellt Python-Bindungen für die Entwicklung von SELinux-Anwendungen bereit
|}


Die folgenden Pakete sind standardmäßig nicht installiert, können aber optional durch Ausführen des Befehls yum&nbsp;install&nbsp;‚‘<package-name>‚‘ installiert werden
; Standardmäßig nicht installiert
* selinux-policy-devel stellt Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen bereit
Installation durch
* selinux-policy-doc enthält Handbuchseiten, die beschreiben, wie SELinux zusammen mit verschiedenen Diensten konfiguriert wird
yum install ''<package-name>''
* selinux-policy-mls enthält die 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
{| class="wikitable options big"
* 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
|-
* Das Paket setools ist ein Metapaket für SETools
! Pakete !! Beschreibung
* Das Paket setools-gui stellt die Dienstprogramme apol und seaudit bereit
|-
* Das Paket setools-console stellt die Befehlszeilen-Dienstprogramme sechecker, sediff, seinfo, sesearch und findcon bereit
| selinux-policy-devel || stellt Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen bereit
|-
| selinux-policy-doc || enthält Handbuchseiten, die beschreiben, wie SELinux zusammen mit verschiedenen Diensten konfiguriert wird
|-
| selinux-policy-mls || enthält die 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 || 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 || Metapaket für SETools
|-
| setools-gui || stellt die Dienstprogramme apol und seaudit bereit
|-
| setools-console || stellt die 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
* Weitere Informationen finden Sie unter Details zum Abdeckungsumfang
|-
* mcstrans übersetzt Stufen wie s0-s0:c0.c1023 in eine besser lesbare Form wie SystemLow-SystemHigh
| 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-gui stellt system-config-selinux bereit, ein grafisches Dienstprogramm zur Verwaltung von SELinux
| policycoreutils-python ||  bietet 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
|}
 
{{Navigation|Linux/SELinux/01 Grundlagen|Linux/SELinux/02 Kontext}}


[[Kategorie:Linux/SELinux]]
[[Kategorie:Linux/SELinux/01]]

Aktuelle Version vom 31. März 2026, 13:29 Uhr

Linux/SELinux/02 Installation - SELinux installieren

Installation (Debian)

Standardkernel von Debian enthalten SELinux-Unterstützung

Paketen (Grundkonfiguration)
  • selinux-basics
  • selinux-policy-default
  • auditd

AppArmor entfernen

Auf vielen Debian-Systemen wir bereits AppArmor

  • Dies muss 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

Außerdem läuft SELinux standardmäßig SELinux im Enforcing-Modus und die SELinux-Targeted-Policy wird verwendet

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

Installation durch

yum install <package-name>
Pakete Beschreibung
selinux-policy-devel stellt Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen bereit
selinux-policy-doc enthält Handbuchseiten, die beschreiben, wie SELinux zusammen mit verschiedenen Diensten konfiguriert wird
selinux-policy-mls enthält die 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 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 Metapaket für SETools
setools-gui stellt die Dienstprogramme apol und seaudit bereit
setools-console stellt die 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 ü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-gui stellt system-config-selinux bereit, ein grafisches Dienstprogramm zur Verwaltung von SELinux