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 unkompliziert hinterlassen hat. Im Internet war außer der offiziellen Dokumentation nichts zu finden. Selbst heute, wenn man nach „rudder“ sucht, erhält man zu 99 % Ergebnisse über Schiffssteuerräder und Drohnen. Ich fand jedoch einen Zugang zu ihr. Da die Community dieser Software äußerst gering ist, beschloss ich, meine Erfahrungen und Fallstricke zu teilen. Ich denke, es wird für einige nützlich sein.

Also, Rudder

Rudder ist ein Open-Source-Tool zur Auditierung und Verwaltung von Konfigurationen, das dabei hilft, die Systemkonfiguration zu automatisieren. Es funktioniert, indem ein Agent auf jedem Endgerät installiert wird. Über eine benutzerfreundliche Oberfläche können wir beobachten, wie gut unsere Infrastruktur allen festgelegten Richtlinien entspricht.

Nutzung

Im Folgenden liste ich auf, wofür ich Rudder nutze.

  • Überwachung von Dateien und Konfigurationen: ./ssh/authorized_keys; /etc/hosts; iptables; (und weiter, wo die Fantasie hinführt)

  • Überwachung installierter Pakete: zabbix.agent oder jede andere Software

Serverinstallation

Kürzlich habe ich von Version 5 auf 6.1 aktualisiert, alles verlief erfolgreich. Unten werden die Befehle für Debian/Ubuntu dargestellt, aber es gibt auch Unterstützung für: RHEL/CentOS und Sles.

Ich werde die Installation in Spoilern verstecken, um Sie nicht abzulenken.

Spoiler

Abhängigkeiten

Für den rudder-server wird mindestens Java RE Version 8 benötigt, dies kann aus dem Standard-Repository installiert werden:

Prüfen wir, ob es installiert ist

java -version

wenn die Ausgabe

-bash: java: command not found

dann installieren wir

apt install default-jre

Server

Importieren Sie 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-Schlüssel) 
      Schlüssel-Fingerabdruck = 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

Aktualisieren Sie die Liste der Repositories und installieren Sie den Server

apt update
apt install rudder-server-root

Erstellen Sie einen Benutzer admin

rudder server create-user -u admin -p "Ihr Passwort"

In Zukunft können wir die Benutzer über die Konfiguration verwalten

Alles klar, der Server ist bereit.

Serverkonfiguration

Jetzt müssen wir die IP-Adressen der Agenten oder ein ganzes Subnetz zum Rudder-Agenten hinzufügen, orientieren Sie sich an der Sicherheitsrichtlinie.

Einstellungen —> Allgemein

Installation und Betrieb von „Rudder“

Im Feld „Add a network“ tragen Sie die Adresse und die Maske im Format x.x.x.x/xx ein. Um den Zugriff von allen Adressen des internen Netzwerks zu erlauben (sofern es sich um ein Testnetz handelt und Sie sich hinter NAT befinden), geben Sie Folgendes ein: 0.0.0.0/0

Wichtig — Vergessen Sie nach dem Hinzufügen der IP-Adresse nicht, auf Save changes zu klicken, da sonst nichts gespeichert wird.

Ports

Öffnen Sie die folgenden Ports auf dem Server

  • 443 — tcp

  • 5309 — tcp

  • 514 — udp

Wir haben die anfängliche Serverkonfiguration abgeschlossen.

Installation des Agents

Spoiler

Schlüssel hinzufügen

wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -

Schlüssel-Fingerabdruck

pub  4096R/474A19E8 2011-12-15 Rudder Project (Release-Schlüssel) 
      Schlüssel-Fingerabdruck = 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 Sie die IP-Adresse des Policy-Servers für den Agenten an

rudder agent policy-server  #ohne Klammern. Es kann auch der Domänenname verwendet werden. 

Mit dem folgenden Befehl senden wir eine Anfrage zur Hinzufügung eines neuen Agents an den Server. Nach ein paar Minuten wird er in der Liste der neuen Agents erscheinen; wie man hinzufügt, erkläre ich im nächsten Abschnitt.

rudder agent inventory

Außerdem können wir den Agenten manuell starten, um die Anfrage sofort zu senden.

rudder agent run

Unser Agent ist konfiguriert, machen wir weiter.

Hinzufügen von Agents

Einloggen

https://127.0.0.1/rudder/index.html

Installation und Betrieb von „Rudder“

Im Abschnitt „Accept new nodes“ wird Ihr Agent angezeigt. Setzen Sie ein Häkchen und klicken Sie auf Accept.

Installation und Betrieb von „Rudder“

Es wird eine Weile dauern, bis das System den Server auf Übereinstimmung überprüft.

Erstellung von Servergruppen.

Wir erstellen eine Gruppe (eine interessante Aufgabe), ich habe keine Ahnung, warum die Entwickler eine so komplizierte Gruppenerstellung eingeführt haben, aber wie ich verstanden habe, geht es nicht anders. Gehen Sie zu dem Abschnitt Node management -> Groups und klicken Sie auf Create, wählen Sie eine statische Gruppe und einen Namen.

Installation und Betrieb von „Rudder“

Wir filtern den benötigten Server nach speziellen Merkmalen, zum Beispiel nach IP-Adresse, und speichern ihn.

Installation und Betrieb von „Rudder“

Die Gruppe ist konfiguriert.

Regelkonfiguration.

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

Installation und Betrieb von „Rudder“

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

Installation und Betrieb von „Rudder“

Und wir erstellen eine neue Direktive.

Installation und Betrieb von „Rudder“

Wir erstellen eine Direktive zum Hinzufügen von öffentlichen Schlüsseln zu .ssh/authorized_keys. Ich benutze dies im Falle eines neuen Mitarbeiters oder zur Sicherheit, falls jemand versehentlich meinen Schlüssel löscht.

Gehen Sie zu Configuration policy → Directives, auf der linken Seite sehen wir die "Directive library". Suchen Sie nach "Remote access → SSH authorised keys" und klicken Sie rechts auf Create Directive.

Geben Sie die Benutzerdetails ein und fügen Sie seinen Schlüssel hinzu. Dann wählen Sie die Anwendungspolitik aus.

  • Global — Die standardmäßig festgelegte Politik.

  • Enforce — Ausführen auf den ausgewählten Servern.

  • Audit — Führen Sie eine Überprüfung durch und erfahren Sie, bei welchen Kunden es Schlüssel gibt.

Installation und Betrieb von „Rudder“

Bitte geben Sie unsere Regel an.

Installation und Betrieb von „Rudder“

Dann speichern wir und alles ist bereit.

Wir überprüfen.

Installation und Betrieb von „Rudder“

Schlüssel erfolgreich hinzugefügt.

Extras

Der Agent liefert vollständige Informationen über den Server. Listen installierter Pakete, Schnittstellen, geöffnete Ports und vieles mehr, was Sie auf dem Screenshot unten sehen können.

Installation und Betrieb von „Rudder“

Es ist auch möglich, Software nicht nur auf Linux, sondern auch auf Windows zu installieren und zu steuern, letzteres habe ich nicht getestet, da ich dafür keine Notwendigkeit hatte.

Vom Autor

Sie fragen sich wahrscheinlich, 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 Konfiguration gerade befindet, oder die bekannte Situation, wenn man eine Rolle oder ein Playbook startet und Fehler über einen Absturz auftreten, und man dann auf den Server gehen muss, um zu sehen, welches Paket wo aktualisiert wurde. Mit Puppet habe ich einfach nicht gearbeitet.

Gibt es Nachteile bei Rudder? Ja, einige ... Angefangen damit, dass Agenten ausfallen und neu installiert oder mit dem Befehl rudder reset verwendet werden müssen. (Übrigens habe ich das in Version 6 noch nicht gesehen), bis hin zu der extrem komplizierten Konfiguration und der unlogischen Benutzeroberfläche.

Und gibt es Vorteile? Auch die gibt es in Hülle und Fülle: Im Gegensatz zu dem allgemein bekannten Ansible haben wir eine Weboberfläche, in der wir die von uns angewandten Compliance-Vorgaben sehen können. Zum Beispiel – sind Ports nach außen offen, wie steht es um die Firewall, sind Sicherheitsagenten oder andere Tools installiert?

Diese Software ist hervorragend für die Abteilung für Informationssicherheit geeignet, da der Zustand der Infrastruktur stets im Blickfeld bleibt, und wenn eine der Einstellungen rot leuchtet, ist das ein Grund, den Server zu überprüfen. Wie gesagt, ich benutze Rudder nun schon seit zwei Jahren, und wenn man sich etwas damit beschäftigt, wird das Leben einfacher. Das größte Problem in einer großen Infrastruktur ist, dass man sich nicht mehr erinnert, in welchem Zustand der Server ist, ob ein Junior die Installation der Sicherheitsagenten verpasst hat oder ob die iptables richtig konfiguriert sind. Rudder hilft Ihnen, über alle Vorgänge informiert zu bleiben. Informiert zu sein, bedeutet gewappnet zu sein! )

P.S. Es kam viel mehr heraus, als ich geplant hatte. Ich werde nicht beschreiben, wie man Pakete installiert. Sollten Anfragen auftauchen, schreibe ich einen zweiten Teil.

P.S.S. Der Artikel dient nur zu Informationszwecken. Ich wollte meine Erkenntnisse teilen, da es im Internet sehr wenig Informationen dazu gibt. Vielleicht interessiert es ja jemanden. Ich wünsche Ihnen einen angenehmen Tag, liebe Freunde :)

Im Auftrag der Werbung

Epische Server — ist VPS auf Linux oder Windows mit leistungsstarken AMD EPYC Prozessoren und sehr schnellen Intel NVMe SSDs. Schnell bestellen!

Installation und Betrieb von „Rudder“

Quelle: habr.com

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster