Instalacja i eksploatacja 'Rudder'

Instalacja i eksploatacja 'Rudder'

Wstęp

Nasza „przyjaźń” zaczęła się dwa lata temu. Przyszedłem do nowego miejsca pracy, gdzie poprzedni administrator bezceremonialnie zostawił mi to oprogramowanie. W internecie poza oficjalną dokumentacją nie można było nic znaleźć. Nawet teraz, jeśli wpiszesz „rudder” w Google, w 99% przypadków otrzymasz wyniki dotyczące sterów statków i dronów. Udało mi się znaleźć podejście do niego. Ponieważ społeczność tego oprogramowania jest znikoma, postanowiłem podzielić się swoim doświadczeniem i przeszkodami. Myślę, że to może być pomocne dla kogoś.

A więc, Rudder

Rudder to narzędzie do audytu i zarządzania konfiguracją z otwartym kodem źródłowym, które pomaga zautomatyzować konfigurację systemu. Działa na zasadzie zainstalowania agenta na każdym z użytkowników końcowych. Dzięki wygodnemu interfejsowi możemy obserwować, jak nasza infrastruktura spełnia wszystkie określone polityki.

Użycie

Poniżej wymienię, do czego używam Ruddera.

  • Kontrola plików i konfiguracji: . /ssh/authorized_keys ; /etc/hosts ; iptables ; (a dalej, dokąd poniesie fantazja)

  • Kontrola zainstalowanych pakietów: zabbix.agent lub inne oprogramowanie

Instalacja serwera

Niedawno zaktualizowałem z wersji 5 do 6.1, wszystko poszło pomyślnie. Poniżej zostaną przedstawione komendy dla Debiana/Ubuntu, ale wsparcie jest również dla: RHEL/CentOS i Sles.

Schowam instalację w spoilerach, aby was nie rozpraszać.

Spoiler

Zależności

Dla rudder-server wymagana jest wersja Java RE minimum 8, można ją zainstalować z standardowego repozytorium:

Sprawdzamy, czy nie jest zainstalowana

java -version

jeśli wynik

-bash: java: command not found

to instalujemy

apt install default-jre

Serwer

Importujemy klucz

wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -

Oto sam odcisk

pub  4096R/474A19E8 2011-12-15 Rudder Project (klucz wydania) 
      Odcisk klucza = 7C16 9817 7904 212D D58C  B4D1 9322 C330 474A 19E8

Ponieważ nie mamy płatnej subskrypcji, dodajemy następne repozytorium

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

Aktualizujemy listę repozytoriów i instalujemy serwer

apt update
apt install rudder-server-root

Tworzymy użytkownika admin

rudder server create-user -u admin -p "Twoje Hasło"

W przyszłości możemy zarządzać użytkownikami za pomocą konfiguracji

To wszystko, serwer gotowy.

Konfiguracja serwera

Teraz należy dodać do agenta Ruddera adresy IP agentów lub całą podsieć, kierując się polityką bezpieczeństwa.

Ustawienia → Ogólne

Instalacja i eksploatacja 'Rudder'

W polu „Dodaj sieć” wpisujemy adres i maskę w formacie x.x.x.x/xx. Aby umożliwić dostęp ze wszystkich adresów wewnętrznej sieci (o ile to jest sieć testowa i znajdujesz się za NAT), wpisujemy: 0.0.0.0/0

Ważne — po dodaniu adresu IP nie zapomnij kliknąć Zapisz zmiany, w przeciwnym razie nic nie zostanie zapisane.

Porty

Na serwerze otwieramy następujące porty

  • 443 — tcp

  • 5309 — tcp

  • 514 — udp

Z podstawową konfiguracją serwera się uporaliśmy.

Instalacja agenta

Spoiler

Dodajemy klucz

wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -

Odciśnięcie klucza

pub  4096R/474A19E8 2011-12-15 Rudder Project (klucz wydania) 
      Odcisk klucza = 7C16 9817 7904 212D D58C  B4D1 9322 C330 474A 19E8

Dodajemy repozytorium

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

Instalujemy agenta

apt update
apt install rudder-agent

Konfiguracja agenta

Wskaźmy agentowi adres IP serwera polityk

rudder agent policy-server  #Bez nawiasów. Można także użyć nazwy domenowej 

Uruchamiając następujące polecenie, wyślemy zapytanie o dodanie nowego agenta do serwera, po kilku minutach pojawi się on na liście nowych agentów, jak dodawać, wyjaśnię w następnej sekcji

rudder agent inventory

Możemy również wymusić uruchomienie agenta, aby natychmiast wysłał zapytanie

rudder agent run

Nasz agent jest skonfigurowany, idziemy dalej.

Dodawanie agentów

Logujemy się

https://127.0.0.1/rudder/index.html

Instalacja i eksploatacja 'Rudder'

W sekcji „Akceptuj nowe węzły” pojawi się twój agent, zaznaczamy pole i klikamy Akceptuj

Instalacja i eksploatacja 'Rudder'

Trochę czasu zajmie systemowi sprawdzenie serwera pod kątem zgodności

Tworzenie grup serwerów

Stworzymy grupę (to prawdziwa zabawa), nie mam pojęcia, dlaczego programiści zrobili tak skomplikowane tworzenie grup, ale jak zrozumiałem, inaczej się nie da. Przechodzimy do sekcji Zarządzanie węzłami -> Grupy i klikamy Utwórz, wybieramy grupę statyczną i nazwę.

Instalacja i eksploatacja 'Rudder'

Filtrujemy potrzebny nam serwer według specjalnych cech, na przykład według adresu IP i zapisujemy

Instalacja i eksploatacja 'Rudder'

Grupa jest skonfigurowana.

Konfiguracja reguł

Przechodzimy do Polityka konfiguracji → Reguły i tworzymy nową regułę

Instalacja i eksploatacja 'Rudder'

Dodajemy przygotowaną wcześniej grupę (można to zrobić i później)

Instalacja i eksploatacja 'Rudder'

I tworzymy nową dyrektywę

Instalacja i eksploatacja 'Rudder'

Stworzymy dyrektywę dodawania kluczy publicznych do .ssh/authorized_keys. Używam tego w przypadku przychodzenia nowego pracownika lub na wszelki wypadek, na przykład jeśli ktoś przypadkiem usunie mój klucz.

Przechodzimy do Polityka konfiguracji → Dyrektywy, z lewej widzimy „Biblioteka dyrektyw”. Znajdujemy „Zdalny dostęp → Autoryzowane klucze SSH”, z prawej klikamy Utwórz dyrektywę

Wpisujemy dane użytkownika i dodajemy jego klucz. Następnie wybieramy politykę zastosowania

  • Global — Polityka ustawiona domyślnie

  • Enforce — Wykonaj na wybranych serwerach

  • Audyt — Przeprowadzi audyt i powie, które klienci są kluczowi

Instalacja i eksploatacja 'Rudder'

Zdecydowanie wskazujemy nasze zasady

Instalacja i eksploatacja 'Rudder'

Następnie zapisujemy i wszystko gotowe.

Sprawdzamy

Instalacja i eksploatacja 'Rudder'

Klucz został pomyślnie dodany

Dodatki

Agent dostarcza pełne informacje o serwerze. Lista zainstalowanych pakietów, interfejsów, otwartych portów i wiele więcej, co możecie zobaczyć na zrzucie ekranu poniżej

Instalacja i eksploatacja 'Rudder'

Można również instalować i kontrolować oprogramowanie nie tylko na Linuxie, ale i na Windowsie, ostatniego nie sprawdzałem, nie było takiej potrzeby.

Od autora

Z pewnością zapytasz, po co wynajdywać koło na nowo, skoro już istnieją Ansible i Puppet?

Odpowiadam: Ansible ma swoje wady, np. nie widzimy w jakim stanie aktualnie jest ten konfig, czy też powszechny problem, kiedy uruchamiasz rolę lub playbook i pojawiają się błędy dotyczące awarii, a ty musisz wchodzić na serwer i sprawdzać, który pakiet gdzie został zaktualizowany. A z Puppetem po prostu nie pracowałem.

Czy są jakieś wady Rudder? Jest ich wiele... Zaczynając od problemów z agentami, którzy się odpinają i trzeba ich reinstalować lub używać polecenia rudder reset. (ale swoją drogą, w wersji 6 jeszcze tego nie widziałem), kończąc na ekstremalnie skomplikowanej konfiguracji i nielogicznym interfejsie.

Czy są jakieś plusy? A plusów też jest mnóstwo: W przeciwieństwie do znanego Ansible mamy interfejs webowy, w którym widzimy stosowany przez nas compliance. Na przykład — czy porty są otwarte dla świata, w jakim stanie jest firewall, czy zainstalowane są agenci bezpieczeństwa lub inne sprzęty.

To oprogramowanie doskonale nadaje się do działu bezpieczeństwa informacji, ponieważ stan infrastruktury zawsze będzie widoczny na ekranie, a jeśli jakieś zasady świecą na czerwono, to jest to powód, aby odwiedzić serwer. Jak mówiłem, używam Rudder już od dwóch lat, a jeśli go trochę przeanalizować, to życie staje się lepsze. Najtrudniejsze w dużej infrastrukturze to to, że nie pamiętasz, w jakim stanie jest serwer, czy nie przegapiłeś instalacji agentów bezpieczeństwa, czy dobrze skonfigurowałeś iptables, a Rudder pomoże ci być na bieżąco z wydarzeniami. Osobisty, więc uzbrojony! )

P.S. Wyszło znacznie więcej niż planowałem, nie zamierzam opisywać, jak instalować pakiety, jeśli będą jakieś prośby, napiszę drugą część.

P.S.S Artykuł ma charakter informacyjny, postanowiłem podzielić się tym, ponieważ w internecie jest bardzo mało informacji. Może to kogoś zainteresuje. Życzę miłego dnia, szanowni przyjaciele )

Reklama

Epickie serwery — to VPS na Linuxie lub Windows z potężnymi procesorami z rodziny AMD EPYC i bardzo szybkimi dyskami NVMe Intel. Nie zwlekaj, zamów teraz!

Instalacja i eksploatacja 'Rudder'

Źródło: habr.com

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster