Instalace a provoz "Rudder"

Instalace a provoz "Rudder"

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

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

pokud výstup

-bash: java: command not found

tak nainstalujeme

apt install default-jre

Server

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

Protož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.list

Aktualizujeme seznam repozitářů a instalujeme server

apt update
apt install rudder-server-root

Vytvoří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é

Instalace a provoz "Rudder"

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

Přidáváme repozitář

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

Instalujeme agenta

apt update
apt install rudder-agent

Nastavení 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 inventory

Můžeme také donutit agenta k okamžitému spuštění a on odešle žádost okamžitě

rudder agent run

Náš agent je nastaven, pokračujeme dál.

Přidání agentů

Přihlásíme se

https://127.0.0.1/rudder/index.html

Instalace a provoz "Rudder"

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

Instalace a provoz "Rudder"

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.

Instalace a provoz "Rudder"

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

Instalace a provoz "Rudder"

Skupina je nastavena.

Nastavení pravidel

Přejdeme do politiky konfigurace → Pravidla, a vytvoříme nové pravidlo

Instalace a provoz "Rudder"

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

Instalace a provoz "Rudder"

A vytváříme novou direktivu

Instalace a provoz "Rudder"

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.

Instalace a provoz "Rudder"

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

Instalace a provoz "Rudder"

Pak uložíme a je to hotové.

Kontrolujeme

Instalace a provoz "Rudder"

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.

Instalace a provoz "Rudder"

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 VPS na Linuxu nebo Windows s výkonnými procesory rodiny AMD EPYC a velmi rychlými NVMe disky Intel. Nezmeškejte příležitost objednat!

Instalace a provoz "Rudder"

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster