Installatie en gebruik van 'Rudder'

Installatie en gebruik van 'Rudder'

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

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

als de uitvoer

-bash: java: command not found

dan installeren we

apt install default-jre

Server

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

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

We updaten de lijst met repositories en installeren de server

apt update
apt install rudder-server-root

We 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

Installatie en gebruik van 'Rudder'

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

We voegen de repository toe

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

We installeren de agent

apt update
apt install rudder-agent

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

We kunnen de agent ook handmatig starten en hij zal onmiddellijk een aanvraag indienen

rudder agent run

Onze agent is geconfigureerd, laten we verder gaan.

Agents toevoegen

We loggen in

https://127.0.0.1/rudder/index.html

Installatie en gebruik van 'Rudder'

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

Installatie en gebruik van 'Rudder'

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.

Installatie en gebruik van 'Rudder'

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

Installatie en gebruik van 'Rudder'

De groep is ingesteld.

Regels configureren

We gaan naar Configuration policy → Rules en maken een nieuwe regel aan

Installatie en gebruik van 'Rudder'

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

Installatie en gebruik van 'Rudder'

En we formuleren een nieuwe richtlijn

Installatie en gebruik van 'Rudder'

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.

Installatie en gebruik van 'Rudder'

Vergeet niet onze regel op te nemen.

Installatie en gebruik van 'Rudder'

Sla het op en alles is klaar.

Controleer

Installatie en gebruik van 'Rudder'

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.

Installatie en gebruik van 'Rudder'

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 VPS op Linux of Windows met krachtige processors van de AMD EPYC-familie en supersnelle Intel NVMe-schijven. Wees er snel bij om te bestellen!

Installatie en gebruik van 'Rudder'

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster