Zum Inhalt springen

Linux/SELinux/02 Installation: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
== Installation ==
== Installation (Debian) ==


Die Standardkernel von Debian enthalten bereits SELinux-Unterstützung.
Die Standardkernel von Debian enthalten bereits SELinux-Unterstützung.
Zeile 7: Zeile 7:
=== 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.
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.
sudo apt purge apparmor
<syntaxhighlight lang="bash" highlight="" copy line>
sudo reboot
sudo apt purge apparmor
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>


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.
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.
Zeile 18: Zeile 21:
=== 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.
sudo nano /etc/default/grub
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo nano /etc/default/grub
</syntaxhighlight>


In ''GRUB_CMDLINE_LINUX'' oder ''GRUB_CMDLINE_LINUX_DEFAULT'' werden folgende Parameter ergänzt:
In ''GRUB_CMDLINE_LINUX'' und ''GRUB_CMDLINE_LINUX_DEFAULT'' werden folgende Parameter ergänzt:
  selinux=1 security=selinux
  selinux=1 security=selinux


sudo update-grub
* 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 line>
sudo reboot
sudo touch /.autorelabel
sudo reboot
</syntaxhighlight>


Standardmäßig läuft SELinux im permissiven Modus
Standardmäßig läuft SELinux im permissiven Modus
Zeile 34: Zeile 44:
=== Funktion prüfen ===
=== Funktion prüfen ===
SELinux-Status anzeigen:
SELinux-Status anzeigen:
getenforce
<syntaxhighlight lang="bash" highlight="" copy line>
sestatus
getenforce
 
sestatus
</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. Solche Ereignisse erscheinen als AVC-Denials im Audit-Log.
  sudo grep AVC /var/log/audit/audit.log
  sudo grep AVC /var/log/audit/audit.log
Zeile 42: Zeile 53:
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 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).


 
=== Installation (RHEL) ===
 
[[Kategorie:Linux/SELinux]]
 
= TMP =
=== SELinux-Pakete ===
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 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
* 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
* 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
* 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
* 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 stellt eine grundlegende Verzeichnisstruktur, die Datei selinux-policy.conf und RPM-Makros bereit
* selinux-policy -targeted stellt die SELinux-Targeted-Richtlinie bereit
* selinux-policy -targeted stellt die SELinux-Targeted-Richtlinie bereit
* libselinux – stellt eine API für SELinux-Anwendungen 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-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
* 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
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
* selinux-policy-devel stellt Dienstprogramme zum Erstellen einer benutzerdefinierten SELinux-Richtlinie und von Richtlinienmodulen 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-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)
* 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
* 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 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 ist ein Metapaket für SETools
* Das Paket setools-gui stellt die Dienstprogramme [[apol]] und [[seaudit]] bereit
* 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
* 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
* 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
* 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-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-gui stellt system-config-selinux bereit, ein grafisches Dienstprogramm zur Verwaltung von SELinux


[[Kategorie:Linux/SELinux/04]]
[[Kategorie:Linux/SELinux]]

Version vom 28. März 2026, 11:53 Uhr

Installation (Debian)

Die Standardkernel von Debian enthalten bereits SELinux-Unterstützung.

Mit den Paketen selinux-basics, selinux-policy-default und auditd wird die Grundkonfiguration für ein SELinux-System installiert.

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.

sudo apt purge apparmor
sudo reboot

SELinux installieren

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

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 aktivieren

SELinux wird über Kernel-Parameter aktiviert. Dazu wird die GRUB-Konfiguration angepasst.

sudo nano /etc/default/grub

In GRUB_CMDLINE_LINUX und GRUB_CMDLINE_LINUX_DEFAULT werden folgende Parameter ergänzt:

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
sestatus

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 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).

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

  • 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 install ‚‘<package-name>‚‘ installiert werden

  • 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