
Úvod
Naše „přátelství“ začalo před dvěma lety. Přišel jsem na nové pracovní místo, kde mi předchozí administrátor bezstarostně zanechal tento software. Na internetu jsem nenašel nic kromě oficiální dokumentace. I nyní, pokud vyhledáte „rudder“, dostanete v 99% případů výsledky, které se týkají kormidel lodí a dronů. Podařilo se mi najít na to způsob. Vzhledem k tomu, že komunita tohoto softwaru je nepatrně malá, rozhodl jsem se podělit o své zkušenosti a úskalí. Myslím, že to někomu bude prospěšné.
Takže, Rudder
Rudder je open-source nástroj pro audit a správu konfigurace, který pomáhá automatizovat nastavení systému. Funguje na principu instalace agenta na každého koncového uživatele. Přes uživatelsky přívětivé rozhraní můžeme sledovat, jak moc naše infrastruktura odpovídá všem nastaveným politikám.
Použití
Níže uvedu, k čemu používám Rudder.
Kontrola souborů a konfigurací: .ssh/authorized_keys; /etc/hosts; iptables; (a dál, kam mě fantazie zavede)
Kontrola nainstalovaných balíčků: zabbix.agent nebo jiný software
Instalace serveru
Nedávno jsem se aktualizoval z verze 5 na 6.1, vše proběhlo úspěšně. Níže budou uvedeny příkazy pro Debian/Ubuntu, ale je také podpora: a .
Skryji instalaci do spoilerů, abych vás nevyrušoval.
Spoiler
Závislosti
Pro rudder-server je vyžadováno Java RE minimálně verze 8, lze ji nainstalovat ze standardního repozitáře:
Ověřujeme, jestli není nainstalována
java -versionpokud výstup
-bash: java: command not foundtak nainstalujeme
apt install default-jreServer
Importujeme klíč
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -Tady je samotný otisk
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key)
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Protože nemáme placené předplatné, přidáme následující repozitář
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.listAktualizujeme seznam repozitářů a instalujeme server
apt update
apt install rudder-server-rootVytvoříme uživatele admin
rudder server create-user -u admin -p "Vaše heslo"V následujících krocích můžeme spravovat uživatele přes konfiguraci
Všechno, server je připraven.
Nastavení serveru
Nyní je třeba do agenta Rudder přidat IP adresy agentů nebo celou podsíť, podle politiky zabezpečení.
Nastavení → Obecné

Do pole „Přidat síť“ zadáme adresu a masku ve formátu x.x.x.x/xx. Pro povolení přístupu ze všech adres vnitřní sítě (pokud se jedná o testovací síť a nacházíte se za NAT) zadáme: 0.0.0.0/0
Důležité — po přidání IP adresy nezapomeňte kliknout na Uložit změny, jinak se nic neuloží.
Porty
Na serveru otevřeme následující porty
443 — tcp
5309 — tcp
514 — udp
S počátečním nastavením serveru jsme se seznámili.
Instalace Agenta
Spoiler
Přidáváme klíč
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -Otisk klíče
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key)
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8Přidáváme repozitář
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.listInstalujeme agenta
apt update
apt install rudder-agentNastavení agenta
Uvedeme agentovi IP adresu serveru politik
rudder agent policy-server #Bez závorek. Můžete také použít doménové jméno Spuštěním následujícího příkazu zašleme žádost o přidání nového agenta na server, za pár minut se objeví v seznamu nových agentů, jak přidávat vysvětlím v následující části
rudder agent inventoryMůžeme také donutit agenta k okamžitému spuštění a on odešle žádost okamžitě
rudder agent runNáš agent je nastaven, pokračujeme dál.
Přidání agentů
Přihlásíme se
https://127.0.0.1/rudder/index.html

V sekci „Přijmout nové uzly“ se objeví váš agent, zaškrtneme a klikneme na Přijmout

Chvíli potrvá, než systém ověří server na shodu
Vytváření skupin serverů
Vytvoříme skupinu (to je ještě zábava), nemám ponětí, proč vývojáři udělali tak složité vytváření skupin, ale jak jsem pochopil, jinak to nejde. Přecházíme do sekce Správa uzlů -> Skupiny a klikáme na Vytvořit, vybereme statickou skupinu a název.

Filtrujeme požadovaný server podle specifických znaků, například podle IP adresy, a ukládáme

Skupina je nastavena.
Nastavení pravidel
Přejdeme do politiky konfigurace → Pravidla, a vytvoříme nové pravidlo

Přidáváme dříve připravenou skupinu (to lze provést i později)

A vytváříme novou direktivu

Vytvoříme direktivu pro přidání veřejných klíčů do .ssh/authorized_keys. To používám v případě, že nový zaměstnanec odchází, nebo pro pojistku, například pokud někdo náhodou odstraní můj klíč.
Přejdeme do politiky konfigurace → Direktivy, vlevo vidíme „Knihovna direktiv“. Najdeme „Vzdálený přístup → SSH autorizované klíče“, vpravo klikneme na Vytvořit direktivu
Zadáme údaje o uživateli a přidáme jeho klíč. Poté vybereme politiku použití
Globální — Politika nastavená výchozí
Vynutit — Provedeno na vybraných serverech
Audit — Provede audit a sdělí, na kterých klientech jsou klíče.

Zaručeně uvádíme naše pravidlo.

Pak uložíme a je to hotové.
Kontrolujeme

Klíč byl úspěšně přidán.
Bonusy
Agent poskytuje úplné informace o serveru. Seznamy nainstalovaných balíčků, rozhraní, otevřené porty a mnoho dalšího, co si můžete prohlédnout na screenshotu níže.

Také můžete instalovat a kontrolovat software nejen na Linuxu, ale i na Windows, poslední jsem nezkoušel, nebyla potřeba.
Od autora
Možná se ptáte, proč vynalézat kolo, když už existují Ansible a Puppet?
Odpovídám: Ansible má nedostatky, například nevidíme, v jakém stavu je aktuálně tento konfigurák, nebo známá situace, kdy spustíte roli nebo playbook a začnou se objevovat chyby, a začnete se dostávat na server a zjišťovat, který balíček se kam aktualizoval. A s Puppet jsem prostě nepracoval.
Jsou nějaké nevýhody u Ruddera? Je jich spousta... Začíná to tím, že agenti vypadávají a je nutné je přeinstalovat nebo použít příkaz rudder reset. (ale mimochodem v verzi 6 jsem to ještě neviděl), končí to velmi složitou konfigurací a nelogickým uživatelským rozhraním.
Jsou nějaké výhody? A výhod je také mnoho: Na rozdíl od všeobecně známého Ansible máme webové rozhraní, ve kterém vidíme aplikované předpisy. Například – jsou porty otevřeny do světa, v jakém stavu je firewall, nainstalováni agenti zabezpečení nebo další věci.
Tento software je ideální pro oddělení informační bezpečnosti, protože stav infrastruktury bude vždy před očima, a pokud nějaké pravidlo zčervená, je to důvod navštívit server. Jak jsem již říkal, 2 roky používám Rudder, a pokud si ho trochu prostudujete, život se stává lepším. Nejvíce obtížné ve velké infrastruktuře je, že si nepamatujete, v jakém stavu server je, zda jste nezapomněli na instalaci agentů zabezpečení nebo zda jste správně nastavili iptables, Rudder vám však pomůže být v obraze. Osvědčený, znamená ozbrojený! )
P.S. Vzniklo mnohem více, než jsem plánoval, nebudu popisovat, jak instalovat balíčky, pokud budou žádosti, napíšu druhou část.
P.S.S. Článek má informativní charakter, rozhodl jsem se podělit, protože na internetu je velmi málo informací. Možná to bude někoho zajímat. Přeji vám hezký den, vážení přátelé :)
Na základě reklamy
Epic servery — to je nebo Windows s výkonnými procesory rodiny AMD EPYC a velmi rychlými NVMe disky Intel. Nezmeškejte příležitost objednat!

Zdroj: habr.com
