Zum Inhalt springen

Hardening/Linux/Dateisystem

Aus Foxwiki
Version vom 18. Dezember 2025, 17:49 Uhr von DanielZorin (Diskussion | Beiträge) (Read-only-Dateisysteme)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Hardening/Linux/Filesystem

Beschreibung

Härtung auf Dateisystemebene reduziert die Auswirkungen lokaler Angriffe, Fehlkonfigurationen und Post-Exploitation-Aktivitäten durch Einschränkung von Schreib- und Ausführungsrechten sowie Trennung von Datenbereichen.

Ziele

  • Begrenzung von Ausführbarkeit und Privileg-Eskalation (SUID/SGID, Device-Nodes)
  • Reduzierung persistenter Artefakte (z.B. temporäre Verzeichnisse)
  • Isolierung von Daten- und Systembereichen durch separate Mountpoints
  • Minimierung von Schäden bei volllaufenden Partitionen (insb. /var, /var/log)

Partitionierung und Trennung

Grundprinzip

Getrennte Dateisysteme ermöglichen restriktivere Mount-Optionen und begrenzen Seiteneffekte (z.B. Vollschreiben, Manipulation von Executables, Persistenz).

Mountpoints
  • /home – Benutzerdaten
  • /var – variable Daten (Caches, Spools, DBs)
  • /var/log – Logs (optional separat)
  • /tmp und /var/tmp – temporäre Dateien
  • /srv – Anwendungs-/Servicedaten
  • /boot – Bootloader/Kernel (typisch restriktiv)


Mount-Optionen

Übersicht
Option Beschreibung Einsatzorte Hinweise
nodev Device-Dateien werden nicht als Geräte interpretiert /home, /tmp, /var/tmp, /srv Auf /dev nicht setzen
nosuid SUID/SGID-Bits werden ignoriert /home, /tmp, /var/tmp, /srv Reduziert Privileg-Eskalation über SUID-Binaries
noexec Ausführung von Binärdateien auf dem Dateisystem unterbunden /tmp, /var/tmp Interpreter können weiterhin Skripte ausführen (z.B. python /tmp/script.py)
ro Read-only Mount /boot Updates benötigen temporär rw oder alternative Update-Strategie

Empfohlene Mountpoints

Base
Pfad Empfohlene Optionen Begründung
/tmp nodev,nosuid,noexec Temporäre Artefakte. Reduzierte Ausführung und SUID-Missbrauch
/var/tmp nodev,nosuid,noexec Wie /tmp, aber persistenter. dennoch restriktiv
/home nodev,nosuid Verhindert Device-/SUID-Missbrauch in Benutzerdaten
/srv nodev,nosuid Service-Daten i.d.R. ohne SUID/Devices. noexec nur falls kompatibel
/boot ro,nodev,nosuid,noexec Schutz von Boot-Artefakten. Änderungen nur kontrolliert
  • Hinweis
  • noexec auf /home und /srv kann Build-/Deploy-Prozesse brechen
  • Separate /var/log-Partition reduziert Risiken durch Log-Flooding

tmpfs

Ziel

Reduzierung persistenter Spuren und automatische Bereinigung beim Reboot

  • /tmp als tmpfs
  • /run ist i.d.R. bereits tmpfs
fstab-Beispiel
tmpfs  /tmp  tmpfs  rw,nosuid,nodev,noexec,mode=1777  0  0
Hinweis
  • Bei der Verwendung von tmpfs sind die Kapazitätsgrenzen von RAM und Swap zu berücksichtigen
  • Bei großen temporären Dateien ggf. klassisches Dateisystem verwenden

Read-only-Dateisysteme

Ziel

Ein read-only Root-Dateisystem reduziert Persistenz und erschwert Manipulation von Systemdateien.

Varianten
  • /boot read-only
  • /usr read-only
  • read-only / (in Appliances/immutable Setups mit Overlay-Konzept)
Hinweis
  • Update-Mechanismen benötigen definierte Wartungsfenster

Konfiguration

/etc/fstab

Mount-Optionen werden typischerweise in /etc/fstab gepflegt

UUID=XXXX  /tmp      ext4  defaults,nodev,nosuid,noexec  0  2
UUID=YYYY  /home     ext4  defaults,nodev,nosuid         0  2
UUID=ZZZZ  /boot     ext4  ro,nodev,nosuid,noexec        0  2
systemd Mount Units (Alternative)

Für systemd-basierte Systeme können Mounts als Units abgebildet werden (z.B. tmp.mount)

[Mount]
What=UUID=XXXX
Where=/tmp
Type=ext4
Options=defaults,nodev,nosuid,noexec

  • Änderungen sollten mit Console oder Rescue-Zugriff abgesichert werden

Wechselwirkungen

MAC-Systeme
  • Mount-Optionen ergänzen MAC, ersetzen es aber nicht.
  • MAC kontrolliert Zugriffe pro Prozess, Mount-Optionen wirken global pro Dateisystem.
Container/VMs
  • In Containern sind Mount-Optionen oft durch Host oder Runtime vorgegeben
  • Härtung erfolgt primär auf Host-Ebene oder via Runtime-Policies