Hardening/Linux: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
'''Hardening/Linux''' - Linux gegen Angriffe härten | '''Hardening/Linux''' - Linux gegen Angriffe härten | ||
== [[Hardening/Linux/Kernel | == Kernel-Hardening == | ||
* [[Hardening/Linux/Kernel]] | |||
== Mount-Optionen == | == Mount-Optionen == | ||
Härtung auf Dateisystemebene reduziert die Auswirkungen lokaler Angriffe und Fehlkonfigurationen | Härtung auf Dateisystemebene reduziert die Auswirkungen lokaler Angriffe und Fehlkonfigurationen | ||
* Separate Partitionen für Daten- und Systembereiche (z.B. ''/home'', ''/var'', ''/tmp'') vorsehen, sofern möglich | * Separate Partitionen für Daten- und Systembereiche (z.B. ''/home'', ''/var'', ''/tmp'') vorsehen, sofern möglich | ||
* Mount-Optionen wie ''nodev'', ''nosuid'' und ''noexec'' für geeignete Dateisysteme verwenden, um die Ausführung oder Nutzung bestimmter Objekttypen zu unterbinden | * Mount-Optionen wie ''nodev'', ''nosuid'' und ''noexec'' für geeignete Dateisysteme verwenden, um die Ausführung oder Nutzung bestimmter Objekttypen zu unterbinden | ||
| Zeile 11: | Zeile 11: | ||
== [[Hardening/Linux/SSH|SSH-Hardening]] == | == [[Hardening/Linux/SSH|SSH-Hardening]] == | ||
[[SSH]] ist typischer Einstiegspunkt für Angriffe und sollte besonders restriktiv konfiguriert werden | [[SSH]] ist typischer Einstiegspunkt für Angriffe und sollte besonders restriktiv konfiguriert werden | ||
* Schlüsselbasierte Authentifizierung bevorzugen und Passwörter, wo möglich, deaktivieren | * Schlüsselbasierte Authentifizierung bevorzugen und Passwörter, wo möglich, deaktivieren | ||
* Root-Login einschränken oder deaktivieren und administrative Zugriffe über dedizierte Benutzerkonten mit ''sudo'' abbilden | * Root-Login einschränken oder deaktivieren und administrative Zugriffe über dedizierte Benutzerkonten mit ''sudo'' abbilden | ||
| Zeile 18: | Zeile 17: | ||
== Firewall == | == Firewall == | ||
Eine hostbasierte [[Firewall]] begrenzt eingehenden und ausgehenden Verkehr auf das notwendige Minimum | Eine hostbasierte [[Firewall]] begrenzt eingehenden und ausgehenden Verkehr auf das notwendige Minimum | ||
* Default-Deny-Policy für eingehenden Verkehr, explizite Freigabe nur benötigter Ports und Protokolle | * Default-Deny-Policy für eingehenden Verkehr, explizite Freigabe nur benötigter Ports und Protokolle | ||
* Trennung von Verwaltungs-, Anwendungs- und Datenverkehr durch Zonen oder separate Regeln | * Trennung von Verwaltungs-, Anwendungs- und Datenverkehr durch Zonen oder separate Regeln | ||
| Zeile 31: | Zeile 29: | ||
== Audit und Logging == | == Audit und Logging == | ||
Strukturiertes Logging unterstützt Erkennung, Analyse und Nachweis sicherheitsrelevanter Ereignisse | Strukturiertes Logging unterstützt Erkennung, Analyse und Nachweis sicherheitsrelevanter Ereignisse | ||
* Zentrale Sammlung von System- und Anwendungslogs (z.B. [[Systemd/Journald|journald]], klassische Logfiles, Audit-Subsystem) | * Zentrale Sammlung von System- und Anwendungslogs (z.B. [[Systemd/Journald|journald]], klassische Logfiles, Audit-Subsystem) | ||
* Klare Aufbewahrungs- und Rotationsrichtlinien für Logs definieren | * Klare Aufbewahrungs- und Rotationsrichtlinien für Logs definieren | ||
| Zeile 38: | Zeile 35: | ||
== Rechtemanagement == | == Rechtemanagement == | ||
Sauberes Identitäts- und Rechtemanagement reduziert das Risiko von Fehlbedienung und Missbrauch | Sauberes Identitäts- und Rechtemanagement reduziert das Risiko von Fehlbedienung und Missbrauch | ||
* Minimalprinzip für Berechtigungen umsetzen (Least Privilege) | * Minimalprinzip für Berechtigungen umsetzen (Least Privilege) | ||
| Zeile 45: | Zeile 42: | ||
== Dienste == | == Dienste == | ||
Jeder aktive Dienst erweitert die Angriffsfläche des Systems | Jeder aktive Dienst erweitert die Angriffsfläche des Systems | ||
* Nicht benötigte Pakete, Dienste und Timer entfernen oder deaktivieren | * Nicht benötigte Pakete, Dienste und Timer entfernen oder deaktivieren | ||
* Nur notwendige Netzwerk-Listener bereitstellen; interne Dienste möglichst auf lokale Schnittstellen binden | * Nur notwendige Netzwerk-Listener bereitstellen; interne Dienste möglichst auf lokale Schnittstellen binden | ||
| Zeile 52: | Zeile 48: | ||
== Physischer Zugriff == | == Physischer Zugriff == | ||
Physischer Zugriff ermöglicht oft das Umgehen logischer Schutzmechanismen | Physischer Zugriff ermöglicht oft das Umgehen logischer Schutzmechanismen | ||
* Einsatz von Datenträgerverschlüsselung für sensible Systeme und Datenbestände prüfen | * Einsatz von Datenträgerverschlüsselung für sensible Systeme und Datenbestände prüfen | ||
* Bootloader-Konfiguration und Start von alternativen Medien kontrollieren | * Bootloader-Konfiguration und Start von alternativen Medien kontrollieren | ||
| Zeile 59: | Zeile 54: | ||
== Anwendungen und Container == | == Anwendungen und Container == | ||
Applikationen und Container sollten nicht nur funktional, sondern auch sicher integriert werden | Applikationen und Container sollten nicht nur funktional, sondern auch sicher integriert werden | ||
* Standardkonfigurationen von Anwendungen prüfen und auf minimale benötigte Funktionen reduzieren | * Standardkonfigurationen von Anwendungen prüfen und auf minimale benötigte Funktionen reduzieren | ||
Version vom 18. Dezember 2025, 08:25 Uhr
Hardening/Linux - Linux gegen Angriffe härten
Kernel-Hardening
Mount-Optionen
Härtung auf Dateisystemebene reduziert die Auswirkungen lokaler Angriffe und Fehlkonfigurationen
- Separate Partitionen für Daten- und Systembereiche (z.B. /home, /var, /tmp) vorsehen, sofern möglich
- Mount-Optionen wie nodev, nosuid und noexec für geeignete Dateisysteme verwenden, um die Ausführung oder Nutzung bestimmter Objekttypen zu unterbinden
- Kritische Systempfade möglichst restriktiv einhängen (z.B. nur lesbar, sofern der Betriebsfall dies zulässt)
SSH-Hardening
SSH ist typischer Einstiegspunkt für Angriffe und sollte besonders restriktiv konfiguriert werden
- Schlüsselbasierte Authentifizierung bevorzugen und Passwörter, wo möglich, deaktivieren
- Root-Login einschränken oder deaktivieren und administrative Zugriffe über dedizierte Benutzerkonten mit sudo abbilden
- Protokollversion, Kryptosuiten und erlaubte Authentifizierungsverfahren anhand aktueller Sicherheitsrichtlinien auswählen
Firewall
Eine hostbasierte Firewall begrenzt eingehenden und ausgehenden Verkehr auf das notwendige Minimum
- Default-Deny-Policy für eingehenden Verkehr, explizite Freigabe nur benötigter Ports und Protokolle
- Trennung von Verwaltungs-, Anwendungs- und Datenverkehr durch Zonen oder separate Regeln
- Regelwerk regelmäßig prüfen und an Änderungen der Dienste oder Topologie anpassen
Mandatory Access Control (MAC)
MAC-Systeme ergänzen klassische Berechtigungen um kontextabhängige Richtlinien
- Einsatz von AppArmor, SELinux oder vergleichbaren Mechanismen zur Einschränkung von Prozessen auf das notwendige Minimum
- Profile für kritische Dienste definieren, testen und kontinuierlich pflegen
- Alarmierung und Logging von Policy-Verletzungen zur Erkennung fehlerhafter Konfigurationen nutzen
Audit und Logging
Strukturiertes Logging unterstützt Erkennung, Analyse und Nachweis sicherheitsrelevanter Ereignisse
- Zentrale Sammlung von System- und Anwendungslogs (z.B. journald, klassische Logfiles, Audit-Subsystem)
- Klare Aufbewahrungs- und Rotationsrichtlinien für Logs definieren
- Regelmäßige Auswertung und Korrelation von Meldungen (z.B. Anmeldefehler, Policy-Verstöße, Dienstabstürze)
Rechtemanagement
Sauberes Identitäts- und Rechtemanagement reduziert das Risiko von Fehlbedienung und Missbrauch
- Minimalprinzip für Berechtigungen umsetzen (Least Privilege)
- Trennung von administrativen und nichtadministrativen Konten
- Gruppenstrukturen und sudo-Regeln so gestalten, dass nachvollziehbare Verantwortlichkeiten entstehen
Dienste
Jeder aktive Dienst erweitert die Angriffsfläche des Systems
- Nicht benötigte Pakete, Dienste und Timer entfernen oder deaktivieren
- Nur notwendige Netzwerk-Listener bereitstellen; interne Dienste möglichst auf lokale Schnittstellen binden
- Standardkonfigurationen von Diensten prüfen und sicherheitsrelevante Parameter (z.B. TLS, Authentifizierung, Zugriffskontrolle) anpassen
Physischer Zugriff
Physischer Zugriff ermöglicht oft das Umgehen logischer Schutzmechanismen
- Einsatz von Datenträgerverschlüsselung für sensible Systeme und Datenbestände prüfen
- Bootloader-Konfiguration und Start von alternativen Medien kontrollieren
- Firmware-/UEFI-Einstellungen absichern und, wo sinnvoll, mit Passwörtern schützen
Anwendungen und Container
Applikationen und Container sollten nicht nur funktional, sondern auch sicher integriert werden
- Standardkonfigurationen von Anwendungen prüfen und auf minimale benötigte Funktionen reduzieren
- Container-Runtimes mit restriktiven Profilen (z.B. Namespaces, seccomp, Capability-Reduktion) betreiben
- Abhängigkeiten und Images regelmäßig aktualisieren und auf bekannte Schwachstellen prüfen
- Zur Erhöhung der Sicherheit auf dem Docker-Host kann userns-remap eingesetzt werden
Anhang
Siehe auch
Links
Weblinks
- https://www.thomas-krenn.com/de/wiki/Absicherung_eines_Debian_Servers
- https://www.kernel.org/doc/html/latest/admin-guide/sysctl/
- https://www.fb-pro.com/linux-haerten/
- https://www.kuketz-blog.de/linux-systemhaertung-basis-linux-haerten-teil2/
- https://netwrix.com/de/resources/guides/linux-hardening-security-best-practices