Installation und Betrieb von 'Rudder'

Installation und Betrieb von 'Rudder'

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: RHEL/CentOS und Sles.

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 -version

wenn die Ausgabe

-bash: java: Befehl nicht gefunden

dann installieren wir es

apt install default-jre

Server

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 19E8

Da 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.list

Wir aktualisieren die Repository-Liste und installieren den Server

apt update
apt install rudder-server-root

Wir 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

Installation und Betrieb von 'Rudder'

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 19E8

Repository hinzufügen

echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.list

Agent installieren

apt update
apt install rudder-agent

Agent 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 inventory

Wir können den Agent auch zwangsweise starten, und er wird die Anfrage sofort senden

rudder agent run

Unser Agent ist konfiguriert, gehen wir weiter.

Agenten hinzufügen

Einloggen

https://127.0.0.1/rudder/index.html

Installation und Betrieb von 'Rudder'

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

Installation und Betrieb von 'Rudder'

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.

Installation und Betrieb von 'Rudder'

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

Installation und Betrieb von 'Rudder'

Die Gruppe ist konfiguriert.

Regelkonfiguration

Wechseln Sie zu Configuration policy → Rules und erstellen Sie eine neue Regel.

Installation und Betrieb von 'Rudder'

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

Installation und Betrieb von 'Rudder'

Und formulieren wir eine neue Richtlinie.

Installation und Betrieb von 'Rudder'

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.

Installation und Betrieb von 'Rudder'

Wir geben unbedingt unsere Regel an.

Installation und Betrieb von 'Rudder'

Dann speichern wir und alles ist bereit.

Überprüfen

Installation und Betrieb von 'Rudder'

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.

Installation und Betrieb von 'Rudder'

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 VPS auf Linux oder Windows mit leistungsstarken Prozessoren der AMD EPYC-Serie und sehr schnellen NVMe-Disks von Intel. Beeilen Sie sich zu bestellen!

Installation und Betrieb von 'Rudder'

Quelle: habr.com

60GB SSD 8Gb DDR4