ADMIN

2025

01

2024-12-30T12:00:00

Automatisierung

SCHWERPUNKT

063

IT-Infrastruktur

Automatisierung

Konfigurationsmanagement mit Rudder

Am Steuer

von Dr. Holger Reibold

Veröffentlicht in Ausgabe 01/2025 - SCHWERPUNKT

Auf der Suche nach einer passenden Dashboard-Umgebung für eine IT-Infrastruktur drängt sich in jüngerer Zeit Rudder auf. Dieses kann nämlich auch gleich die nötigen Änderungen erzwingen, damit die eigenen Server spezifische Compliance-Anforderungen erfüllen. Obendrein erweist sich die Software durchaus als vielseitig. Wir werfen einen Blick auf das Steuerrad für Admins.

Beim Konfigurationsmanagement setzten viele Administratoren auf Ansible, doch mit Rudder [1] steht eine interessante Alternative bereit, die klassische Dashboard-Funktionalität und Konfigurationsmanagement vereint. Vereinfacht gesagt, schlägt Rudder zwei Fliegen mit einer Klappe. Dazu setzt das Tool auf eine webbasierte Umgebung, die der kontinuierlichen Überwachung der Konfiguration von Infrastrukturkomponenten dient – und das in Echtzeit. Rudder präsentiert Ihnen eine Zusammenfassung auf höchster Ebene und unterstützt auch ISO-27001-Regeln.
Das Implementieren eines durchgängigen Konfigurationskonzepts stellt manchen Administrator vor besondere Herausforderungen. An diesem Punkt setzt Rudder an, denn das Tool basiert auf einem einfachen Framework, das es Ihnen mithilfe des integrierten Regeleditors erlaubt, spezifische Low-Level-Konfigurationsmuster anzuwenden. Ähnlich einem Baukastensystem greift Rudder auf grundlegende Konfigurationselemente zurück. Der grafische Builder senkt dabei das technische Niveau deutlich. Admins, die die Konsole präferieren, können die Umgebung natürlich auch auf Konsolenebene steuern.
Grundsätzlich lassen sich Policies auf Richtlinien- und auf Host-Ebene konfigurieren, und zwar unabhängig voneinander, wobei der sogenannte Enforce-Modus Konfigurationsanpassungen erzwingt. Ein weiterer Pluspunkt: Rudder unterstützt physische und virtuelle Geräte. Sie können also nicht nur traditionelle Server und Infrastrukturkomponenten überwachen und deren Konfigurationen anpassen, sondern auch virtuelle Server und Cloudinstanzen.
Beim Konfigurationsmanagement setzten viele Administratoren auf Ansible, doch mit Rudder [1] steht eine interessante Alternative bereit, die klassische Dashboard-Funktionalität und Konfigurationsmanagement vereint. Vereinfacht gesagt, schlägt Rudder zwei Fliegen mit einer Klappe. Dazu setzt das Tool auf eine webbasierte Umgebung, die der kontinuierlichen Überwachung der Konfiguration von Infrastrukturkomponenten dient – und das in Echtzeit. Rudder präsentiert Ihnen eine Zusammenfassung auf höchster Ebene und unterstützt auch ISO-27001-Regeln.
Das Implementieren eines durchgängigen Konfigurationskonzepts stellt manchen Administrator vor besondere Herausforderungen. An diesem Punkt setzt Rudder an, denn das Tool basiert auf einem einfachen Framework, das es Ihnen mithilfe des integrierten Regeleditors erlaubt, spezifische Low-Level-Konfigurationsmuster anzuwenden. Ähnlich einem Baukastensystem greift Rudder auf grundlegende Konfigurationselemente zurück. Der grafische Builder senkt dabei das technische Niveau deutlich. Admins, die die Konsole präferieren, können die Umgebung natürlich auch auf Konsolenebene steuern.
Grundsätzlich lassen sich Policies auf Richtlinien- und auf Host-Ebene konfigurieren, und zwar unabhängig voneinander, wobei der sogenannte Enforce-Modus Konfigurationsanpassungen erzwingt. Ein weiterer Pluspunkt: Rudder unterstützt physische und virtuelle Geräte. Sie können also nicht nur traditionelle Server und Infrastrukturkomponenten überwachen und deren Konfigurationen anpassen, sondern auch virtuelle Server und Cloudinstanzen.
Rudder unterstützt auch eingebettete IoT-Geräte. Sie haben immer die Wahl, auf welcher Ebene die zentrale Konfiguration erfolgen soll. Dies ist global, auf Grundlage von Konfigurationsregeln und knotenspezifisch definierbar. Dabei ist zusätzlich eine Auditierung möglich.
Zum Monitoring und Konfigurationsmanagement setzt Rudder auf eine klassische Agent-Server-Umgebung. Der Agent-Einsatz ist obligatorisch. Der in C programmierte, leichtgewichtige Client ist nach Entwicklerangaben außerordentlich schnell: Die Verarbeitung von 100 Regeln dauert weniger als zehn Sekunden.
Der primäre Einsatzbereich von Rudder besteht bislang aus kleinen bis mittleren Infrastrukturen. Typische Implementierungen verwalten mehrere Hundert bis tausend Knoten. Über das API integrieren Sie die Umgebung in Ihre bestehende Monitoring-Umgebung. Ein Pluspunkt: Sie können über das Web-GUI auch anspruchsvolle Konfigurationen umsetzen. Außerdem hilft Rudder, ein Verständnis für die konkreten Zusammenhänge zu entwickeln. Vor diesem Hintergrund ergibt auch die Projektbezeichnung Sinn: Rudder agiert als zentrales Steuerruder in einer IT-Infrastruktur, und zwar auch dann, wenn einmal ein Richtungswechsel vonnöten sein sollte.
Allerdings unterliegt Rudder einigen Einschränkungen. Das Tool ist in zwei Varianten verfügbar: Neben Rudder Core, der Community-Edition, existiert eine Abo-Version. Beide Versionen basieren auf der gleichen Kernsoftware. Die kommerzielle Variante stellt zusätzliche Dienste und Funktionen zur Verfügung. Dies sind insbesondere:
- Patchmanagement und Schwachstellenbeurteilung, die das Sicherheitsmanagement verbessern.
- Eine erweiterte Unterstützung für Windows-Rechner sowie ältere Linux-Distributionen, um eine breitere Kompatibilität zu gewährleisten.
- Ein dedizierter Support einschließlich fachkundiger Anleitung und entsprechender Verfügbarkeit.
Rudder vereinfacht nicht nur das Konfigurationsmanagement, sondern verrät Ihnen auch über das Dashboard, ob beispielsweise sicherheitsrelevante Patches netzwerkweit ausgerollt sind – hier tritt die Fokussierung des Compliance-Bereichs hervor.
Bild 1: Ein erster Blick auf das Rudder-Dashboard zeigt, dass bei fast jedem fünften Knotendie Compliance nicht gewährleistet ist.
Erste Schritte
Das Herzstück der Rudder-Umgebung ist der Rudder-Server. Er verwaltet die Konfigurationen der Knoten. Aufseiten des Servers sind die Inventarisierungsdatenbank, die Datenbank für Konfigurationsregeln, die Compliance-Datenbank und Protokolle beheimatet. Über das Relay-Modul können Sie zudem Netzwerkbereiche explizit voneinander trennen, wofür es keines zweiten Servers bedarf.
Da die Rudder-Entwickler das Rad nicht neu erfinden wollten, sondern bei der Entwicklung bewusst auf bewährte Open-Source-Projekte setzten, läuft die Umgebung aktuell auf allen wichtigen Linux-Distributionen. Gleichwohl existieren auch experimentelle Builds für Solaris, FreeBSD, Android und macOS sowie eine Version für die ARM-Architektur.
Wenn Sie Rudder ohne größeren Aufwand einer Evaluation unterziehen wollen, richten Sie das Rudder-Repository auf Ihrem System ein und verwenden den Paketmanager für die Installation des Rudder-Servers:
wgethttps://repository.rudder.io/ tools/rudder-setup
chmod +x rudder-setup
./rudder-setup setup-server latest
Nachdem die Installation abgeschlossen ist, richten Sie ein Benutzerkonto ein. Am einfachsten ist es, den entsprechenden Befehl zu verwenden, um einen lokalen Admin-Benutzer zu erstellen:
rudder server create-user-u <Benutzername>
Sie müssen das Passwort zweimal angeben, anschließend wird der Benutzer erstellt. Damit ist Rudder grundsätzlich einsatzbereit und Sie können die erste Verbindung zum Server herstellen. Loggen Sie sich mit den zuvor verwendeten Credentials ein. Über das Webinterface prüfen Sie mit "Administration / Settings / General / Allowed Networks", ob die dort gelisteten Netzwerke alle Netzwerkadressen Ihrer Knoten umfassen. Standardmäßig enthält diese die angeschlossenen Netzwerke Ihres Servers. Damit ist die Einrichtung des Rudder-Servers abgeschlossen.
Im nächsten Schritt folgt die Installation der Agenten. Um einen Agenten auf einem Debian- oder Ubuntu-System zu installieren, führen Sie apt-get install rudder-agent aus. Als Nächstes konfigurieren Sie das Zusammenspiel mit dem Server:
rudder agent policy-server<IP-Adresse des Rudder-Servers>
Einige Minuten nach dem Start des Agenten sollte sich dieser beim Rudder-Server registrieren und über das Webinterface in der Rubrik "Nodes" auftauchen. Sie können aufseiten der Agenten mit dem Befehl rudder agent inventory auch einen Start und die Übermittlung des Status an den Server erzwingen. Dabei ist hervorzuheben, dass jeder Knoten beziehungsweise jeder Agent autark ist. Die Nodes nutzen die FusionInventory-Technologie [2], um relevante Informationen an den Server zu übermittelt. Dann beziehen diese die Policies vom Server und übermitteln per Syslog ihre Berichte. Aufseiten des Masters findet anschließend eine Kalkulation statt, ob die Compliance in Bezug auf die Ist- und Soll-Werte erfüllt ist. Der Server hat übrigens keinen Zugriff auf die Nodes.
Nachdem ein Agent seine Daten an den Server übermittelt hat, landet dieser zunächst in der Liste "Pending Nodes". Rudder unterscheidet grundsätzlich zwischen Accepted und Pending Nodes. Die Liste der ausstehenden Knoten präsentiert Ihnen eine Fülle von Detailinformationen zu den verschiedenen Systemen. Um eine Anfrage in das Monitoring zu übernehmen, aktivieren Sie das zugehörige Kontrollkästchen in der letzten Spalte. Mit einem Klick auf "Accept" erfolgt die Aufnahme der Knoten in die Rudder-Umgebung. In der Spalte "Directive" verrät Ihnen ein Klick auf das Lupensymbol, welche Regeln auf dem betreffenden System Anwendung finden.
Mit einem Klick auf einen Node-Eintrag rufen Sie die Details zu einem System ab. An diesem Punkt zeigt sich, dass Rudder auch auf Anwender zielt, die nicht zu den eingefleischten Administratoren zählen, denn eine NutriScore-ähnliche Bewertung verrät, wie es um die Compliance, die Verwundbarkeit und den Updatestatus bestellt ist. Weitere Details zu diesen Bewertungen rufen Sie über die zugehörigen Registerkarten ab.
Im Rahmen des Node-Managements bietet Rudder die Möglichkeit, Knoten zu gruppieren beziehungsweise zu kategorisieren. Typische Kategorien sind die Umgebung, die Applikation oder das Betriebssystem. Die zugehörigen Funktionen finden Sie im Menü unter "Node Management / Groups". Das Schöne dabei: Gruppen lassen sich dynamisch verwalten. Taucht ein neuer Knoten in der Umgebung auf, der einer der übergeordneten Gruppen entspricht, wird dieser automatisch hinzugefügt.
Bild 2: Das Regelwerk von Rudder: Hier legen Sie Regeln an und verwalten diese.
Regelbasierte Konfiguration
Für die Konfiguration der Knoten setzt Rudder auf ein spezifisches Konzept, das auf Direktiven, Techniken und globalen Einstellungen basiert. Bei den Techniken handelt es sich um eine Reihe von Vorgängen und Einstellungen, mit denen Sie ein bestimmtes Verhalten auf Ihren Knoten erreichen. Die Verwaltung erfolgt im Untermenü "Techniques". Dort finden Sie bei einer Neuinstallation verschiedene vordefinierte Sets, die beispielsweise der Konfiguration der Windows Firewall oder von Windows-SSH dienen. Auch CPU-Verwundbarkeiten sind in dieser Form implementiert. In der Kategorie "System settings" können Sie mit verschiedenen "Hardening packs" prüfen, ob aufseiten der Knoten AppArmor oder SELinux konfiguriert ist. Der Editor erlaubt außerdem das Anlegen neuer Konfigurationen.
Im Menü "Patch Management" verrät Ihnen Rudder, für welche Knoten Patches und Updates verfügbar sind. Welche dies konkret sind, ermittelt Rudder durch einen Vergleich der lokalen Daten mit den im zugehörigen Repository hinterlegten Informationen. Standardmäßig finden Updates automatisch per "apt update" ihren Weg auf die Systeme. In Form von Updatekampagnen können Sie die Details wie Ausführungszeitpunkt, Reboot-Verhalten et cetera definieren.
Ein wesentliches Element von Rudder sind Regeln. Diese kombinieren eine Gruppe von Rechnern mit einer Gruppe von Policy-Vorgaben. Die Regeln sind somit das Bindeglied zwischen dem Asset- und dem Configuration-Management. In der Regel verknüpfen Sie Direktiven mit Knoten. Dabei steht ein vordefinierter Satz an Direktiven bereit; gleichwohl ist auch das Anlegen eigener Konfigurationen möglich.
Über die Rudder-Menüleiste erfolgt der Zugriff auf das Securitymanagement. Dabei handelt es sich um das Rudder-CVE-Plug-in. Es listet für jeden Knoten eine Zusammenfassung der identifizierten Schwachstellen auf. Auch hier helfen farbigen Kennzeichnungen, den Schweregrad einzuordnen.
Bild 3: Die visuelle Bewertung von Compliance, Verwundbarkeit und Update-Status verrät auchweniger technisch versierten Anwendern, wie es um den Zustand eines Knotens bestellt ist.
Flexibel erweiterbar
Eine der Besonderheiten von Rudder ist seine modulare Architektur. Dank des Plug-in-Mechanismus lässt sich das Basissystem um zusätzliche Funktionen erweitern. Eine dieser Erweiterungen haben wir bereits kennengelernt. Über das gleichnamige Menü erfahren Sie, welche Module bereits installiert sind. Bezüglich der Installation gibt es Unterschiede zwischen der Core-Variante und der kommerziellen Version.
Preisgestaltung
Neben der Core-Version ist Rudder in zwei kommerziellen Abonnementvarianten verfügbar: Standard und Premium. Beide beinhalten die Module Konfigurations- und Patchverwaltung oder Sicherheitsmanagement. Sie unterscheiden sich in der garantierten Wartungsdauer und den Reaktionszeiten des Supports. Der Standardplan schließt eine Reaktionszeit von vier Stunden, eine Standard-SLA und die Bereitstellung von Workarounds ein.
Das Premium-Abonnement bietet zusätzlich Support per Slack oder Telefon sowie eine Premium-SLA. Die Kosten belaufen sich auf 80 bis 130 beziehungsweise 100 bis 150 Euro pro Knoten und Jahr. Die Entwickler stellen eine Testversion bereit, die ein einmonatiges Premium-Abonnement mit dem Zugang zu allen Funktionen und Plug-ins von Rudder umfasst. Weitere Details sind unter [3] abrufbar.
Wenn Sie ein Abo abschließen, können Sie über das Menü "Administration / Setup" Erweiterungen einspielen. Bei der Core-Variante erfolgt das manuell. Dazu laden Sie die gewünschte Erweiterung herunter und installieren diese mit:
rudder package install-file<package.rpkg>
Welche Plug-ins verfügbar sind, verrät Ihnen das Rudder-Repository [4]. Rudder verfügt außerdem über umfangreiche administrative Funktionen, mit denen Sie den Server und die Agenten, aber auch die Benutzer und weitere Systemvariablen managen. Mit "Allowed networks" bestimmen Sie zunächst, welche Netzwerkclients eine Verbindung zu dem Rudder-Server aufbauen können. Über die "Add a network"-Funktion ergänzen Sie die Voreinstellungen mit wenigen Mausklicks.
Die Einstellungen des Bereichs "Reporting mode" wirken sich auf die Berichtseinstellungen aus. Der Standardmodus sorgt dafür, dass Ihnen das Dashboard eine Fülle von Informationen präsentiert. Diese Ausgabe können Sie mit dem Modus "Non compliant only" deutlich reduzieren; dann erhalten Sie nur Hinweise, wenn der Agent eine Änderung vornimmt oder Fehler auf einem Knoten auftreten.
Die Agenten nehmen aufseiten der Knoten standardmäßig alle fünf Minuten einen Check vor. Dieses kurze Intervall erlaubt schnelle Reaktionen bei Änderungen der Zustandsbewertung. Bei kleineren und weniger stark beanspruchten Umgebungen mag eine deutliche Vergrößerung des Intervalls sinnvoll sein. Immer dann, wenn Sie Änderungen an der Knotenumgebung vornehmen, erfolgt ein Backup, das die Agenten unter "/var/rudder/modified-files/" speichern. Alle geänderten Dateien bleiben standardmäßig 30 Tagen erhalten. Unter "Modified files backup" ist eine Anpassung dieses Werts möglich.
Selbstredend verfügt Rudder über ein integriertes Benutzermanagement. Darauf greifen Sie über das Menü "Administration / User management" zu. Neben dem Administrator können Sie mit "Create" weitere Benutzer anlegen und so die vielfältigen Aufgaben delegieren.
Bild 4: Über das Webinterface gestaltet sich die Server-Konfiguration einfach.
Fazit
Rudder bietet eine beeindruckende Funktionalität und vielfältige Anwendungsbereiche. Administratoren, die primär nach einer Dashboard-Umgebung Ausschau halten, die ihnen einen leicht verständlichen Zustandsbericht der Umgebung liefert, sind mit Rudder gut bedient. Auch in Sachen Patchmanagement leistet das Tool gute Dienste. Rudder ist nicht nur als Audit-Tool sinnvoll nutzbar, sondern vereinfacht auch die Standardisierung der Knotenkonfiguration.
(dr)
Link-Codes