Vorwort
Unsere „Freundschaft“ begann vor zwei Jahren. Ich bin an einen neuen Arbeitsplatz gekommen, wo mir der vorherige Administrator diese Software ganz nebenbei als Erbe hinterlassen hat. Außer der offiziellen Dokumentation konnte ich im Internet nichts finden. Auch jetzt noch, wenn man „Ruder“ googelt, findet man in 99 % der Fälle: Schiffsruder und Quadrocopter. Es gelang mir, einen Zugang zu ihm zu finden. Da die Community dieser Software vernachlässigbar ist, habe ich beschlossen, meine Erfahrungen und meinen Gewinn zu teilen. Ich denke, das wird für jemanden nützlich sein.
Also Ruder
Rudder ist ein Open-Source-Dienstprogramm zur Überwachung und Konfigurationsverwaltung, das bei der Automatisierung der Systemkonfiguration hilft. Es funktioniert nach dem Prinzip, für jeden Endbenutzer einen Agenten zu installieren. Über eine praktische Schnittstelle können wir überwachen, inwieweit unsere Infrastruktur allen festgelegten Richtlinien entspricht.
Verwenden
Nachfolgend werde ich auflisten, wofür ich Rudder verwende.
-
Kontrolle von Dateien und Konfigurationen: ./ssh/authorized_keys ; /etc/hosts ; iptables; (und wohin dann deine Fantasie führt)
-
Kontrolle der installierten Pakete: zabbix.agent oder jede andere Software
Serverinstallation
Kürzlich habe ich von Version 5 auf 6.1 aktualisiert, alles hat gut geklappt. Nachfolgend sind die Befehle für Deban/Ubuntu aufgeführt, es gibt jedoch auch Unterstützung:
Um Sie nicht abzulenken, verstecke ich die Installation in Spoilern.
Spoiler
Abhängigkeiten
Rudder-Server erfordert Java RE mindestens Version 8, kann aus dem Standard-Repository installiert werden:
Überprüfen Sie, ob es installiert ist
java -version
wenn die Schlussfolgerung
-bash: java: command not found
dann installieren
apt install default-jre
Server
Schlüssel importieren
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Hier ist der Druck selbst
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 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 Repositorys und installieren Sie den Server
apt update
apt install rudder-server-root
Erstellen Sie einen Benutzeradministrator
rudder server create-user -u admin -p "Ваш Пароль"
In Zukunft können wir Benutzer über die Konfiguration verwalten
Das war's, der Server ist bereit.
Server-Tuning
Jetzt müssen Sie die IP-Adressen der Agenten oder eines gesamten Subnetzes zum Ruder-Agenten hinzufügen. Wir konzentrieren uns auf die Sicherheitsrichtlinie.
Einstellungen -> Allgemein
Geben Sie im Feld „Netzwerk hinzufügen“ die Adresse und die Maske im Format xxxx/xx ein. Um den Zugriff von allen Adressen des internen Netzwerks zu ermöglichen (es sei denn, es handelt sich natürlich um ein Testnetzwerk und Sie befinden sich hinter NAT), geben Sie Folgendes ein: 0.0.0.0/0
Wichtig: Vergessen Sie nach dem Hinzufügen der IP-Adresse nicht, auf Änderungen speichern 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 Ersteinrichtung des Servers geklärt.
Agenteninstallation
Spoiler
Einen Schlüssel hinzufügen
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Schlüsselfingerabdruck
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
Hinzufügen eines Repositorys
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
Installieren des Agenten
apt update
apt install rudder-agent
Agenten-Setup
Wir geben dem Agenten die IP-Adresse des Richtlinienservers an
rudder agent policy-server <rudder server ip or hostname> #Без скобок. Можно также использовать доменное имя
Durch Ausführen des folgenden Befehls senden wir eine Anfrage zum Hinzufügen eines neuen Agenten zum Server. In ein paar Minuten wird er in der Liste der neuen Agenten angezeigt. Ich werde im nächsten Abschnitt erklären, wie man ihn hinzufügt
rudder agent inventory
Wir können den Agenten auch zum Starten zwingen und er sendet die Anfrage sofort
rudder agent run
Unser Agent ist eingerichtet, los geht's.
Agenten hinzufügen
Anmeldung
https://127.0.0.1/rudder/index.html
Ihr Agent wird im Abschnitt „Neue Knoten akzeptieren“ angezeigt. Aktivieren Sie das Kontrollkästchen und klicken Sie auf „Akzeptieren“.
Es sollte ein wenig dauern, bis das System den Server auf Konformität überprüft
Servergruppen erstellen
Lasst uns eine Gruppe erstellen (das ist immer noch Unterhaltung), keine Ahnung, warum die Entwickler eine so abscheuliche Gruppenbildung vorgenommen haben, aber so wie ich es verstehe, gibt es keinen anderen Weg. Gehen Sie zum Abschnitt Knotenverwaltung -> Gruppen, klicken Sie auf Erstellen und wählen Sie eine statische Gruppe und einen Namen aus.
Wir filtern den benötigten Server nach Besonderheiten, zum Beispiel nach IP-Adresse, und speichern ihn
Die Gruppe ist eingerichtet.
Regeln aufstellen
Gehen Sie zu Konfigurationsrichtlinie → Regeln und erstellen Sie eine neue Regel
Fügen Sie die zuvor vorbereitete Gruppe hinzu (dies kann später erfolgen)
Und wir bilden eine neue Richtlinie
Erstellen wir eine Anweisung zum Hinzufügen öffentlicher Schlüssel zu .ssh/authorized_keys. Ich nutze dies, wenn ein neuer Mitarbeiter ausscheidet, oder zur Rückversicherung, wenn mir zum Beispiel jemand aus Versehen den Schlüssel herausschneidet.
Gehen Sie zu Konfigurationsrichtlinie → Richtlinien. Auf der linken Seite sehen wir „Richtlinienbibliothek“. Suchen Sie nach „Remotezugriff → SSH-autorisierte Schlüssel“ und klicken Sie rechts auf „Anweisung erstellen“.
Wir geben Informationen über den Benutzer ein und fügen seinen Schlüssel hinzu. Wählen Sie als Nächstes die Anwendungsrichtlinie aus
-
Global – Standardrichtlinie
-
Erzwingen – Auf ausgewählten Servern ausführen
-
Audit – Führt ein Audit durch und teilt mit, welche Kunden den Schlüssel haben
Geben Sie unbedingt unsere Regel an
Anschließend speichern und fertig.
Überprüfung
Schlüssel erfolgreich hinzugefügt
Gebäck
Der Agent stellt vollständige Informationen über den Server bereit. Listen der installierten Pakete, Schnittstellen, offenen Ports und vieles mehr, die Sie im Screenshot unten sehen können
Sie können die Software auch nicht nur unter Linux, sondern auch unter Windows installieren und steuern, letzteres habe ich nicht überprüft, es bestand keine Notwendigkeit.
Vom Autor
Sie fragen sich vielleicht: Warum das Rad neu erfinden, wenn Ansible und Puppet schon vor langer Zeit erfunden wurden?
Ich antworte: Ansible hat einige Nachteile, zum Beispiel sehen wir nicht, in welchem Zustand sich diese Konfiguration gerade befindet, oder es kommt die bekannte Situation vor, wenn Sie eine Rolle oder ein Playbook starten und Absturzfehler auftreten und Sie anfangen, auf den Server zu klettern und nachzuschauen Welches Paket wurde wo aktualisiert? Und ich habe einfach nicht mit Puppen gearbeitet.
Hat Rudder irgendwelche Nachteile? Eine Menge. Angefangen bei der Tatsache, dass Agenten herunterfallen und Sie sie neu installieren oder den Ruder-Reset-Befehl verwenden müssen. (Aber das habe ich übrigens in Version 6 noch nicht gesehen), was zu einem äußerst komplexen Setup und einer unlogischen Benutzeroberfläche führt.
Gibt es irgendwelche Vorteile? Und es gibt auch jede Menge Vorteile: Im Gegensatz zum bekannten Ansible verfügen wir über eine Weboberfläche, in der Sie die von uns angewendete Compliance einsehen können. Stehen zum Beispiel die Ports nach außen, wie ist der Zustand der Firewall, sind Sicherheitsagenten installiert oder andere Gadgets?
Diese Software ist perfekt für die Informationssicherheitsabteilung, da Sie den Zustand der Infrastruktur immer vor Augen haben und wenn eine der Regeln rot aufleuchtet, ist dies ein Grund, den Server zu besuchen. Wie gesagt, ich benutze Rudder jetzt seit 2 Jahren und wenn man es ein wenig raucht, wird das Leben besser. Das Schwierigste an einer großen Infrastruktur ist, dass Sie sich nicht erinnern können, in welchem Zustand sich der Server befindet, ob June die Installation von Sicherheitsagenten verpasst hat oder ob er iptables richtig konfiguriert hat, aber Rudder hilft Ihnen dabei, über alle Ereignisse auf dem Laufenden zu bleiben. Bewusst bedeutet bewaffnet! )
PS Es ist viel mehr geworden, als ich geplant hatte. Ich werde nicht beschreiben, wie man Pakete installiert. Wenn plötzlich Anfragen auftreten, werde ich einen zweiten Teil schreiben.
PSS: Der Artikel dient Informationszwecken. Ich habe beschlossen, ihn zu teilen, da es im Internet nur sehr wenige Informationen gibt. Vielleicht ist das für jemanden interessant. Habt einen schönen Tag, liebe Freunde)
Über die Rechte der Werbung
Epische Server - Das
Source: habr.com