
Predgovor
Najina "prijateljstvo" se je začelo pred dvema letoma. Začel sem delati na novem delovnem mestu, kjer mi je prejšnji administrator brezskrbno zapustil to programsko opremo. Na internetu nisem mogel najti ničesar razen uradne dokumentacije. Še danes, če v Googlu poiščete "rudder", vam bo v 99 % primerov pokazalo: krmila ladij in dronov. Uspel sem najti način uporabe. Ker je skupnost te programske opreme izjemno majhna, sem se odločil deliti svoje izkušnje in zmote. Mislim, da bo to nekomu v pomoč.
Torej, Rudder
Rudder je orodje za revizijo in upravljanje konfiguracij z odprto kodo, ki pomaga avtomatizirati nastavitev sistema. Deluje po načelu namestitve agenta na vsak končni uporabnik. Preko uporabniškega vmesnika lahko spremljamo, kako dobro naša infrastruktura ustreza vsem določenim pravilom.
Uporaba
Spodaj bom naštel, za kaj uporabljam Rudder.
Nadzor datotek in konfiguracij: ./ssh/authorized_keys; /etc/hosts; iptables; (naprej, kamor me bo peljala domišljija)
Nadzor nameščenih paketov: zabbix.agent ali katera koli druga programska oprema
Namestitev strežnika
Pred kratkim sem se posodobil s različice 5 na 6.1, vse je potekalo uspešno. Spodaj bodo predstavljene ukaze za Debian/Ubuntu, a podpora je tudi za: in .
Namestitev bom skrival v razporkih, da vas ne motim.
Skrivalo
Odvisnosti
Za rudder-server potrebujemo Java RE različico vsaj 8, lahko jo namestite iz standardnega repozitorija:
Preverjamo, če je nameščena
java -versionče izhod
-bash: java: command not foundpotem jo namestimo
apt install default-jreServer
Uvozimo ključ
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -Tukaj je sam odtis
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key)
Ključni odtis = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Ker nimamo plačane naročnine, dodamo naslednji repozitorij
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.listPosodobimo seznam repozitorijev in namestimo strežnik
apt update
apt install rudder-server-rootUstvarimo uporabnika admin
rudder server create-user -u admin -p "Vaša Geslo"Nato lahko upravljamo uporabnike preko konfiguracije
Vse, strežnik je pripravljen.
Nastavitev strežnika
Zdaj je potrebno dodati v agent Rudder IP naslove agentov ali celo celotno podsistem, usmerjamo se po varnostni politiki.
Nastavitve —> Splošno

V polju «Add a network» vpišemo naslov in masko v formatu x.x.x.x/xx. Da omogočimo dostop z vseh naslovov notranje mreže (če gre seveda za testno mrežo in ste za NAT) vpišemo: 0.0.0.0/0
Pomembno — po dodajanju ip naslova ne pozabite klikniti na Save changes, v nasprotnem primeru nič ne bo shranjeno.
Vrati
Na strežniku odpiramo naslednje vrati
443 — tcp
5309 — tcp
514 — udp
S prvotno nastavitvijo strežnika smo se spoprijeli.
Namestitev agenta
Skrivalo
Dodajamo ključ
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -Odžaganje ključa
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key)
Ključni odtis = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Dodajamo repozitorij
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.listNamestimo agenta
apt update
apt install rudder-agentNastavitev agenta
Določimo agentu ip naslov strežnika politik
rudder agent policy-server #Brez oklepajev. Prav tako lahko uporabite domeno Z zagonjem naslednjega ukaza pošljemo zahtevo za dodajanje novega agenta na strežnik, čez nekaj minut se bo pojavil na seznamu novih agentov, kako dodati, razložim v naslednjem razdelku.
rudder agent inventoryPrav tako lahko prisilimo agenta, da takoj pošlje zahtevo.
rudder agent runNaš agent je nastavljen, gremo naprej.
Dodajanje agentov
Prijavimo se
https://127.0.0.1/rudder/index.html

V razdelku «Accept new nodes» se bo pojavil vaš agent, obkljukamo in kliknemo Accept

Malo časa bo trajalo, da sistem preveri strežnik na skladnost
Ustvarjanje skupin strežnikov
Ustvarimo skupino (velika zabava), nimam pojma, zakaj so razvijalci naredili tako komplicirano oblikovanje skupin, ampak kot sem razumel, drugače ne gre. Pojdite v razdelek Node management -> Groups in kliknite na Create, izberite statično skupino in ime.

Filtriramo potrebni strežnik po posebnih lastnostih, na primer po ip naslovu, in shranimo.

Skupina je nastavljena.
Nastavitev pravil
Pojdite v Configuration policy → Rules in ustvarite novo pravilo.

Dodamo prej pripravljeno skupino (to lahko naredimo tudi kasneje)

In oblikujemo novo direktivo.

Ustvarimo direktivo za dodajanje javnih ključev v .ssh/authorized_keys. To uporabljam v primeru odliva novega zaposlenega ali za zavarovanje, na primer, če kdo nenamerno izbriše moj ključ.
Pojdite v Configuration policy → Directives na levi strani vidimo «Directive library» Najdemo «Remote access → SSH authorised keys», na desni strani kliknemo Create Directive.
Vpišemo podatke o uporabniku in dodamo njegov ključ. Nato izberemo politiko uporabe.
Global — Politika, nameščena po privzetku.
Enforce — Izvrši na izbranih strežnikih.
Revizija — Izvršiće reviziju i reći na kojim klijentima su ključni podaci.

Obavezno navodimo naše pravilo.

Zatim sačuvamo i sve je spremno.
Proveravamo.

Ključ je uspešno dodat.
Pogodnosti.
Agent daje sveobuhvatne informacije o serveru. Liste instaliranih paketa, interfejsa, otvorenih portova i mnogo više, što možete videti na snimku ekrana ispod.

Takođe možete instalirati i kontrolisati softver ne samo na Linuxu već i na Windowsu, poslednje nisam proveravao, nije bilo potrebe.
Od autora.
Verovatno se pitate, zašto izmišljati bicikl kada su Ansible i Puppet već izmišljeni?
Odgovaram: Ansible ima mane, kao što je to što ne vidimo u kakvom je stanju ovaj konfiguracioni fajl, ili poznata situacija kada pokrećete rol ili playbook i dobijate greške o rušenju, pa morate da idete na server i proveravate koji je paket gde ažuriran. A za Puppet jednostavno nisam radio.
Da li postoje mane kod Ruddera? Mnogo ih je... Počevši od toga da agenti nestaju i treba ih ponovo instalirati ili koristiti komandu rudder reset. (ali u verziji 6 to nisam još video), završavajući sa izuzetno složenom konfiguracijom i nelogičnim interfejsom.
Da li postoje prednosti? I prednosti su brojne: Za razliku od poznatog Ansible-a, imamo web interfejs u kojem možemo da vidimo primenjenu usklađenost. Na primer — da li portovi vode u svet, u kakvom je stanju firewall, da li su sigurnosni agenti ili druge dodatne aplikacije instalirani.
Ovaj softver je savršen za odeljenje informatičke bezbednosti, pošto je stanje infrastrukture uvek vidljivo, i ako se neko od pravila obeleži crvenom bojom, to je signal da se poseti server. Kao što sam rekao, koristim Rudder već 2 godine, i ako ga malo prostudirate, život postaje bolji. Najteže u velikoj infrastrukturi je to što se ne sećate u kakvom stanju je server, da li je junior zaboravio da instalira sigurnosne agente ili kako je pravilno podešen iptables, Rudder će vam pomoći da budete u toku sa svim događajima. Obavešten, znači naoružan! )
P.S. Izašlo je mnogo više nego što sam planirao, neću opisivati kako instalirati pakete, ako bude zahteva, napišem drugu deo.
P.S.S Članek ima informativni značaj, želel sem deliti, ker je na internetu zelo malo informacij. Morda bo to komu zanimivo. Lepo čas dneva, dragi prijatelji )
V okviru oglaševanja
Epicni strežniki — to je ali Windows z zmogljivimi procesorji družine AMD EPYC in zelo hitrimi NVMe diski Intel. Pohitite z naročilom!

Izvor: habr.com
