Zum Inhalt springen

Linux/SELinux/02 Installation: Unterschied zwischen den Versionen

Aus Foxwiki
 
(40 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="" copy line>
 
<syntaxhighlight lang="bash" highlight="1" copy>
sudo apt purge apparmor
sudo apt purge apparmor
</syntaxhighlight>
<syntaxhighlight lang="bash" highlight="1" copy>
sudo reboot
sudo reboot
</syntaxhighlight>
</syntaxhighlight>
Zeile 16: 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 36: 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>
 
Nach dem Neustart kann geprüft werden, ob SELinux Zugriffe blockiert hat


AVC-Denials sind Meldungen, in denen SELinux eine angeforderte Operation eines Prozesses auf ein Objekt verweigert 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>


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) ==
Zeile 65: 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 ===
{| class="wikitable options big"
|-
! 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
<syntaxhighlight lang="bash" highlight="1">
yum install <package-name>
</syntaxhighlight>


; Zusätzliche SELinux-Pakete
{| class="wikitable options big"
* 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
! Pakete !! Beschreibung
* selinux-policy -targeted stellt die SELinux-Targeted-Richtlinie bereit
|-
* libselinux – stellt eine API für SELinux-Anwendungen bereit
| selinux-policy-devel || Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen
* 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
| 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
|}


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
{{Navigation|Linux/SELinux/01 Grundlagen|Linux/SELinux/02 Kontext}}
* 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
* Das Paket setools ist ein Metapaket für SETools
* 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
* 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
* 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


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