Seminarinhalt
SELinux (Security-Enhanced Linux) ist eine Implementierung eines Mandatory Access Control Systems im Linux Kernel. Das Ziel von SELinux ist es, ein verbessertes Sicherheitskonzept bereitstellen zu können, das weit über die Funktionalitäten der traditionellen Dateirechte eines Linux Systems hinausgeht. Auf diese Weise kann erreicht werden, dass ein Einbrecher, der sich Root Rechte aneignet, trotzdem keinen Schaden am System anrichten kann.
SELinux wurde maßgeblich von der NSA und Red Hat entwickelt und steht heute unter fast allen Linux Distributionen und auf Android ab v4.3 zur Verfügung. Zahlreiche Enterprise Distributionen wie Red Hat Enterprise Server werden sogar mit einem aktivierten SELinux ausgeliefert. Daher sollte jede*r Linux und Android Administrator*in gute SELinux Kenntnisse vorweisen können. Dieses Training wird auf einem aktuellen RHEL/Rocky System durchgeführt.
SELinux wurde maßgeblich von der NSA und Red Hat entwickelt und steht heute unter fast allen Linux Distributionen und auf Android ab v4.3 zur Verfügung. Zahlreiche Enterprise Distributionen wie Red Hat Enterprise Server werden sogar mit einem aktivierten SELinux ausgeliefert. Daher sollte jede*r Linux und Android Administrator*in gute SELinux Kenntnisse vorweisen können. Dieses Training wird auf einem aktuellen RHEL/Rocky System durchgeführt.
Programm
Grundlagen Linux Access Control Systeme
Linux Kernel Security Modules (LSM) Framework
Security-Enhanced Linux (SELinux) Sicherheitsmodelle
SELinux Grundlagen
Überblick Grafische Verwaltungswerkzeuge
Überblick Kommandozeilen basierende Verwaltung
SELinux Security Context im Detail
Grundlagen Targeted Policy
Praktische Konfigurationsbeispiele
- Überblick Linux Access Control Systeme
- Discretionary Access Control (DAC)
- Role Based Access Control (RBAC)
- Schwachstellen des Standard DAC Models
Linux Kernel Security Modules (LSM) Framework
- Vorteile eines Mandatory Access Control (MAC) Systems
- Überblick LSM Module (SELinux, AppArmor, BPF, Capabilities, ...)
- LSM - Multi-Level Security (MLS)
- LSM - Multi-Category Security (MCS)
- LSM - Linux Capabilities (CAP_*)
- Aufgaben der wichtigsten Linux Capabilities
- Verwalten der Capabilities (setcap, getcap, pscap, netcap, pam_cap ...)
Security-Enhanced Linux (SELinux) Sicherheitsmodelle
- Sicherheisvorteile durch SELinux
- FLASK Security Architecture (Label, Object Manager, Security Server, AVC)
- Grundlagen SELinux Security Context (user:role:type:level)
- Arbeitsweise des Type Enforcements (TE)
- Probleme des Type Enforcements
- Arbeitsweise des Multi-Category Security (MCS) Enforcements
- Bell-LaPadula Modell
- Arbeitsweise des Multi-Level Security (MLS) Enforcements
- Einsatzgebiete von MLS und MCS
SELinux Grundlagen
- Verfügbare Software Pakete auf RHEL
- Verzeichnisstruktur und Konfigurationsdateien
- SELinux Policy Dokumentation
- Modul Ablagestruktur und Prioritäten
- SELinux Betriebsmodi (enforcing, permissive)
- Gängige Kommandos (seinfo, sestatus, getenforce, setenforce, ...)
- Access Vector Cache (AVC)
- SELinux Users, Roles und Prozess Domains
- Domain Transition und Domain Vererbung
Überblick Grafische Verwaltungswerkzeuge
- system-config-selinux
- sealert -b
- apol
Überblick Kommandozeilen basierende Verwaltung
- semanage (lgin, user, port, fcontext, boolean, ...)
- sestatus
- sesearch
- chcon
- restorecon
- seinfo
- getenforce
SELinux Security Context im Detail
- SELinux User
- SELinux Role
- SELinux Type
- SELinux Level (sensitivity:category)
- Domaintransition
- Security Contexte für Prozesse und Benutzer
- Aufbau von allow Rules (source, destination, class, permission
- Verwalten von MCS Kategorien mit chcat
- Übersetzen von Kategorien mit mcstransd
- Nachträgliches aktivieren von SELinux
Grundlagen Targeted Policy
- Manipulieren des SELinux Status
- Policy Module mit semodule Verwalten
- Lokale Anpassungen mit semanage exportieren und importieren
- Verwalten von Service Einstellungen mit Booleans
- Security Context (fcontext) einer Datei ändern
- Reparieren von falschen Labeln mit restorecon
- Reparieren von falschen Labeln mit fixfiles
- Aufbau und Analyse von Zugriffsverletzungen im Audit Log
- Arbeiten mit dontaudit Rules
- Boolean Regeln analysieren mit sesearch
Praktische Konfigurationsbeispiele
- Beispiel: Targeted Policy Confined Processes
- Beispiel: Targeted Policy Unconfined Processes
- Beispiel: Targeted Policy Permissive Mode einer Domain
- Beispiel: Targeted Policy und erlaubte Ports
- Beispiel: Targeted Policy Confined & Unconfined Users
- Beispiel: Targeted Policy und Apache Einstellungen
- Beispiel: Targeted Policy und vsftpd Einstellungen
- Beispiel: Targeted Policy und rsyslog Einstellungen
Zielgruppen
Linux Administrator*innen
Vorkenntnisse
Dieses Training richtet sich an alle Teilnehmer*innen mit Administrationserfahrungen im Linux Bereich, wie sie in unserem Kurs "Linux 2 - System Administration" vermittelt werden.