Instalacja i eksploatacja 'Rudder'

Instalacja i eksploatacja 'Rudder'

Wstęp

Nasza „przyjaźń” zaczęła się dwa lata temu. Przyszedłem do nowej pracy, gdzie poprzedni administrator bezceremonialnie zostawił mi tę aplikację w spadku. W internecie poza oficjalną dokumentacją nie udało mi się znaleźć nic więcej. Nawet teraz, jeśli wyszukasz „rudder”, w 99% przypadków pojawią się wyniki dotyczące sterów statków i dronów. Udało mi się znaleźć do niego podejście. Ponieważ społeczność tego oprogramowania jest niezmiernie mała, postanowiłem podzielić się swoim doświadczeniem i napotkanymi trudnościami. Myślę, że dla kogoś to będzie przydatne.

Więc, Rudder

Rudder to narzędzie do audytu i zarządzania konfiguracją z otwartym źródłem, które pomaga w automatyzacji konfiguracji systemu. Działa na zasadzie zainstalowania agenta na każdym użytkowniku końcowym. Przez wygodny interfejs możemy monitorować, w jakim stopniu nasza infrastruktura spełnia wszystkie określone polityki.

Użycie

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

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

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

Instalacja serwera

Ostatnio zaktualizowałem z wersji 5 do 6.1, wszystko przebiegło pomyślnie. Poniżej będą przedstawione komendy dla Deban/Ubuntu, ale jest też wsparcie: RHEL/CentOS i Sles.

Schowam instalację w spoilery, aby nie odwracać waszej uwagi.

Spoiler

Zależności

Dla rudder-server wymagana jest co najmniej Java RE w wersji 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 przez konfigurację

To wszystko, serwer gotowy.

Konfiguracja serwera

Teraz musimy dodać do agenta ruddera adresy IP agentów lub całą podsieć, zgodnie z 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ętrznych (jeśli to oczywiście sieć testowa i znajdujesz się za NAT) wpisujemy: 0.0.0.0/0

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

Porty

Na serwerze otwieramy następujące porty

  • 443 — tcp

  • 5309 — tcp

  • 514 — udp

Z zasadami wstępnymi serwera już się zapoznaliśmy.

Instalacja Agenta

Spoiler

Dodajemy klucz

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

Odcisk 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 również użyć nazwy domenowej 

Uruchamiając następujące polecenie, wyślemy zapytanie o dodanie nowego agenta na serwer, za kilka minut pojawi się na liście nowych agentów, jak dodać 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, przechodzimy 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 może minąć, zanim system sprawdzi serwer pod względem zgodności

Tworzenie grup serwerów

Stworzymy grupę (to prawdziwa rozrywka), 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 nadajemy nazwę.

Instalacja i eksploatacja 'Rudder'

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

Instalacja i eksploatacja 'Rudder'

Grupa skonfigurowana.

Konfiguracja reguł

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

Instalacja i eksploatacja 'Rudder'

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

Instalacja i eksploatacja 'Rudder'

I formujemy nową dyrektywę

Instalacja i eksploatacja 'Rudder'

Stworzymy dyrektywę dodania publicznych kluczy do .ssh/authorized_keys. Używam tego przypadku, gdy przychodzi nowy pracownik, lub dla ostrożności, na przykład jeśli ktoś przypadkowo usunie mój klucz.

Przechodzimy do polityki konfiguracji → Dyrektywy, po lewej widzimy „Bibliotekę dyrektyw”. Znajdujemy „Zdalny dostęp → Klucze SSH zatwierdzone”, po 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 określi, na których klientach powinien być klucz.

Instalacja i eksploatacja 'Rudder'

Zdecydowanie określamy naszą zasadę.

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. Listy zainstalowanych pakietów, interfejsów, otwartych portów i wiele więcej, co można 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; ostatnio tego nie sprawdzałem, nie było takiej potrzeby.

Od autora

Możecie się zastanawiać, po co wynajdywać na nowo koło, skoro już istnieją ansible i puppet?

Odpowiadam: Ansible ma swoje wady, na przykład nie widzimy, w jakim stanie jest obecnie ten konfiguracja, czy przypomina wam sytuację, kiedy uruchamiacie rolę lub playbook i pojawiają się błędy, które krzyczą o awarii, a wy musicie wchodzić na serwer, aby sprawdzić, który pakiet został zaktualizowany. Z puppetem po prostu nie pracowałem.

Czy są jakieś wady Ruddera? Jest ich wiele... Zaczynając od tego, że agenci się rozłączają i trzeba je ponownie instalować lub korzystać z komendy rudder reset. (ale w wersji 6 jeszcze tego nie widziałem), kończąc na bardzo skomplikowanej konfiguracji i nielogicznym interfejsie.

Czy są jakieś plusy? Plusów jest również sporo: w przeciwieństwie do znanego ansible mamy interfejs webowy, w którym widać zastosowany przez nas compliance. Na przykład - czy porty są otwarte, w jakim stanie jest firewall, czy zainstalowane są agenci zabezpieczeń lub inne dodatki.

To oprogramowanie idealnie nadaje się dla działu bezpieczeństwa informacji, ponieważ stan infrastruktury zawsze będzie przed oczami, a jeśli jakieś z zasad zostanie oznaczone na czerwono, to jest to powód, aby odwiedzić serwer. Jak wspominałem, od 2 lat używam Rudder, i jeśli trochę go rozgryziecie, życie staje się lepsze. Najtrudniejszą rzeczą w dużej infrastrukturze jest to, że nie pamiętacie, w jakim stanie jest serwer; nie przegapiliście instalacji agentów zabezpieczeń ani nie poprawnie skonfigurowaliście iptables; Rudder pomoże wam być na bieżąco ze wszystkimi wydarzeniami. Świadomy, więc uzbrojony! )

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

P.S.S Artykuł ma charakter informacyjny, postanowiłem się podzielić, ponieważ w Internecie jest bardzo mało informacji na ten temat. Może to kogoś zainteresuje. Życzę miłego dnia, drodzy przyjaciele :)

Reklama

Epickie serwery — to VPS na Linuxie lub Windows z potężnymi procesorami z rodziny AMD EPYC i bardzo szybkimi dyskami NVMe Intel. Spiesz się zamówić!

Instalacja i eksploatacja 'Rudder'

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster