Zum Inhalt springen

Hardening/Linux: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „BASEPAGENAME}}}}“ durch „BASEPAGENAME}}/}}“
 
(18 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Systemhärtung/Linux'''
'''Hardening/Linux''' - Linux gegen Angriffe härten


== Beschreibung ==
== Kernel-Hardening ==
; Backup
[[Hardening/Linux/Kernel]]
Erstmal legen wir uns ein Backup der Default Config an
sudo sysctl -a > /tmp/default_sysctl.txt


;
== Mount-Optionen ==
dann legen wir die Datei /etc/sysctl.d/97_hard.conf an und kopieren folgende Zeilen rein.  
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)


Auch hier gilt wieder die Einstellungen müssen zu der eingesetzten Software kompatible sein
== 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


{| class="wikitable sortable options"
[[Hardening/Linux/SSH]]
|-
! Option !! Beschreibung
|-
| kernel.kptr_restrict = 2 ||
|-
| kernel.dmesg_restrict = 1 ||
|-
| kernel.unprivileged_bpf_disabled=1 ||
|-
| net.core.bpf_jit_harden=2 ||
|-
| dev.tty.ldisc_autoload=0 ||
|-
| vm.unprivileged_userfaultfd=0 ||
|-
| kernel.kexec_load_disabled = 1 ||
|-
| kernel.sysrq=4 ||
|-
| kernel.unprivileged_userns_clone=0 ||
|-
| kernel.perf_event_paranoid = 3 ||
|-
| kernel.yama.ptrace_scope=2 ||
|-
| vm.mmap_rnd_bits=32 ||
|-
| vm.mmap_rnd_compat_bits=16 ||
|-
| fs.protected_symlinks=1 ||
|-
| fs.protected_hardlinks=1 ||
|-
| fs.protected_fifos=2 ||
|-
| fs.protected_regular=2 ||
|}


Die Erklärung zu den jeweiligen Konfigurationen kann unter dem Link in der Quellenangabe nachgelesen werden
== 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


Nach einem Neustart werden die Kernelparameter aktiv, wer nicht solange warten möchte kann diese mit
== Mandatory Access Control (MAC) ==
service procps force-reload
MAC-Systeme ergänzen klassische Berechtigungen um kontextabhängige Richtlinien
sofort einlesen.
* 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. [[Systemd/Journald|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


<noinclude>
<noinclude>
Zeile 61: Zeile 68:
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
==== Links ====
=== Links ===
===== Weblinks =====
==== Weblinks ====
# https://www.thomas-krenn.com/de/wiki/Absicherung_eines_Debian_Servers
# https://www.kernel.org/doc/html/latest/admin-guide/sysctl/
# 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


[[Kategorie:Debian]]
[[Kategorie:Debian]]
[[Kategorie:Härtung]]
[[Kategorie:Hardening]]
[[Kategorie:Linux/Sicherheit]]
 


</noinclude>
</noinclude>

Aktuelle Version vom 18. Dezember 2025, 08:26 Uhr

Hardening/Linux - Linux gegen Angriffe härten

Kernel-Hardening

Hardening/Linux/Kernel

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

Hardening/Linux/SSH

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

  1. https://www.thomas-krenn.com/de/wiki/Absicherung_eines_Debian_Servers
  2. https://www.kernel.org/doc/html/latest/admin-guide/sysctl/
  3. https://www.fb-pro.com/linux-haerten/
  4. https://www.kuketz-blog.de/linux-systemhaertung-basis-linux-haerten-teil2/
  5. https://netwrix.com/de/resources/guides/linux-hardening-security-best-practices