
Voorwoord
Onze ‘vriendschap’ begon twee jaar geleden. Ik kwam op een nieuwe werkplek waar de vorige admin deze software nonchalant aan mij had nagelaten. Op internet kon ik behalve de officiële documentatie niets vinden. Zelfs nu, als je ‘rudder’ googelt, krijg je in 99% van de gevallen resultaten over scheepstuigen en drones. Ik heb een manier gevonden om ermee om te gaan. Aangezien de community van deze software enorm klein is, besloot ik mijn ervaringen en valkuilen te delen. Ik denk dat dit voor iemand nuttig zal zijn.
Dus, Rudder
Rudder is een open source tool voor audit en configuratiebeheer die helpt bij het automatiseren van systeembesturing. Het werkt volgens het principe van het installeren van een agent op elke eindgebruiker. Via een gebruiksvriendelijke interface kunnen we zien in hoeverre onze infrastructuur voldoet aan alle gestelde beleidslijnen.
Gebruik van
Hieronder som ik op waarvoor ik Rudder gebruik.
Bestands- en configuratiecontrole: \/ssh\/authorized_keys ; \/etc\/hosts ; iptables ; (en de rest afhankelijk van de fantasie)
Controle van geïnstalleerde pakketten: zabbix.agent of andere software
Serverinstallatie
Onlangs ben ik geüpdatet van versie 5 naar 6.1, alles ging succesvol. Hieronder worden de commando's voor Debian/Ubuntu weergegeven, maar er is ook ondersteuning voor: en .
Ik verberg de installatie in spoilers, zodat ik je niet afleid.
Spoiler
Afhankelijkheden
Voor rudder-server is minimaal Java RE versie 8 vereist, het kan worden geïnstalleerd vanuit de standaardrepository:
Controleer of het al is geïnstalleerd
java -versionals de uitvoer
-bash: java: command not founddan installeren we
apt install default-jreServer
We importeren de sleutel
wget --quiet -O- "https:\/\/repository.rudder.io\/apt\/rudder_apt_key.pub" | sudo apt-key add -Hier is de eigenlijke vingerafdruk
pub 4096R\/474A19E8 2011-12-15 Rudder Project (release key)
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Aangezien we geen betaald abonnement hebben, voegen we de volgende repository toe
echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.listWe updaten de lijst met repositories en installeren de server
apt update
apt install rudder-server-rootWe creëren de gebruiker admin
rudder server create-user -u admin -p "Uw Wachtwoord"In de toekomst kunnen we gebruikers beheren via de configuratie
Dat is het, de server is klaar.
Configuratie van de server
Nu moeten we de IP-adressen van de agents of een volledig subnet aan de rudder-agent toevoegen, daarbij rekening houdend met het beveiligingsbeleid.
Instellingen —> Algemeen

Vul het adres en het netwerkmasker in het veld «Add a network» in het formaat x.x.x.x/xx. Om toegang vanaf alle adressen in het interne netwerk toe te staan (als het natuurlijk een testnetwerk is en je achter NAT zit), vul je in: 0.0.0.0/0
Belangrijk — vergeet niet op Save changes te drukken na het toevoegen van het ip-adres, anders wordt er niets opgeslagen.
Poorten
Op de server openen we de volgende poorten
443 — tcp
5309 — tcp
514 — udp
We hebben de initiële configuratie van de server doorgenomen.
Agent installatie
Spoiler
We voegen een sleutel toe
wget --quiet -O- "https:\/\/repository.rudder.io\/apt\/rudder_apt_key.pub" | sudo apt-key add -Sleutelfingerprint
pub 4096R\/474A19E8 2011-12-15 Rudder Project (release key)
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8We voegen de repository toe
echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.listWe installeren de agent
apt update
apt install rudder-agentConfiguratie van de agent
Laten we de ip-adres van de beleidsserver aan de agent opgeven
rudder agent policy-server #Zonder haakjes. Een domeinnaam kan ook worden gebruikt. Door de volgende opdracht uit te voeren, sturen we een aanvraag om de nieuwe agent op de server toe te voegen, na een paar minuten verschijnt deze in de lijst met nieuwe agents, hoe je dit toevoegt leg ik uit in het volgende gedeelte
rudder agent inventoryWe kunnen de agent ook handmatig starten en hij zal onmiddellijk een aanvraag indienen
rudder agent runOnze agent is geconfigureerd, laten we verder gaan.
Agents toevoegen
We loggen in
https://127.0.0.1/rudder/index.html

In de sectie «Accept new nodes» verschijnt je agent, vink het vakje aan en klik op Accept

Het kan even duren voordat het systeem de server op compatibiliteit controleert
Groepen servers aanmaken
Laten we een groep aanmaken (het is een hele onderneming), ik heb geen idee waarom ontwikkelaars het zo moeilijk hebben gemaakt om groepen te vormen, maar zoals ik het begrijp, kan het niet anders. We gaan naar de sectie Node management -> Groups en klikken op Create, we kiezen een statische groep en een naam.

We filteren de benodigde server op specifieke kenmerken, bijvoorbeeld op ip-adres, en slaan deze op

De groep is ingesteld.
Regels configureren
We gaan naar Configuration policy → Rules en maken een nieuwe regel aan

We voegen de eerder voorbereide groep toe (dit kan ook later worden gedaan)

En we formuleren een nieuwe richtlijn

We creëren een richtlijn voor het toevoegen van openbare sleutels aan .ssh/authorized_keys. Ik gebruik dit in het geval dat er een nieuwe medewerker bijkomt, of voor voorzorg, bijvoorbeeld als iemand per ongeluk mijn sleutel verwijdert.
We gaan naar Configuration policy → Directives, aan de linkerkant zien we «Directive library». We vinden «Remote access → SSH authorised keys», aan de rechterkant klikken we op Create Directive.
We vullen de gegevens van de gebruiker in en voegen zijn sleutel toe. Vervolgens kiezen we het toepassingsbeleid.
Global — Standaard ingestelde beleid
Enforce — Voer uit op geselecteerde servers
Audit — Voert een audit uit en geeft aan op welke klanten sleutelinformatie beschikbaar is.

Vergeet niet onze regel op te nemen.

Sla het op en alles is klaar.
Controleer

Sleutel succesvol toegevoegd.
Leuke extraatjes
De agent geeft volledige informatie over de server. Lijsten met geïnstalleerde pakketten, interfaces, open poorten en nog veel meer, wat u kunt zien op de screenshot hieronder.

Het is ook mogelijk om software niet alleen op Linux, maar ook op Windows te installeren en te beheren; het laatste heb ik niet getest, omdat het niet nodig was.
Van de auteur
Misschien vraagt u zich af waarom we een fiets zouden uitvinden als Ansible en Puppet al bestaan?
Ik antwoord: Ansible heeft nadelen, bijvoorbeeld dat we niet zien in welke staat deze configuratie zich momenteel bevindt, of de bekende situatie waarin je een rol of playbook uitvoert en er fouten optreden, waarna je de server moet ingaan om te zien welke pakketten zijn bijgewerkt. En met Puppet heb ik gewoon niet gewerkt.
Zijn er nadelen aan Rudder? Zeker, veel... Begonnen met het feit dat de agents kunnen disconnecten en opnieuw moeten worden geïnstalleerd of met de opdracht rudder reset moeten worden gereset. (maar in versie 6 heb ik dit nog niet gezien), eindigend met de uiterst complexe configuratie en een onlogische interface.
Zijn er voordelen? En er zijn ook veel voordelen: In tegenstelling tot het algemeen bekende Ansible hebben we een webinterface waarin we ons toegepaste compliance kunnen zien. Bijvoorbeeld - staan de poorten open naar de buitenwereld, in welke staat is de firewall, zijn de beveiligingsagents geïnstalleerd of andere zaken.
Deze software is uitstekend geschikt voor de afdeling informatiebeveiliging, aangezien de staat van de infrastructuur altijd zichtbaar is, en als een van de regels rood oplicht, is dat een reden om de server te bezoeken. Zoals ik al zei, gebruik ik Rudder nu al twee jaar, en als je er een beetje in duikt, wordt het leven beter. Het moeilijkste in een grote infrastructuur is dat je je niet herinnert in welke staat de server verkeert, of de junior geen installatie van beveiligingsagents heeft gemist of de iptables correct zijn ingesteld; Rudder helpt je op de hoogte te blijven van alle gebeurtenissen. Geïnformeerd, betekent gewapend! )
P.S. Het is veel meer geworden dan ik van plan was; ik zal niet beschrijven hoe je pakketten moet installeren, als er verzoeken komen, zal ik een tweede deel schrijven.
P.S.S Dit artikel is informatief van aard. Ik besloot het te delen omdat er op het internet zeer weinig informatie over te vinden is. Misschien is dit interessant voor iemand. Fijne dag, beste vrienden :)
Adverteervermelding
Epische servers is of Windows met krachtige processors van de AMD EPYC-familie en supersnelle Intel NVMe-schijven. Wees er snel bij om te bestellen!

Bron: habr.com
