W wielu obszarach życia funkcjonują pewne zasady, których należy przestrzegać w celu odpowiedniego funkcjonowania lub dla bezpieczeństwa. Weźmy przykłady z motoryzacji. Światła mijania powinny oświetlać jezdnię w odpowiedni sposób. Większość kierowców weryfikuje ich ustawienie przy okazji obowiązkowych przeglądów technicznych i gdy jest potrzeba, to reflektory są odpowiednio regulowane. Także inne ważne układy podlegają kontroli, jako choćby hamulce czy układ kierowniczy. Ale co z okresem pomiędzy przeglądami? Przecież odchylenie od normy może powstać każdego dnia.
W IT także są ustalane i wdrażane pewne zasady dla systemów, a następnie cyklicznie weryfikowane. Przynajmniej w teorii. W rzeczywistości często odbywa się to wyłącznie podczas dorocznych audytów lub rzadziej. Czy można całość procesu weryfikacji udoskonalić? W przypadku samochodów być może, natomiast w IT – oczywiście. Wystarczy zastosować narzędzie, które jednocześnie wdraża ustaloną politykę oraz wykonuje audyt jej poprawności. Takim rozwiązaniem jest Rudder.
Zarządzanie systemami operacyjnymi
Za pomocą systemu Rudder możliwe jest centralne zarządzanie konfiguracją systemów operacyjnych Linux (Red Hat, SUSE, Debian, Ubuntu), Windows i innych (AIX, Solaris, Slackware). Dzięki Rudder konfiguracja będzie zawsze spójna, w każdej chwili można ją dostosować na wszystkich systemach i trwa to zaledwie kilka minut bez względu na to, czy jest ich kilka, czy kilkaset. Co najważniejsze, konfiguracja jest weryfikowana nawet kilkanaście razy na godzinę. Na bieżąco można śledzić stopień jej zgodności i propagacji, co znacznie ułatwia administrację.
Interfejs webowy umożliwia przegląd zgodności konfiguracji zarówno z punktu widzenia pojedynczego systemu, jak i polityki konfiguracyjnej. Polityki w elastyczny sposób przypisują wskazanym systemom zadane ustawienia. Na przykład systemy możemy podzielić na systemy produkcyjne i rozwojowe, a w zależności od tego, w której grupie system będzie umieszczony, będzie miał bardziej lub mniej restrykcyjne parametry, np. złożoności hasła.
Przykłady centralnej konfiguracji systemów operacyjnych:
- Standardowe oprogramowanie narzędziowe. Ze wskazanego zasobu lub repozytorium zainstalowane zostanie oprogramowanie. W razie manualnej deinstalacji oprogramowanie zostanie doinstalowane, a więc mamy pewność, że oprogramowanie będzie zawsze dostępne;
- Polityka haseł. Ustalenie parametrów systemu odpowiedzialnych za długość, złożoność i czas ważności hasła kont lokalnych;
- Konfiguracja ustawień uruchomieniowych systemu. Uruchamianie Linux bez trybu graficznego, zablokowanie funkcji restartu przy użyciu ctrl+alt+del;
- Konfiguracja sieciowa. Ustawienie DNS i NTP;
- Konfiguracja repozytoriów pakietów na Linux;
- Ustawienia parametrów konfiguracyjnych w rejestrze Windows;
- Ustawienie parametrów systemu i usług w plikach konfiguracyjnych Linux. Parametry kernela, usług sieciowych, zablokowane logowanie na konto root po SSH;
- Konfiguracja profili użytkowników (zmienne powłokowe, wygląd pulpitu);
- Konfiguracja sudoers na Linux;
- Konfiguracja TLS/SSL na Windows;
- Konfiguracja zadań cyklicznych. Windows Task Scheduler, Linux crontab.
Zarządzanie aplikacjami
Nie jesteśmy jednak ograniczeni wyłącznie do systemów operacyjnych i z powodzeniem można zarządzać ustawieniami aplikacji, jeżeli tylko udostępniają one pliki konfiguracyjne, CLI lub API. Takimi aplikacjami mogą być aplikacje backupowe, np. Networker, systemy monitoringu, np. Zabbix, kolektory logów, np. Graylog czy system antywirusowy, np. ClamAV i inne techniczne aplikacje do zarządzanie farmą serwerową.
Przykłady centralnej konfiguracji aplikacji technicznych:
- Adres serwera lub portu, z którym komunikuje się agent;
- Hasło do agenta lub serwera;
- Inne parametry zabezpieczeń jak szyfrowanie, certyfikaty;
- Parametry uruchomieniowe agenta: nazwa hosta, port, pamięć, liczba procesów;
- Skrypty backupowe lub monitorujące;
- Konfiguracja integracji backupowych;
- Polityka skanowania antywirusa.
Rudder w działaniu
Poza aplikacjami technicznymi Rudder może znaleźć zastosowanie również w aplikacjach biznesowych, które wymagają utrzymania wspólnej konfiguracji w złożonym środowisku, np. wielu instancji serwerów terminalowych. Wówczas wprowadzenie lub zmiana na wszystkich serwerach ustawień dotyczących np. połącznia do bazy danych lub ustawień związanych z bezpieczeństwem nie stanowi żadnego problemu. Co więcej, konfiguracja ta jest stale sprawdzana, zatem mamy ciągły audyt konfiguracji.
Audyt konfiguracji może odbywać się również dla obszarów niekonfigurowalnych przez samego Ruddera. Innymi słowy można tylko sprawdzić, czy pewna konfiguracja jest ustawiona, nie wprowadzić żadnych korekt w razie nieprawidłowości i zakończyć zadanie raportem za stanem faktycznym. Jest to funkcjonalność przydatna w sytuacji, gdy wykorzystujemy inne narzędzie do konfiguracji, np. GPO lub Ansible. Dzięki temu możliwe jest zachowanie dotychczasowej metodyki konfiguracyjnej, ale wzbogaconej o mechanizm stałego nadzoru.
Wykonanie manualnie weryfikacji poprawności ustawień jest zadaniem czasochłonnym i realnie niemożliwym do wykonanie częściej niż kilka razy w roku. Ale gdy proces jest w pełni zautomatyzowany, możemy audyt wykonać nawet kilka razy dziennie.
Z audytem powiązana jest inna funkcjonalność Ruddera, polegająca na zbieraniu informacji o systemie, takich jak między innymi nazwa i wersja systemu operacyjnego, zasoby obliczeniowe systemu, konfiguracja sieciowa czy zainstalowane oprogramowanie. Ponadto można dodać własne parametry, które będą zbierane z każdego systemu i dostępne dla Ruddera. Wszystkie te informacje można następnie wykorzystać zarówno do selekcji systemów w politykach, jak i do ustawiania odpowiednich parametrów w konfiguracjach na systemach.
Nic też nie stoi na przeszkodzie, aby zebrane przez Ruddera dane wyeksportować i użyć czy to w raportach, czy w innych systemach, wykorzystując do tego celu bardzo rozbudowane API Ruddera.
Wracając do administracji systemami operacyjnymi, warto przyjrzeć się kolejnej funkcjonaliści, dotyczącej tym razem automatyzacji aktualizacji systemów operacyjnych. Z jednej strony Rudder prezentuje zebrane informacje o zainstalowanym oprogramowaniu oraz dostępnych aktualizacjach, a z drugiej daje możliwość wgrania ich o zadanej porze i nawet wykonania restartu system. Tym samym jest gotowym do użycia automatem to aktualizacji systemów operacyjnych. W przyszłości dostępna będzie również możliwość uruchamiania skryptów przed procesem aktualizacji i po nim, co rozszerzy zakres stosowania tego narzędzia.
All for One Poland od trzech lat wykorzystuje Ruddera do zarządzania ponad 500 systemami Windows Linux w ramach Managed Cloud. Dzięki takiemu narzędziu jesteśmy w stanie sprostać rygorom audytowym norm bezpieczeństwa IT ISO27001.
Proces aktualizacji agentów narzędzi administracyjnych dla całego środowiska zajmuje kilka godzin, zamiast tygodni i jest realizowany przez jedną osobę. Codzienny przegląd stanu zgodności systemów z ustawioną polityką zajmuje kilkanaście minut, a zastępuje wielodniowe manualne przeglądy systemów. W razie wystąpienia aktualizacji krytycznej w ciągu kilku godzin przy zaangażowaniu jednej osoby wgrywane są poprawki na systemy. To jedne z najważniejszych zadań, które z powodzeniem realizujemy za pomocą Ruddera.