Przedmowa
Nasza „przyjaźń” zaczęła się dwa lata temu. Trafiłem do nowego miejsca pracy, gdzie poprzedni administrator dobrowolnie pozostawił mi to oprogramowanie w spadku. W Internecie poza oficjalną dokumentacją nic nie udało się znaleźć. Nawet teraz, jeśli wpiszesz w Google „ster”, w 99% przypadków wyświetli się: stery statków i quadrocoptery. Udało mi się znaleźć na to sposób. Ponieważ społeczność tego oprogramowania jest znikoma, postanowiłem podzielić się swoim doświadczeniem i prowizją. Myślę, że komuś się przyda.
Więc ster
Rudder to narzędzie typu open source do audytu i zarządzania konfiguracją, które pomaga zautomatyzować konfigurację systemu. Działa na zasadzie instalacji agenta dla każdego użytkownika końcowego. Dzięki przyjaznemu interfejsowi możemy obserwować, jak nasza infrastruktura spełnia wszystkie określone polityki.
Używać
Poniżej napiszę do czego używam Ruddera.
-
Kontrola plików i konfiguracji: ./ssh/authorized_keys ; /etc/hosts ; iptables ; (a potem dokąd zaprowadzi fantazja)
-
Kontrola zainstalowanych pakietów: zabbix.agent lub dowolne inne oprogramowanie
Instalacja serwera
Któregoś dnia zaktualizowałem wersję 5 do 6.1, wszystko poszło dobrze. Poniżej znajdują się polecenia dla Debana/Ubuntu, ale także obsługa:
Ukryję instalację w spoilerach, żeby nie rozpraszać.
Spoiler
Zależności
ster-server wymaga co najmniej Java RE w wersji 8, można go zainstalować ze standardowego repozytorium:
Sprawdź, czy jest zainstalowany
java -version
jeśli wyjście
-bash: java: command not found
następnie zainstaluj
apt install default-jre
Server
Import klucza
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Oto odcisk
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
Ponieważ nie mamy płatnej subskrypcji, dodajemy następujące repozytorium
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
Zaktualizuj listę repozytoriów i zainstaluj serwer
apt update
apt install rudder-server-root
Utwórz użytkownika administratora
rudder server create-user -u admin -p "Ваш Пароль"
W przyszłości będziemy mogli zarządzać użytkownikami poprzez konfigurację
Wszystko, serwer jest gotowy.
Strojenie serwera
Teraz musisz dodać adresy IP agentów lub całej podsieci do agenta steru, skupiając się na polityce bezpieczeństwa.
Ustawienia -> Ogólne
W polu „Dodaj sieć” wprowadź adres i maskę w formacie xxxx/xx . Aby zezwolić na dostęp ze wszystkich adresów sieci wewnętrznej (jeśli oczywiście jest to sieć testowa i jesteś za NATem) wpisz: 0.0.0.0/0
Ważne - po dodaniu adresu IP nie zapomnij kliknąć Zapisz zmiany, w przeciwnym razie nic nie zostanie zapisane.
Porty
Otwórz następujące porty na serwerze
-
443-tcp
-
5309-tcp
-
514-udp
Ustaliliśmy wstępną konfigurację serwera.
Instalowanie agenta
Spoiler
Dodawanie klucza
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Kluczowy odcisk palca
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
Dodanie repozytorium
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
Instalowanie agenta
apt update
apt install rudder-agent
Konfiguracja agenta
Podaj adres IP serwera strategii dla agenta
rudder agent policy-server <rudder server ip or hostname> #Без скобок. Можно также использовать доменное имя
Uruchamiając poniższą komendę wyślemy prośbę o dodanie nowego agenta do serwera, za kilka minut pojawi się on na liście nowych agentów, sposób dodania wyjaśnię w następnej sekcji
rudder agent inventory
Możemy też wymusić uruchomienie agenta, a on natychmiast wyśle żądanie
rudder agent run
Nasz agent jest gotowy, ruszajmy dalej.
Dodawanie agentów
Zaloguj sie
https://127.0.0.1/rudder/index.html
Twój agent pojawi się w sekcji „Akceptuj nowe węzły”, zaznacz pole i kliknij Akceptuj
Sprawdzenie serwera pod kątem zgodności powinno zająć systemowi trochę czasu
Utwórz grupy serwerów
Stwórzmy grupę (to wciąż rozrywka), nie mając pojęcia, po co twórcy zrobili takie hemoroidalne formowanie grup, ale jak rozumiem, nie ma innego wyjścia. Przejdź do sekcji Zarządzanie węzłami -> Grupy i kliknij Utwórz, wybierz grupę statyczną i nazwę.
Filtrujemy potrzebny serwer według specjalnych znaków, na przykład adresu IP i zapisujemy
Grupa jest założona.
Ustalanie reguł
Przejdź do Polityka konfiguracji → Reguły i utwórz nową regułę
Dodaj grupę przygotowaną wcześniej (można to zrobić później)
I tworzymy nową dyrektywę
Stwórzmy dyrektywę dodającą klucze publiczne do .ssh/authorized_keys. Korzystam z tego, gdy odchodzi nowy pracownik lub w celu reasekuracji, jeśli ktoś niechcący wytnie mi klucz.
Przejdź do Polityka konfiguracji → Dyrektywy po lewej stronie widzimy „Biblioteka dyrektyw” Znajdź „Dostęp zdalny → Autoryzowane klucze SSH”, po prawej stronie kliknij Utwórz dyrektywę
Wprowadzamy dane o użytkowniku i dodajemy jego klucz. Następnie wybierz politykę aplikacji
-
Globalne — zasady domyślne
-
Wymuszaj — wykonuje na wybranych serwerach
-
Audyt — przeprowadź audyt i powiedz, którzy klienci mają klucz
Pamiętaj, aby określić naszą regułę
Następnie zapisz i gotowe.
Kontrola
Klucz dodano pomyślnie
Bułeczki
Agent przekazuje pełną informację o serwerze. Listy zainstalowanych pakietów, interfejsów, otwartych portów i wiele więcej, które możesz zobaczyć na zrzucie ekranu poniżej
Można też instalować i sterować oprogramowaniem nie tylko na Linuksie ale i na Windowsie, tego drugiego nie sprawdzałem, nie było takiej potrzeby..
Od autora
Pewnie zastanawiasz się, po co wymyślać koło na nowo, skoro ansible i marionetki zostały wynalezione już dawno?
Odpowiadam: Ansible ma wady, na przykład nie widzimy w jakim stanie jest teraz ta konfiguracja, albo wszyscy znają sytuację, gdy uruchamiasz rolę lub podręcznik i wylatują błędy, a ty zaczynasz wspinać się na serwer i widzisz który pakiet został zaktualizowany gdzie. I po prostu nie pracowałem z lalką…
Czy Rudder ma jakieś wady? Dużo.. Począwszy od tego, że agenty odpadają i trzeba je ponownie zainstalować lub użyć komendy resetu steru. (ale swoją drogą nie widziałem tego jeszcze w wersji 6), kończąc na niezwykle skomplikowanej konfiguracji i nielogicznym interfejsie.
Czy są jakieś zalety? A plusów jest też sporo: W przeciwieństwie do dobrze znanego ansibla, mamy interfejs WWW, w którym możemy sprawdzić zastosowaną przez nas zgodność. Na przykład, czy porty wystają poza świat, w jakim stanie jest zapora ogniowa, czy są zainstalowani agenci bezpieczeństwa lub inne bezpańskie.
To oprogramowanie jest idealne dla działu bezpieczeństwa informacji, ponieważ stan infrastruktury będzie zawsze na Twoich oczach, a jeśli którakolwiek z reguł zaświeci się na czerwono, jest to powód do odwiedzenia serwera. Jak mówiłem, używam Ruddera już od 2 lat i jeśli trochę go wypalisz, życie stanie się lepsze. Najtrudniej w dużej infrastrukturze jest to, że nie pamiętasz w jakim stanie jest serwer, czy w czerwcu nie instalowałeś agentów bezpieczeństwa, czy poprawnie skonfigurowałeś iptables, ster pomoże Ci być na bieżąco ze wszystkimi wydarzeniami. Świadomy znaczy uzbrojony! )
PS Wyszło znacznie więcej niż planowałem, nie będę opisywał jak zainstalować pakiety, jeśli będą jakieś prośby, napiszę drugą część.
PSS Artykuł ma charakter informacyjny, postanowiłem go udostępnić, ponieważ w Internecie jest bardzo mało informacji. Może kogoś to zainteresuje. Miłego dnia kochani
O prawach reklamy
Epickie serwery - jest
Źródło: www.habr.com