Linux ist das am meisten verbreitete Server Betriebsystem. Hierfür gibt es viele unterschiedliche Distributionen, die sich je nach Anwendungsfall stark unterscheiden können. Um einen sicheren Betrieb zu gewährleisten, sollten Härtungsmaßnahmen durchgeführt werden, um mögliche Angriffsvektoren zu minimieren. Dabei ist es weder mit einer einmaligen Aktion, noch mit einem Werkzeug getan. Wenn erstmal klar ist, welche Härtungen erforderlich sind, müssen diese ausgerollt werden. Dieser Schritt sollte auch immer wieder durchgeführt werden, um die Compliance der Systeme sicherzustellen. Zusätzlich sollten die Systeme überwacht und ausgewertet werden, um Abweichungen vom Standard oder noch nicht umgesetzte Härtungen zu indentifizieren.
Fassen wir die erforderlichen Säulen zusammen:
- Härtungsmaßnahmen
- Automatisierung zum Ausrollen
- CI/CD Pipelines zum nachvollziehbaren, regelmäßigen Ausrollen
- Monitoring der Maßnahmen
Im Folgenden werden die einzelnen Säulen beschrieben. Dies setzt jedoch ein sehr tiefes Verständnis von Linux voraus. Gängige DevOps Praktiken wie Automatisierung und CI/CD sollten auch keine Fremdwörter sein. Bevor es in die Tiefe geht, noch ein extrem wichtiger Hinweis: Alles was jetzt folgt, setzt sehr intensives Testen voraus. Wer hier blind einfach alles ausführt, was vorhanden ist, wird seine Systeme mit hoher Wahrscheinlichkeit unbrauchbar machen. Erstellt euch also Snapshots eurer Test VMs. Diese werdet ihr brauchen.
Härtungsmaßnahmen
Fangen wir mit den Maßnahmen an, die zur Härtung eines Linux Servers dienen. Eine hervorragende Anlaufstelle ist das „Center for Internet Security“ (CIS). Die NGO hat es sich zur Aufgabe gemacht, Systeme sowie gängige Software Produkte oder Cloud Umgebungen sicherer zu machen. Dafür stellt das CIS die sogenannten „CIS Benchmarks“ zur Verfügung. Diese enthalten sorgfältig dokumentierte Maßnahmen zur Härtung. Für Linux Server gibt es je nach Distribution eigene Benchmarks. So zum Beispiel für RHEL 10, SLES 15 oder Debian 13. Die Benchmarks liefern Möglichkeiten, Systeme sehr stark abzusichern. Hier ist es wichtig abzuwägen, welche Maßnahmen auf den eigenen Systemen wirklich erforderlich bzw. sinnvoll sind. Wird alles angewendet, ist das System ziemlich sicher nicht mehr nutzbar. Daher nochmal der Hinweis mit der ordentlichen Analyse und einem vernünftigen Testkonzept.
Automatisierung
Niemand möchte die Maßnahmen der CIS Benchmarks einzeln auf seine Systeme ausbringen. Das dauert viel zu lange, ist fehleranfällig und auch total unnötig. Also wird automatisiert. Hier bietet sich Ansible an. Es gibt aber natürlich auch andere Lösungen dafür. Für Ansible gibt es für die gängigen Linux Distributionen, die im Enterprise Umfeld eingesetzt werden, bereits fertige Rollen. Diese lassen sich direkt über GitHub beziehen. Einen Überblick samt Dokumentation liefert folgende Seite.
CI/CD Pipelines
Die Härtung der Linux Server sollte keine einmalige Sache sein. Der definierte Zustand sollte dauerhaft erhalten bleiben. Wenn sich also auf einem System aus Gründen ein definierter Zustand ändert, sollte die Automatisierung wieder dafür sorgen, dass der Zustand hergestellt wird. Dafür sind CI/CD Pipelines sehr sinnvoll. Ein weiterer Vorteil ist die Definition von Tags für eine Pipeline. Damit lässt sich festlegen, welche Ansible Aktionen ausgeführt oder übersprungen werden sollen. Durch dieses Verfahren lassen sich gewisse Regeln der CIS Benchmarks ignorieren, falls diese nicht benötigt werden.
Im folgenden Screenshot ist eine Semaphore Pipeline für Ansible zu sehen, die mehrere Tags der auszuführenden Rolle überspringt. Das sind Tags der Prüfungen, die in meinem Homelab nicht erforderlich sind.

Die Pipeline liefert detaillierte Ergebnisse aller ausgeführten Aktionen inklusive einer Zusammenfassung über gefundene Warnungen, die überprüft werden sollten.

Monitoring
Bis jetzt haben wir schon einen ziemlich guten Stand, um die eigenen Linux Server mit geeigneten Maßnahmen automatisiert zu härten. Um einen Überblick über alles zu behalten oder auch dem Management zu zeigen, wie die eigene Infrastruktur aussieht, können die CIS Benchmarks im Hintergrund abgefragt und die Ergebnisse grafisch und informativ dargestellt werden. Dazu kann das Open Source Werkzeug Patchmon verwendet werden, welches ich bereits in einem früheren Artikel vorgestellt habe.
Die Compliance Prüfungen können hier manuell oder zeitgesteuert ausgeführt werden. Der Compliance Bericht lässt sich über alle Systeme hinweg anzeigen und jede Regel liefert neben dem Schweregrad und dem Status auch eine sehr detaillierte Beschreibung.

Fazit
Der Artikel war jetzt eine sehr oberflächliche Beschreibung von Maßnahmen, die eingesetzt werden können, um die Linux Systeme im eigenen Unternehmen abzusichern und zu überwachen. Erste Ergebnisse sind hierbei schnell realisiert. Eine Lösung für alle Systeme wird es hierbei nicht geben. Es wird unterschiedliche Konfigurationen erfordern. Hierbei sind auch die CI/CD Pipelines ein äußerst wertvolles Hilfsmittel, da hiermit unterschiedliche Szenarien realisiert werden können. Bis jedoch ein Großteil der Systeme damit bedient werden kann, bedarf es viel konzeptioneller Arbeit und ein intensives Testing ist Pflicht, um nicht von lauter nicht lauffähiger Systeme erschlagen zu werden. Bei Bedarf helfe ich gerne weiter.