
Predgovor
Naše "prijateljstvo" započelo je prije dvije godine. Došao sam na novo radno mjesto, gdje mi je prethodni administrator neopterećeno ostavio ovaj softver. Na internetu nije se moglo pronaći ništa osim službene dokumentacije. Čak i sada, ako se pretražuje "rudder", u 99% slučajeva dobit ćete rezultate koji se odnose na brodske upravljače i dronove. Uspio sam pronaći način kako ga koristiti. Budući da je zajednica ovog softvera izuzetno mala, odlučio sam podijeliti svoje iskustvo i prepreke. Mislim da će nekome ovo biti korisno.
Dakle, Rudder
Rudder je alat za audita i upravljanje konfiguracijom s otvorenim izvorom koji pomaže u automatizaciji postavki sustava. Radi na principu instalacije agenta na svakog krajnjeg korisnika. Kroz intuitivno sučelje možemo pratiti koliko naša infrastruktura odgovara svim zadanim politikama.
Korištenje
Ispod ću navesti za što koristim Rudder.
Kontrola datoteka i konfiguracija: ./ssh/authorized_keys; /etc/hosts; iptables; (a dalje gdje mašta vodi)
Kontrola instaliranih paketa: zabbix.agent ili bilo koji drugi softver
Instalacija servera
Nedavno sam nadogradio s verzije 5 na 6.1, sve je prošlo uspješno. Ispod su prikazane naredbe za Debian/Ubuntu, ali također podržava: i .
Sakrit ću instalaciju u spoiler-edove, kako vas ne bih ometao.
Spojler
Ovisnosti
Za rudder-server potrebna je Java RE minimalno verzija 8, može se instalirati iz standardnog repozitorija:
Provjeravamo je li instalirana
java -versionako se ispis
-bash: java: command not foundonda instaliramo
apt install default-jreServer
Importiramo ključ
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -Evo otiska ključa
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key)
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Budući da nemamo plaćenu pretplatu, dodajemo sljedeći repozitorij
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.listAžuriramo popis repozitorija i instaliramo server
apt update
apt install rudder-server-rootStvaramo korisnika admin
rudder server create-user -u admin -p "Vaša Lozinka"Kasnije možemo upravljati korisnicima preko konfiguracije
Sve, server je spreman.
Postavka servera
Sada je potrebno dodati u agent ruddera IP adrese agenata ili cijelu podsustav, orijentiramo se na politiku sigurnosti.
Postavke —> Opće

U polje «Add a network» upisujemo adresu i masku u formatu x.x.x.x/xx. Da bismo omogućili pristup sa svih adresa unutarnje mreže (ako je ovo testna mreža i nalazite se iza NAT-a) upisujemo: 0.0.0.0/0
Važno — nakon dodavanja IP adrese ne zaboravite kliknuti na Save changes, inače se ništa neće spremiti.
Portovi
Na serveru otvaramo sljedeće portove
443 — tcp
5309 — tcp
514 — udp
S prvotnom postavkom servera smo završili.
Instalacija Agenta
Spojler
Dodajemo ključ
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -Otisak ključa
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key)
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Dodajemo repozitorij
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.listInstaliramo agenta
apt update
apt install rudder-agentPostavka agenta
Određujemo agentu IP adresu servera pravila
rudder agent policy-server #Bez zagrada. Također se može koristiti i naziv domene. Pokretanjem sljedeće naredbe, poslat ćemo zahtjev za dodavanje novog agenta na server, za nekoliko minuta će se pojaviti na popisu novih agenata, kako dodavati objašnjenje ću dati u sljedećem odlomku.
rudder agent inventoryTakođer možemo prisilno pokrenuti agenta i on će odmah poslati zahtjev.
rudder agent runNaš agent je postavljen, idemo dalje.
Dodavanje agenata
Prijavljujemo se
https://127.0.0.1/rudder/index.html

U odjeljku «Accept new nodes» pojavit će se vaš agent, stavljamo kvačicu i kliknemo na Accept.

Malo će vremena proći dok sustav provjerava server za usklađenost.
Kreiranje grupa servera
Kreiramo grupu (to je malo zabave), nemam pojma zašto su developeri napravili tako komplicirano formiranje grupa, ali koliko sam razumio, nema drugog načina. Prelazimo u odjeljak Node management -> Groups i kliknemo na Create, odabiremo statičku grupu i naziv.

Filtriramo potrebni server prema posebnim karakteristikama, na primjer prema IP adresi, i spremamo.

Grupa je postavljena.
Postavka pravila
Prelazimo u Configuration policy → Rules i kreiramo novo pravilo.

Dodajemo ranije pripremljenu grupu (to se može učiniti i kasnije).

I formiramo novu direktivu.

Kreiramo direktivu za dodavanje javnih ključeva u .ssh/authorized_keys. Ovo koristim u slučaju odlaska novog zaposlenika, ili za sigurnost, na primjer ako netko slučajno izbriše moj ključ.
Prelazimo u Configuration policy → Directives, s lijeve strane vidimo «Directive library». Pronađemo «Remote access → SSH authorised keys», s desne strane kliknemo na Create Directive.
Upisujemo podatke o korisniku i dodajemo njegov ključ. Zatim odabiremo politiku primjene.
Global — Politika postavljena prema zadanim postavkama.
Enforce — Izvršiti na odabranim serverima.
Revizija — Provodit će reviziju i reći na kojima klijentima postoje ključne tačke.

Obavezno navodimo naše pravilo.

Zatim spremamo i sve je spremno.
Provjeravamo

Ključ je uspješno dodan.
Prednosti
Agent pruža potpune informacije o poslužitelju. Popisi instaliranih paketa, sučelja, otvorenih portova i mnoge druge stvari koje možete vidjeti na snimci ispod.

Također se može instalirati i kontrolirati softver ne samo na Linuxu nego i na Windowsu, posljednje nisam provjeravao, nije bilo potrebe.
Od autora
Vjerojatno se pitate, zašto izmišljati kotač, ako već postoje ansible i puppet?
Odgovaram: Ansible ima nedostatke, primjerice ne vidimo u kojem je stanju trenutna konfiguracija, ili poznata situacija kada pokrenete rolu ili playbook, a onda dobijete greške o padu, i morate otići na poslužitelj i provjeriti koji je paket ažuriran. S Puppetom jednostavno nisam radio.
Ima li nedostataka kod Rudder-a? Puno ih je... Počevši od toga da agenti često otpadaju i morate ih ponovo instalirati ili koristiti naredbu rudder reset. (ali, usput, u verziji 6 to još nisam vidio), završavajući iznimno složenom konfiguracijom i nelogičnim sučeljem.
Ima li prednosti? I prednosti su brojne: Za razliku od svima poznatog ansible, imamo web sučelje u kojem se može vidjeti primijenjena usklađenost. Na primjer — da li su portovi izloženi vani, u kakvom je stanju firewall, jesu li instalirani sigurnosni agenti ili druge dodatke.
Ovaj softver će izuzetno odgovarati odjelu informacijske sigurnosti, jer će stanje infrastrukture uvijek biti na oku, a ako se neka pravila označe crvenom, to je povod za posjet poslužitelju. Kao što sam spomenuo, već dvije godine koristim Rudder, i ako ga malo istražite, život postaje bolji. Najteže u velikoj infrastrukturi je to što se ne sjećate u kakvom je stanju poslužitelj, niste li propustili instalaciju sigurnosnih agenata ili jeste li ispravno podesili iptables, Rudder će vam pomoći da budete u toku sa svim događajima. Informiran, znači naoružan! )
P.S. Izašlo je mnogo više nego što sam planirao, neću opisivati kako instalirati pakete, ako bude zahtjeva, napisat ću drugi dio.
P.S.S Članak je informativnog karaktera, odlučio sam podijeliti ga jer na internetu ima vrlo malo informacija. Možda će to nekome biti zanimljivo. Ugodan dan, dragi prijatelji )
U okviru reklame
Epohalni serveri — to je ili Windows s moćnim procesorima iz AMD EPYC obitelji i vrlo brzim NVMe Intel diskovima. Požurite s narudžbom!

Izvor: habr.com
