Erkläre mir, wie du einen frisch aufgesetzten, internetzugänglichen Linux-Server härten würdest.
Kurzantwort
Angriffsfläche reduzieren (ungenutzte Pakete/Dienste entfernen), SSH nur per Schlüssel und ohne Root-Login erzwingen, das System gepatcht halten, eine Default-Deny-Firewall betreiben, die nur nötige Ports freigibt, geringste Rechte über sudo und Dateirechte durchsetzen, auditd und zentrales Logging aktivieren sowie Integritätsüberwachung plus ein MAC wie SELinux oder AppArmor ergänzen.
Härtung ist das systematische Entfernen von allem, was ein Angreifer ausnutzen könnte, zuzüglich des Hinzufügens von Kontrollen, um ihn zu erkennen und einzudämmen, falls er eindringt. Ein nützlicher Rahmen sind die CIS Benchmarks, doch die Begründung zählt mehr als die Checkliste.
Die Angriffsfläche reduzieren
Beginne damit, zu entfernen, was du nicht brauchst: ungenutzte Pakete deinstallieren, nicht benötigte Dienste deaktivieren und unnötige lauschende Ports schließen. Jeder laufende Dienst ist ein potenzieller Einstiegspunkt. Ein minimales Basis-Image mit nur den Abhängigkeiten der Arbeitslast ist weitaus leichter zu verteidigen.
Den Fernzugriff absichern
SSH ist die Vordertür einer internetzugänglichen Maschine:
- Deaktiviere die Passwort-Authentifizierung vollständig; verwende schlüsselbasierte Authentifizierung (Schlüssel widerstehen Brute-Force-Angriffen auf eine Weise, die Passwörter nie erreichen).
- Deaktiviere den direkten Root-Login; Administratoren melden sich als normaler Benutzer an und erhöhen ihre Rechte über
sudo. - Beschränke die Quell-IP-Adressen, wo möglich, und ziehe nicht standardmäßige Konfigurationen sowie fail2ban in Betracht, um automatisierte Angriffe abzuschwächen.
Patchen und Firewall
- Halte Kernel und Pakete gepatcht, idealerweise mit automatisierten Sicherheitsupdates – ungepatchte Software ist der häufigste Angriffsvektor.
- Betreibe eine Default-Deny-Firewall (nftables/iptables oder Cloud-Sicherheitsgruppen), die nur die spezifischen eingehenden Ports erlaubt, die der Dienst benötigt.
Geringste Rechte durchsetzen
Betreibe Dienste als dedizierte Nicht-Root-Benutzer, setze strenge Dateirechte und verwende Mandatory Access Control – SELinux oder AppArmor –, um Prozesse einzuschränken, sodass ein kompromittierter Dienst nicht über seine Richtlinie hinaus agieren kann, selbst als Root.
Erkennen und verifizieren
- Aktiviere auditd und sende Logs an einen zentralen, host-externen Collector, damit ein Angreifer lokale Spuren nicht einfach löschen kann.
- Ergänze eine Dateiintegritätsüberwachung (AIDE/Tripwire), um manipulierte Binärdateien oder Konfigurationen aufzuspüren.
Worauf Interviewer achten
Eine Antwort auf Senior-Niveau ist strukturiert – Reduzierung der Angriffsfläche, Zugriffskontrolle, Patchen, geringste Rechte, Detektion – und erklärt das Warum (z. B. Schlüssel statt Passwörter, Logs host-extern). Pluspunkte für das Nennen der CIS Benchmarks und eines MAC wie SELinux, statt bei »ein starkes Passwort setzen« stehenzubleiben.
Wahrscheinliche Anschlussfragen
- Warum passwortbasiertes SSH zugunsten von Schlüsseln deaktivieren?
- Was fügen SELinux oder AppArmor zusätzlich zu Dateirechten hinzu?
- Wie würdest du erkennen, dass eine Binärdatei auf dem Host manipuliert wurde?