Zum Inhalt springen

Linux/SELinux/02 Installation: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(39 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Installation ==
'''Linux/SELinux/02 Installation''' - SELinux installieren
{{Navigation|Linux/SELinux/01 Grundlagen|Linux/SELinux/02 Kontext}}


Die Standardkernel von Debian enthalten bereits SELinux-Unterstützung.
== Installation (Debian) ==
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.
Auf vielen Debian-Systemen wir bereits [[AppArmor]]
sudo apt purge apparmor
* Dies muss entfernt werden, um Konflikte zu vermeiden
sudo reboot
 
<syntaxhighlight lang="bash" highlight="1" copy>
sudo apt purge apparmor
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="1" copy>
sudo reboot
</syntaxhighlight>


=== SELinux installieren ===
=== SELinux installieren ===
sudo apt install selinux-basics selinux-policy-default auditd newrole
<syntaxhighlight lang="bash" highlight="1" copy line>
  sudo apt install apache2 attr strace
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>


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
sudo nano /etc/default/grub


In ''GRUB_CMDLINE_LINUX'' oder ''GRUB_CMDLINE_LINUX_DEFAULT'' werden folgende Parameter ergänzt:
Dazu wird die GRUB-Konfiguration angepasst
selinux=1 security=selinux
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo vi /etc/default/grub
</syntaxhighlight>


sudo update-grub
In '''GRUB_CMDLINE_LINUX''' und '''GRUB_CMDLINE_LINUX_DEFAULT''' folgende Parameter ergänzen
<syntaxhighlight lang="bash" highlight="" copy>
selinux=1 security=selinux
</syntaxhighlight>
 
; GRUB aktualisieren
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo update-grub
</syntaxhighlight>


=== 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:
sudo touch /.autorelabel
<syntaxhighlight lang="bash" highlight="1" copy>
sudo reboot
sudo touch /.autorelabel
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="1" copy>
sudo reboot
</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
getenforce
<syntaxhighlight lang="bash" highlight="1" copy>
sestatus
getenforce
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="">
Permissive
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="1" copy>
sestatus
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="" line>
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.
Nach dem Neustart kann geprüft werden, ob SELinux Zugriffe blockiert hat
sudo grep AVC /var/log/audit/audit.log


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).
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) ==
; Vollständigen Installation von Red Hat Enterprise Linux
SELinux-Pakete sind standardmäßig installiert


[[Kategorie:Linux/SELinux]]
; Minimalinstallation im Textmodus
Nicht installiert
* policycoreutils-python
* policycoreutils-gui


= TMP =
; Modus
=== SELinux-Pakete ===
Außerdem läuft SELinux standardmäßig SELinux im Enforcing-Modus und die SELinux-Targeted-Policy wird verwendet
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
* Bei einer Minimalinstallation im Textmodus werden die Pakete policycoreutils-python und policycoreutils-gui standardmäßig nicht 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
* 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
; Zusätzliche SELinux-Pakete
* selinux-policy-devel stellt Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen bereit
{| class="wikitable options big"
* 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)
! Pakete !! Beschreibung
* 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
| policycoreutils || stellt Dienstprogramme wie restorecon, secon, setfiles, semodule, load_policy und setsebool für den Betrieb und die Verwaltung von SELinux bereit
* Das Paket setools ist ein Metapaket für SETools
|-
* Das Paket setools-gui stellt die Dienstprogramme [[apol]] und [[seaudit]] bereit
| selinux-policy || stellt eine grundlegende Verzeichnisstruktur, die Datei selinux-policy.conf und RPM-Makros bereit
* Das Paket setools-console stellt die Befehlszeilen-Dienstprogramme [[sechecker]], [[sediff]], [[seinfo]], [[sesearch]] und [[findcon]] 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>''
 
{| class="wikitable options big"
|-
! 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
* 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/04]]
[[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