1 Kontrola dostępu
Przegląd
Ta sekcja zawiera najlepsze praktyki dotyczące bezpiecznej konfiguracji kontroli dostępu.
Zasada najmniejszych uprawnień
Konta użytkowników powinny przez cały czas działać z możliwie najmniejszym zakresem uprawnień. Oznacza to, że konta użytkowników w frontend Zabbix, użytkownicy bazy danych lub użytkownik procesów serwer/proxy/agent Zabbix powinni mieć wyłącznie uprawnienia niezbędne do wykonywania zamierzonych funkcji.
Przyznanie dodatkowych uprawnień użytkownikowi „zabbix” umożliwi mu dostęp do plików konfiguracyjnych oraz wykonywanie operacji, które mogą zagrozić bezpieczeństwu infrastruktury.
Podczas konfigurowania uprawnień kont użytkowników należy uwzględnić typy użytkowników frontend w Zabbix. Należy pamiętać, że chociaż typ użytkownika Admin ma mniej uprawnień niż typ użytkownika Super Admin, nadal może zarządzać konfiguracją i wykonywać skrypty niestandardowe.
Niektóre informacje są dostępne nawet dla użytkowników bez uprawnień uprzywilejowanych. Na przykład, podczas gdy Alerts → Scripts jest dostępne tylko dla użytkowników Super Admin, skrypty można również pobrać za pośrednictwem Zabbix API. W takim przypadku ograniczenie uprawnień do skryptów oraz wykluczenie informacji wrażliwych ze skryptów (na przykład danych dostępowych) może pomóc uniknąć ujawnienia informacji wrażliwych dostępnych w skryptach globalnych.
Bezpieczny użytkownik dla Zabbix agent
Domyślnie procesy Zabbix serwer, proxy i agent (lub agent 2) współdzielą jednego użytkownika zabbix.
Aby zapobiec dostępowi Zabbix agent/agent 2 (uruchomionego na tej samej maszynie co serwer/proxy) do poufnych informacji w konfiguracji serwera/proxy (na przykład poświadczeń bazy danych), agent powinien być uruchamiany pod innym użytkownikiem:
Dla Zabbix agent:
- Utwórz bezpieczną grupę i użytkownika (np.
zabbix-agent). - Ustaw tego użytkownika w parametrze User pliku konfiguracyjnego agent.
- Uruchom ponownie agent, aby porzucić uprawnienia na rzecz nowego użytkownika.
W przypadku Zabbix agent 2 konfigurację należy zastosować na poziomie usługi, ponieważ plik konfiguracyjny agent 2 nie obsługuje parametru User.
Przykład znajduje się w ZBX-26442.
Cofnięcie dostępu do zapisu do konfiguracji SSL (Windows)
Jeśli skompilowano agent Zabbix w systemie Windows z biblioteką OpenSSL znajdującą się w niezabezpieczonym katalogu (np. C:\zabbix, c:\openssl-64bit, C:\OpenSSL-Win64-111-static lub C:\dev\openssl), należy upewnić się, że użytkownikom niebędącym administratorami odebrano uprawnienia do zapisu do tego katalogu.
W przeciwnym razie agent będzie wczytywać ustawienia SSL ze ścieżki, która może zostać zmodyfikowana przez nieuprzywilejowanych użytkowników, co stwarza potencjalną lukę bezpieczeństwa.
Wzmacnianie bezpieczeństwa komponentów Zabbix
Niektóre funkcje można wyłączyć, aby zwiększyć bezpieczeństwo komponentów Zabbix:
- wykonywanie skryptów globalnych na serwerze Zabbix można wyłączyć, ustawiając EnableGlobalScripts=0 w konfiguracji serwera;
- wykonywanie skryptów globalnych na proxy Zabbix jest domyślnie wyłączone (można je włączyć, ustawiając EnableRemoteCommands=1 w konfiguracji proxy);
- wykonywanie skryptów globalnych na agentach Zabbix jest domyślnie wyłączone (można je włączyć, dodając parametr AllowKey=system.run[<command>,*] dla każdego dozwolonego polecenia w konfiguracji agenta);
- uwierzytelnianie użytkowników HTTP można wyłączyć, ustawiając
$ALLOW_HTTP_AUTH=falsew pliku konfiguracyjnym frontendu (zabbix.conf.php). Należy pamiętać, że ponowna instalacja frontendu (uruchomienie setup.php) spowoduje usunięcie tego parametru.
Dostęp do ścieżek UNC w systemie Windows przez agent Zabbix
Agenty Zabbix w systemie Windows obsługują ścieżki UNC (udziały SMB, takie jak \\server\share\file.txt) w pozycjach takich jak vfs.file.*, vfs.dir.*, modbus.get oraz perf_counter*. W niektórych kontekstach może to stanowić zagrożenie bezpieczeństwa.
Gdy system Windows otrzymuje żądanie dostępu do ścieżki UNC, próbuje uwierzytelnić się na tym serwerze. Oznacza to, że złośliwe żądanie do agent Zabbix może ujawnić skrót NTLM serwerowi żądającego. Użytkownicy mogą ograniczyć to ryzyko za pomocą parametrów konfiguracyjnych AllowKey i DenyKey, jeśli zajdzie taka potrzeba.