Seminar/Linux/SELinux: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
|||
| (20 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
== | == Inhalte == | ||
{| class="wikitable gnu options big col1center col3center" | {| class="wikitable gnu options big col1center col3center" | ||
! Kapitel !! Thema !! Gewichtung | ! Kapitel !! Thema !! Gewichtung | ||
|- | |- | ||
| 01 || [[SELinux/Grundlagen|Einführung]] || 1 | | 01 || [[Linux/SELinux/Grundlagen|Einführung]] || 1 | ||
|- | |- | ||
| 02 || [[SELinux/Dateien|Security Context auf Dateien und Verzeichnissen]] || 1 | | 02 || [[Linux/SELinux/Dateien|Security Context auf Dateien und Verzeichnissen]] || 1 | ||
|- | |- | ||
| 03 || [[SELinux/Extended File Attributes| Extended File Attributes]] || 1 | | 03 || [[Linux/SELinux/Extended File Attributes|Extended File Attributes]] || 1 | ||
|- | |- | ||
| 04 || [[SELinux/Security Context|Security Context]] || 1 | | 04 || [[Linux/SELinux/Security Context|Security Context]] || 1 | ||
|- | |- | ||
| 05 || [[SELinux/File Context|File Context]] || 1 | | 05 || [[Linux/SELinux/File Context|File Context]] || 1 | ||
|- | |- | ||
| 06 || [[SELinux/Context Expressions|Context Expressions]] || 1 | | 06 || [[Linux/SELinux/Context Expressions|Context Expressions]] || 1 | ||
|- | |- | ||
| 07 || [[SELinux/Security Context von Datei| Security Context von Datei]] || 1 | | 07 || [[Linux/SELinux/Security Context von Datei|Security Context von Datei]] || 1 | ||
|- | |- | ||
| 08 || [[SELinux/Named File Transitions Rules|Named File Transitions Rules]] || 1 | | 08 || [[Linux/SELinux/Named File Transitions Rules|Named File Transitions Rules]] || 1 | ||
|- | |- | ||
| 09 || [[SELinux/Systemd und Temporäre Verzeichnisse|Systemd und Temporäre Verzeichnisse]] || 1 | | 09 || [[Linux/SELinux/Systemd und Temporäre Verzeichnisse|Systemd und Temporäre Verzeichnisse]] || 1 | ||
|- | |- | ||
| 10 || [[SELinux/strace context printing|strace context printing]] || 1 | | 10 || [[Linux/SELinux/strace context printing|strace context printing]] || 1 | ||
|- | |- | ||
| 11 || [[SELinux/Benutzer Login|Benutzer Login]] || 1 | | 11 || [[Linux/SELinux/Benutzer Login|Benutzer Login]] || 1 | ||
|- | |- | ||
| 12 || [[SELinux/Kategorien|Kategorien]] || 1 | | 12 || [[Linux/SELinux/Kategorien|Kategorien]] || 1 | ||
|- | |- | ||
| 13 || [[SELinux/Rollen|Rollen]] || 1 | | 13 || [[Linux/SELinux/Rollen|Rollen]] || 1 | ||
|- | |- | ||
| 14 || [[SELinux/Pluggable Authentication Modules| | | 14 || [[Linux/SELinux/Pluggable Authentication Modules|PAM]] || 1 | ||
|- | |- | ||
| 15 || [[SELinux/Prozess Context|Prozess Context]] || 1 | | 15 || [[Linux/SELinux/Prozess Context|Prozess Context]] || 1 | ||
|- | |- | ||
| 16 || [[SELinux/Ansible|SELinux und Ansible]] || 1 | | 16 || [[Linux/SELinux/Ansible|SELinux und Ansible]] || 1 | ||
|- | |- | ||
| 17 || [[SELinux/Salt|SELinux und Salt]] || 1 | | 17 || [[Linux/SELinux/Salt|SELinux und Salt]] || 1 | ||
|- | |- | ||
| 18 || [[SELinux/Container|SELinux und Container]] || 1 | | 18 || [[Linux/SELinux/Container|SELinux und Container]] || 1 | ||
|} | |} | ||
{{DISPLAYTITLE:Seminar | {{DISPLAYTITLE:Seminar/SELinux}} | ||
[[Kategorie:Seminar/Linux]] | [[Kategorie:Seminar/Linux]] | ||
[[Kategorie:Seminar/Sicherheit]] | [[Kategorie:Seminar/Sicherheit]] | ||
[[Kategorie:SELinux]] | [[Kategorie:Linux/SELinux]] | ||
= Seminartage = | |||
== Tag 1 == | |||
; Grundlagen | |||
Grundlagen & Security Context | |||
=== Ziel === | |||
Verstehen, wie SELinux funktioniert und wie Kontexte aufgebaut sind | |||
=== Ergebnis === | |||
Aufbau von SELinux-Kontexten verstehen , lesen und interpretieren | |||
=== Inhalte === | |||
* Einführung in SELinux – Nutzen und typische Einsatzszenarien | |||
* Security Context auf Dateien und Verzeichnissen | |||
* Interpretation des SELinux Context Types | |||
* Extended (File) Attributes (xattr) – Namespaces, Verwaltung mit getfattr/setfattr | |||
* Syscall-Analyse mit strace (stat, fstat, getxattr, …) | |||
* Standardverhalten bei mv und cp | |||
* Einfluss von restorecond auf Labels | |||
* SELinux Optionen bei mv, cp, mkdir, tar, rsync | |||
== Tag 2 == | |||
; Context und Policies | |||
File Context Verwaltung & Security Context Policies | |||
=== Ziel === | |||
Kontexte gezielt setzen, verwalten und reparieren | |||
=== Ergebnis === | |||
File Contexts korrekt setzen, Policies anpassen und fehlerhafte Labels systematisch reparieren. | |||
=== Inhalte === | |||
* Context setzen mit chcon, semanage, setfiles, fixfiles | |||
* File Context Regeln – Aufbau, Regex, Prioritätsregeln | |||
* Context Expressions und matchpathcon | |||
* Reparieren von falsch gesetzten Labels mit restorecon (inkl. SHA256 digests) | |||
* Äquivalenzregeln definieren | |||
* Named File Transition Rules | |||
* Mount-Optionen für SELinux (context=, defcontext=, fscontext=, rootcontext=) | |||
* Systemd und temporäre Verzeichnisse – Context via systemd-tmpfiles | |||
* Lokale Änderungen exportieren/importieren mit semanage | |||
== Tag 3 == | |||
; Benutzer, Rollen, Container und Automatisierung | |||
=== Ziel === | |||
SELinux in realen Betriebsumgebungen professionell einsetzen | |||
=== Ergebnis === | |||
=== Inhalte === | |||
* SELinux User & Role Mapping im Detail | |||
* Linux User - SELinux User Zuordnung | |||
* Erstellen eigener SELinux User | |||
* Arbeiten mit SELinux Roles (newrole, sudo, runcon) | |||
* Verwalten von MCS Categories (chcat, setrans, mcstransd) | |||
* Pluggable Authentication Modules (PAM): pam_selinux, pam_sepermit, pam_namespace | |||
* Prozess Context, Domain Transitions, Memory Protection, NNP | |||
* SELinux & Ansible – native Module, Custom Policy verteilen | |||
* SELinux & Salt – native Module, Custom Policy verteilen | |||
* SELinux & Container – Podman, MCS, Volumes, udica | |||
* Eigene Container Policy mit udica erstellen | |||
== Blocks == | |||
=== Tag 1 === | |||
Grundlagen, Security Context und Dateikontexte | |||
; Block 1. Grundlagen und Kontextmodell | |||
* 01 - [[Linux/SELinux/Grundlagen|Einführung]] | |||
:* Nutzen und typische Einsatzszenarien | |||
:* Grundprinzipien von SELinux | |||
* 02 - [[Linux/SELinux/Security Context|Security Context]] | |||
:* Aufbau des Security Context | |||
:* SELinux User, Role, Type und Level | |||
:* Lesen und Interpretieren von Context-Komponenten | |||
; Block 2. Dateien, Verzeichnisse und Kontextspeicherung | |||
* 03 - [[Linux/SELinux/Dateien|Security Context auf Dateien und Verzeichnissen]] | |||
:* Context auf Dateien, Verzeichnissen und Symlinks | |||
:* Unterschiede bei Objektklassen | |||
* 04 - [[Linux/SELinux/Extended File Attributes|Extended File Attributes]] | |||
:* Speicherung von Labels in xattr | |||
:* Namespaces und Werkzeuge | |||
* 05 - [[Linux/SELinux/Security Context von Datei|Security Context von Datei]] | |||
:* Kontext eines konkreten Objekts prüfen | |||
:* Zusammenhang zwischen Objekt und Label | |||
* 06 - [[Linux/SELinux/strace context printing|strace context printing]] | |||
:* Relevante Syscalls | |||
:* Sicht auf Context-Zugriffe im Laufzeitverhalten | |||
=== Tag 2 === | |||
; | |||
'''File Contexts, Regeln und Label-Management''' | |||
; | |||
; Block 1. File Context Regeln und Ausdrücke | |||
* 07 - [[Linux/SELinux/File Context|File Context]] | |||
:* Unterschied zwischen Label und File-Context-Regel | |||
:* Standardzuweisung und persistente Regeln | |||
* 08 - [[Linux/SELinux/Context Expressions|Context Expressions]] | |||
:* Regex-basierte Regeln | |||
:* Auswertung und Priorität | |||
* 09 - [[Linux/SELinux/Named File Transitions Rules|Named File Transitions Rules]] | |||
:* Benannte Übergangsregeln | |||
:* Context-Vergabe bei der Objekterzeugung | |||
; Block 2. Verwaltung, Reparatur und temporäre Verzeichnisse | |||
* 10 - [[Linux/SELinux/Systemd und Temporäre Verzeichnisse|Systemd und Temporäre Verzeichnisse]] | |||
:* Context-Vorgaben mit ''systemd-tmpfiles'' | |||
:* Temporäre Verzeichnisse und Laufzeitobjekte | |||
:* Zusammenhang mit persistenter Label-Verwaltung | |||
=== Tag 3 === | |||
; | |||
'''Benutzer, Rollen, Laufzeitverhalten und Integration''' | |||
; | |||
; Block 1: Benutzer, Rollen und Anmeldung | |||
* 11 - [[Linux/SELinux/Benutzer Login|Benutzer Login]] | |||
:* Login-Kontext | |||
:* Zuordnung Linux User zu SELinux User | |||
* 12 - [[Linux/SELinux/Kategorien|Kategorien]] | |||
:* MCS-Kategorien | |||
:* Bereichs- und Kategoriezuordnung | |||
* 13 - [[Linux/SELinux/Rollen|Rollen]] | |||
:* Rollenmodell | |||
:* Rollenwechsel und Rechteabgrenzung | |||
* 14 - [[Linux/SELinux/Pluggable Authentication Modules|PAM]] | |||
:* ''pam_selinux'' | |||
:* ''pam_sepermit'' | |||
:* ''pam_namespace'' | |||
; Block 2. Prozesse, Automatisierung und Container | |||
* 15 - [[Linux/SELinux/Prozess Context|Prozess Context]] | |||
:* Prozess-Context und Domains | |||
:* Domain Transitions | |||
:* Laufzeitverhalten und Schutzmechanismen | |||
* 16 - [[Linux/SELinux/Ansible|SELinux und Ansible]] | |||
:* Native Module | |||
:* Verteilen von SELinux-Konfiguration | |||
* 17 - [[Linux/SELinux/Salt|SELinux und Salt]] | |||
:* Native Module | |||
:* Verteilen von SELinux-Konfiguration | |||
* 18 - [[Linux/SELinux/Container|SELinux und Container]] | |||
:* Podman, MCS und Volumes | |||
:* Eigene Container-Policy mit ''udica'' | |||
Aktuelle Version vom 27. März 2026, 10:22 Uhr
Inhalte
| Kapitel | Thema | Gewichtung |
|---|---|---|
| 01 | Einführung | 1 |
| 02 | Security Context auf Dateien und Verzeichnissen | 1 |
| 03 | Extended File Attributes | 1 |
| 04 | Security Context | 1 |
| 05 | File Context | 1 |
| 06 | Context Expressions | 1 |
| 07 | Security Context von Datei | 1 |
| 08 | Named File Transitions Rules | 1 |
| 09 | Systemd und Temporäre Verzeichnisse | 1 |
| 10 | strace context printing | 1 |
| 11 | Benutzer Login | 1 |
| 12 | Kategorien | 1 |
| 13 | Rollen | 1 |
| 14 | PAM | 1 |
| 15 | Prozess Context | 1 |
| 16 | SELinux und Ansible | 1 |
| 17 | SELinux und Salt | 1 |
| 18 | SELinux und Container | 1 |
Seminartage
Tag 1
- Grundlagen
Grundlagen & Security Context
Ziel
Verstehen, wie SELinux funktioniert und wie Kontexte aufgebaut sind
Ergebnis
Aufbau von SELinux-Kontexten verstehen , lesen und interpretieren
Inhalte
- Einführung in SELinux – Nutzen und typische Einsatzszenarien
- Security Context auf Dateien und Verzeichnissen
- Interpretation des SELinux Context Types
- Extended (File) Attributes (xattr) – Namespaces, Verwaltung mit getfattr/setfattr
- Syscall-Analyse mit strace (stat, fstat, getxattr, …)
- Standardverhalten bei mv und cp
- Einfluss von restorecond auf Labels
- SELinux Optionen bei mv, cp, mkdir, tar, rsync
Tag 2
- Context und Policies
File Context Verwaltung & Security Context Policies
Ziel
Kontexte gezielt setzen, verwalten und reparieren
Ergebnis
File Contexts korrekt setzen, Policies anpassen und fehlerhafte Labels systematisch reparieren.
Inhalte
- Context setzen mit chcon, semanage, setfiles, fixfiles
- File Context Regeln – Aufbau, Regex, Prioritätsregeln
- Context Expressions und matchpathcon
- Reparieren von falsch gesetzten Labels mit restorecon (inkl. SHA256 digests)
- Äquivalenzregeln definieren
- Named File Transition Rules
- Mount-Optionen für SELinux (context=, defcontext=, fscontext=, rootcontext=)
- Systemd und temporäre Verzeichnisse – Context via systemd-tmpfiles
- Lokale Änderungen exportieren/importieren mit semanage
Tag 3
- Benutzer, Rollen, Container und Automatisierung
Ziel
SELinux in realen Betriebsumgebungen professionell einsetzen
Ergebnis
Inhalte
- SELinux User & Role Mapping im Detail
- Linux User - SELinux User Zuordnung
- Erstellen eigener SELinux User
- Arbeiten mit SELinux Roles (newrole, sudo, runcon)
- Verwalten von MCS Categories (chcat, setrans, mcstransd)
- Pluggable Authentication Modules (PAM): pam_selinux, pam_sepermit, pam_namespace
- Prozess Context, Domain Transitions, Memory Protection, NNP
- SELinux & Ansible – native Module, Custom Policy verteilen
- SELinux & Salt – native Module, Custom Policy verteilen
- SELinux & Container – Podman, MCS, Volumes, udica
- Eigene Container Policy mit udica erstellen
Blocks
Tag 1
Grundlagen, Security Context und Dateikontexte
- Block 1. Grundlagen und Kontextmodell
- 01 - Einführung
- Nutzen und typische Einsatzszenarien
- Grundprinzipien von SELinux
- 02 - Security Context
- Aufbau des Security Context
- SELinux User, Role, Type und Level
- Lesen und Interpretieren von Context-Komponenten
- Block 2. Dateien, Verzeichnisse und Kontextspeicherung
- Context auf Dateien, Verzeichnissen und Symlinks
- Unterschiede bei Objektklassen
- Speicherung von Labels in xattr
- Namespaces und Werkzeuge
- Kontext eines konkreten Objekts prüfen
- Zusammenhang zwischen Objekt und Label
- Relevante Syscalls
- Sicht auf Context-Zugriffe im Laufzeitverhalten
Tag 2
File Contexts, Regeln und Label-Management
- Block 1. File Context Regeln und Ausdrücke
- 07 - File Context
- Unterschied zwischen Label und File-Context-Regel
- Standardzuweisung und persistente Regeln
- 08 - Context Expressions
- Regex-basierte Regeln
- Auswertung und Priorität
- Benannte Übergangsregeln
- Context-Vergabe bei der Objekterzeugung
- Block 2. Verwaltung, Reparatur und temporäre Verzeichnisse
- Context-Vorgaben mit systemd-tmpfiles
- Temporäre Verzeichnisse und Laufzeitobjekte
- Zusammenhang mit persistenter Label-Verwaltung
Tag 3
Benutzer, Rollen, Laufzeitverhalten und Integration
- Block 1
- Benutzer, Rollen und Anmeldung
- 11 - Benutzer Login
- Login-Kontext
- Zuordnung Linux User zu SELinux User
- 12 - Kategorien
- MCS-Kategorien
- Bereichs- und Kategoriezuordnung
- 13 - Rollen
- Rollenmodell
- Rollenwechsel und Rechteabgrenzung
- 14 - PAM
- pam_selinux
- pam_sepermit
- pam_namespace
- Block 2. Prozesse, Automatisierung und Container
- 15 - Prozess Context
- Prozess-Context und Domains
- Domain Transitions
- Laufzeitverhalten und Schutzmechanismen
- 16 - SELinux und Ansible
- Native Module
- Verteilen von SELinux-Konfiguration
- 17 - SELinux und Salt
- Native Module
- Verteilen von SELinux-Konfiguration
- Podman, MCS und Volumes
- Eigene Container-Policy mit udica