
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
