
Vorwort
Unsere „Freundschaft“ begann vor zwei Jahren. Ich kam an einen neuen Arbeitsplatz, wo der vorherige Admin mir diese Software im Erbe hinterlassen hat. Im Internet fand ich außer der offiziellen Dokumentation nichts. Selbst jetzt, wenn man „rudder“ googelt, werden in 99 % der Fälle Schiffssteuerungen und Quadrocopter angezeigt. Ich fand einen Zugang zu ihm. Da die Community dieser Software unbedeutend klein ist, habe ich beschlossen, meine Erfahrungen und Stolpersteine zu teilen. Ich denke, es wird für jemanden nützlich sein.
Also, Rudder
Rudder ist ein Open-Source-Tool zur Auditierung und Verwaltung von Konfigurationen, das hilft, die Systemkonfiguration zu automatisieren. Es basiert auf dem Prinzip, einen Agenten auf jedem Endbenutzer zu installieren. Durch eine benutzerfreundliche Oberfläche können wir sehen, inwieweit unsere Infrastruktur allen festgelegten Richtlinien entspricht.
Verwendung
Nachfolgend werde ich auflisten, wofür ich Rudder verwende.
Datei- und Konfigurationsüberwachung: .\/ssh\/authorized_keys ; \/etc\/hosts ; iptables ; (und weiter, wohin die Fantasie führt)
Überwachung installierter Pakete: zabbix.agent oder eine andere Software
Serverinstallation
Vor ein paar Tagen habe ich von Version 5 auf 6.1 aktualisiert, alles verlief erfolgreich. Unten werden die Befehle für Debian\/Ubuntu dargestellt, es gibt jedoch auch Unterstützung für: und .
Ich werde die Installation in Spoilern verstecken, um euch nicht abzulenken.
Spoiler
Abhängigkeiten
Für den rudder-server wird Java RE mindestens in Version 8 benötigt, kann aus dem Standard-Repository installiert werden:
Prüfen wir, ob es nicht installiert ist
java -versionwenn die Ausgabe
-bash: java: Befehl nicht gefundendann installieren wir es
apt install default-jreServer
Wir importieren den Schlüssel
wget --quiet -O- "https:\/\/repository.rudder.io\/apt\/rudder_apt_key.pub" | sudo apt-key add -Hier ist der Fingerabdruck
pub 4096R\/474A19E8 2011-12-15 Rudder Project (release key)
Schlüsselfingerabdruck = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Da wir kein kostenpflichtiges Abonnement haben, fügen wir das folgende Repository hinzu
echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.listWir aktualisieren die Repository-Liste und installieren den Server
apt update
apt install rudder-server-rootWir erstellen den Benutzer admin
rudder server create-user -u admin -p "Ihr Passwort"In Zukunft können wir die Benutzer über die Konfiguration verwalten
Alles, der Server ist bereit.
Serverkonfiguration
Jetzt müssen wir die IP-Adressen der Agenten oder ein gesamtes Subnetz im Rudder-Agent hinzufügen, orientiert an der Sicherheitsrichtlinie.
Einstellungen —> Allgemein

Im Feld „Add a network“ geben wir die Adresse und die Maske im Format x.x.x.x/xx ein. Um den Zugriff von allen Adressen des internen Netzwerks zu ermöglichen (sofern dies ein Testnetz ist und Sie sich hinter einem NAT befinden), geben wir ein: 0.0.0.0/0
Wichtig — Nach dem Hinzufügen der IP-Adresse nicht vergessen, auf Änderungen speichern zu klicken, andernfalls wird nichts gespeichert.
Ports
Öffnen Sie die folgenden Ports auf dem Server
443 — tcp
5309 — tcp
514 — udp
Die ursprüngliche Konfiguration des Servers ist geklärt.
Agent-Installation
Spoiler
Schlüssel hinzufügen
wget --quiet -O- "https:\/\/repository.rudder.io\/apt\/rudder_apt_key.pub" | sudo apt-key add -Schlüssel-Fingerprint
pub 4096R\/474A19E8 2011-12-15 Rudder Project (release key)
Schlüsselfingerabdruck = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Repository hinzufügen
echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.listAgent installieren
apt update
apt install rudder-agentAgent konfigurieren
Geben wir der Agent den IP-Adresse des Policy-Servers an
rudder agent policy-server #Ohne Klammern. Es kann auch ein Domänenname verwendet werden Mit dem folgenden Befehl senden wir eine Anfrage zur Hinzufügung des neuen Agents zum Server, nach ein paar Minuten erscheint er in der Liste der neuen Agents. Wie man ihn hinzufügt, erkläre ich im nächsten Abschnitt.
rudder agent inventoryWir können den Agent auch zwangsweise starten, und er wird die Anfrage sofort senden
rudder agent runUnser Agent ist konfiguriert, gehen wir weiter.
Agenten hinzufügen
Einloggen
https://127.0.0.1/rudder/index.html

Im Abschnitt „Accept new nodes“ erscheint Ihr Agent, setzen Sie das Häkchen und klicken Sie auf Akzeptieren

Es dauert etwas, bis das System den Server auf Konformität überprüft hat.
Erstellung von Servergruppen
Lassen Sie uns eine Gruppe erstellen (was für ein Spaß), ich habe keine Ahnung, warum die Entwickler eine so mühselige Gruppenbildung gemacht haben, aber wie ich verstanden habe, geht es nicht anders. Wechseln Sie zum Abschnitt Node management -> Groups und klicken Sie auf Erstellen, wählen Sie die statische Gruppe und den Namen aus.

Filtern Sie den benötigten Server nach besonderen Merkmalen, zum Beispiel nach IP-Adresse, und speichern Sie ihn.

Die Gruppe ist konfiguriert.
Regelkonfiguration
Wechseln Sie zu Configuration policy → Rules und erstellen Sie eine neue Regel.

Fügen wir die zuvor vorbereitete Gruppe hinzu (das kann auch später gemacht werden).

Und formulieren wir eine neue Richtlinie.

Lassen Sie uns eine Richtlinie zum Hinzufügen von öffentlichen Schlüsseln in .ssh/authorized_keys erstellen. Ich nutze dies, wenn ein neuer Mitarbeiter eingestellt wird oder zur Vorsicht, falls jemand versehentlich meinen Schlüssel löscht.
Wechseln Sie zu Configuration policy → Directives, auf der linken Seite sehen wir „Directive library“. Finden Sie „Remote access → SSH authorised keys“, auf der rechten Seite klicken Sie auf Create Directive.
Geben Sie die Benutzerdaten ein und fügen Sie seinen Schlüssel hinzu. Wählen Sie dann die Anwendungspolitik aus.
Global — Standardmäßig festgelegte Richtlinie.
Enforce — Auf den ausgewählten Servern ausführen.
Audit — Führen Sie eine Prüfung durch und teilen Sie mit, bei welchen Kunden es Schlüssel gibt.

Wir geben unbedingt unsere Regel an.

Dann speichern wir und alles ist bereit.
Überprüfen

Schlüssel erfolgreich hinzugefügt.
Anreize
Der Agent gibt vollständige Informationen über den Server. Listen installierter Pakete, Schnittstellen, geöffnete Ports und vieles mehr, was Sie im Screenshot unten sehen können.

Software kann nicht nur auf Linux, sondern auch auf Windows installiert und kontrolliert werden; das Letztere habe ich nicht getestet, da es nicht notwendig war.
Vom Autor
Sie werden sich fragen, warum das Rad neu erfunden werden soll, wenn es bereits Ansible und Puppet gibt?
Ich antworte: Ansible hat Nachteile, zum Beispiel sehen wir nicht, in welchem Zustand sich die aktuelle Konfiguration befindet, oder es gibt die allbekannte Situation, wenn man eine Rolle oder ein Playbook startet und Fehlermeldungen über Abstürze erhält, und man fängt an, auf den Server zu gehen und schaut, welches Paket wohin aktualisiert wurde. Mit Puppet habe ich einfach nicht gearbeitet.
Gibt es Nachteile bei Rudder? Sehr viele... Angefangen von der Tatsache, dass die Agenten ausfallen und neu installiert werden müssen oder der Befehl rudder reset verwendet werden muss. (Aber übrigens habe ich das in Version 6 noch nicht gesehen), bis hin zu extrem komplizierten Einstellungen und einer unlogischen Benutzeroberfläche.
Gibt es Vorteile? Und es gibt viele Vorteile: Im Gegensatz zum bekannten Ansible haben wir eine Weboberfläche, in der der von uns angewandte Compliance sichtbar ist. Beispielsweise, ob Ports in die Welt geöffnet sind, in welchem Zustand die Firewall ist, ob Sicherheitsagenten oder andere Tools installiert sind.
Diese Software eignet sich hervorragend für die Abteilung für Informationssicherheit, da der Zustand der Infrastruktur immer im Blickfeld ist, und wenn eine Regel rot leuchtet, ist das ein Grund, den Server zu besuchen. Wie ich bereits sagte, benutze ich Rudder seit zwei Jahren, und wenn man sich ein wenig damit beschäftigt, wird das Leben besser. Das Schwierigste an einer großen Infrastruktur ist, dass man nicht mehr weiß, in welchem Zustand sich der Server befindet, ob der Junior die Installation der Sicherheitsagenten verpasst hat oder ob iptables richtig konfiguriert sind. Rudder hilft Ihnen dabei, über alle Ereignisse informiert zu sein. Informiert, also bewaffnet! )
P.S. Es ist viel mehr geworden, als ich geplant hatte; ich werde nicht beschreiben, wie man Pakete installiert. Wenn es jedoch Anfragen gibt, schreibe ich einen zweiten Teil.
P.S.S Der Artikel hat informativen Charakter, ich wollte es teilen, da es im Internet sehr wenig Informationen gibt. Vielleicht ist es für jemanden interessant. Einen schönen Tag, liebe Freunde )
Als Werbung
Epische Server sind oder Windows mit leistungsstarken Prozessoren der AMD EPYC-Serie und sehr schnellen NVMe-Disks von Intel. Beeilen Sie sich zu bestellen!

Quelle: habr.com
