
Prefață
Prietenia noastră a început acum doi ani. Am venit la un nou loc de muncă, unde fostul administrator mi-a lăsat în mod informal acest software ca moștenire. Pe internet, în afară de documentația oficială, nu am găsit nimic. Chiar și acum, dacă cauți „rudder” pe Google, în 99% din cazuri vei găsi: timonii navelor și dronele. Am reușit să-mi fac o idee despre el. Deoarece comunitatea acestui software este extrem de mică, am decis să împărtășesc experiența și greșelile mele. Cred că va fi util pentru cineva.
Așadar, Rudder
Rudder este un utilitar pentru auditul și gestionarea configurației cu sursă deschisă, care ajută la automatizarea configurării sistemului. Funcționează pe principiul instalării unui agent pe fiecare utilizator final. Printr-o interfață prietenoasă, putem observa cât de bine se aliniază infrastructura noastră la toate politicile stabilite.
Utilizare
Mai jos voi enumera pentru ce folosesc Rudder.
Controlul fișierelor și configurațiilor: .\/ssh\/authorized_keys ; \/etc\/hosts ; iptables ; (apoi unde ne duce imaginația)
Controlul pachetelor instalate: zabbix.agent sau orice alt software
Instalarea serverului
Recent m-am actualizat de la versiunea 5 la 6.1, totul a decurs cu succes. Mai jos vor fi prezentate comenzile pentru Deban\/Ubuntu, dar există și suport pentru: și .
Voi ascunde instalarea în spoiler, pentru a nu vă distra.
Spoiler
Dependințe
Pentru rudder-server este necesar Java RE în versiune minimă 8, se poate instala din depozitul standard:
Verificăm dacă nu este instalată
java -versiondacă output-ul
-bash: java: command not foundatunci o instalăm
apt install default-jreServer
Importăm cheia
wget --quiet -O- "https:\/\/repository.rudder.io\/apt\/rudder_apt_key.pub" | sudo apt-key add -Iată amprenta
pub 4096R\/474A19E8 2011-12-15 Rudder Project (cheie de lansare)
Amprentă cheie = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Deoarece nu avem un abonament plătit, adăugăm următorul depozit
echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.listActualizăm lista depozitelor și instalăm serverul
apt update
apt install rudder-server-rootCreăm utilizatorul admin
rudder server create-user -u admin -p "Parola Ta"Ulterior, putem gestiona utilizatorii prin configurare
Gata, serverul este pregătit.
Configurarea serverului
Acum este necesar să adăugăm în agentul Rudder adresele IP ale agenților sau o rețea întreagă, orientându-ne după politica de securitate.
Setări —> Generale

În câmpul „Adăugați o rețea” introducem adresa și masca în formatul x.x.x.x/xx. Pentru a permite accesul din toate adresele rețelei interne (dacă, desigur, este o rețea de testare și vă aflați în spatele NAT) scriem: 0.0.0.0/0
Important — după adăugarea adresei IP, nu uitați să apăsați Salvați modificările, în caz contrar, nimic nu se va salva.
Porturi
Pe server deschidem următoarele porturi
443 — tcp
5309 — tcp
514 — udp
Ne-am lămurit cu configurarea inițială a serverului.
Instalarea Agentului
Spoiler
Adăugăm cheia
wget --quiet -O- "https:\/\/repository.rudder.io\/apt\/rudder_apt_key.pub" | sudo apt-key add -Amprenta cheii
pub 4096R\/474A19E8 2011-12-15 Rudder Project (cheie de lansare)
Amprentă cheie = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Adăugăm depozitul
echo "deb http:\/\/repository.rudder.io\/apt\/6.1\/ $(lsb_release -cs) main" > \/etc\/apt\/sources.list.d\/rudder.listInstalăm agentul
apt update
apt install rudder-agentConfigurarea agentului
Să specificăm agentului adresa IP a serverului de politici
rudder agent policy-server #Fără paranteze. Se poate folosi și numele de domeniu. Rulând următoarea comandă, vom trimite o cerere de adăugare a unui nou agent pe server; într-un minut acesta va apărea în lista de noi agenți, cum să adăugăm voi explica în secțiunea următoare.
rudder agent inventoryDe asemenea, putem lansa forțat agentul și acesta va trimite cererea imediat.
rudder agent runAgentul nostru este configurat, mergem mai departe.
Adăugarea agenților
Ne conectăm
https://127.0.0.1/rudder/index.html

În secțiunea „Acceptați noile noduri” va apărea agentul dumneavoastră, bifăm caseta și apăsăm Acceptați.

Va dura puțin timp până când sistemul va verifica serverul pentru conformitate.
Crearea grupurilor de servere
Vom crea un grup (o adevărată distracție), nu am idee de ce dezvoltatorii au făcut formarea grupurilor atât de complicată, dar am înțeles că nu există altă opțiune. Trecem la secțiunea Administrare noduri -> Grupuri și apăsăm pe Creare, alegem grup static și numele.

Filtrăm serverul necesar după caracteristici specifice, de exemplu după adresa IP, și salvăm.

Grupul este configurat.
Configurarea regulilor
Trecem la Politica de configurare → Reguli și creăm o nouă regulă.

Adăugăm grupul pregătit anterior (acest lucru se poate face și mai târziu).

Și formăm o nouă directivă.

Vom crea o directivă pentru adăugarea cheilor publice în .ssh/authorized_keys. O folosesc în cazul unui angajat nou sau pentru a evita problemele, de exemplu, dacă cineva șterge din greșeală cheia mea.
Trecem la Politica de configurare → Directive, în stânga vedem „Biblioteca de directive”. Găsim „Acces de la distanță → Chei autorizate SSH”, în dreapta apăsăm Creare Directivă.
Introducem datele despre utilizator și adăugăm cheia acestuia. Apoi alegem politica de aplicare.
Global — Politica stabilită implicit.
Enforce — Executați pe serverele selectate.
Audit — Va efectua un audit și va spune pe ce clienți există o cheie

Trebuie neapărat să specificăm regula noastră

Apoi salvăm și totul este gata.
Verificăm

Cheia a fost adăugată cu succes
Beneficii
Agentul furnizează informații complete despre server. Listele pachetelor instalate, interfețele, porturile deschise și multe altele, pe care le puteți vedea în captura de ecran de mai jos

De asemenea, se pot instala și controla software nu doar pe Linux, ci și pe Windows, pe acesta din urmă nu l-am verificat, nu a fost necesar.
De la autor
Probabil vă întrebați, de ce să reinventăm roata, dacă deja există Ansible și Puppet?
Răspund: Ansible are dezavantaje, de exemplu, nu vedem în ce stare se află acum această configurație, sau cunoscuta situație în care lansezi o rolă sau un playbook și apar erori de crash, și începi să te uite pe server pentru a verifica care pachet s-a actualizat. Și cu Puppet nu am lucrat...
Are Rudder dezavantaje? Foarte multe... Începând cu faptul că agenții se deconectează și trebuie să-i reinstalez sau să folosesc comanda rudder reset. (dar, de fapt, în versiunea 6 nu am văzut așa ceva), terminând cu o configurare extrem de complexă și o interfață ilogică.
Există avantaje? Și avantajele sunt multe: Spre deosebire de bine cunoscutul Ansible, avem o interfață web în care putem vedea conformitatea aplicată de noi. De exemplu — dacă porturile sunt expuse în lume, în ce stare se află firewall-ul, dacă agenții de securitate sau alte soluții sunt instalate.
Această software este perfect pentru departamentul de securitate informațională, deoarece starea infrastructurii va fi întotdeauna vizibilă, iar dacă unul dintre reguli devine roșu, este un motiv pentru a vizita serverul. Așa cum am spus, folosesc Rudder de 2 ani, și dacă îl studiezi puțin, viața devine mai bună. Cel mai greu în infrastructuri mari este că nu-ți amintești în ce stare este serverul, dacă un junior a omis instalarea agenților de securitate sau dacă a configurat corect iptables; Rudder te va ajuta să fii la curent cu toate evenimentele. Informația înseamnă putere! )
P.S. A ieșit mult mai mult decât am planificat, nu voi descrie cum se instalează pachetele; dacă vor fi cereri, voi scrie o a doua parte.
P.S.S Articolul are un caracter informativ; am decis să împărtășesc, deoarece pe internet există foarte puține informații. Poate că va fi interesant pentru cineva. Vă doresc o zi bună, dragi prieteni :)
În numele publicității
Servere epice — acesta este sau Windows cu procesoare puternice din familia AMD EPYC și discuri NVMe Intel foarte rapide. Grăbiți-vă să comandați!

Sursa: habr.com
