1 Контроль доступа

Обзор

В этом разделе содержатся рекомендации по безопасной настройке контроля доступа.

Принцип наименьших привилегий

Учетные записи пользователей всегда должны работать с минимально возможными привилегиями. Это означает, что учетные записи пользователей в веб-интерфейсе Zabbix, пользователи базы данных или пользователь для процессов сервера/прокси/агента Zabbix должны иметь только те привилегии, которые необходимы для выполнения предусмотренных функций.

Предоставление дополнительных привилегий пользователю 'zabbix' позволит ему получать доступ к конфигурационным файлам и выполнять операции, которые могут поставить под угрозу безопасность инфраструктуры.

При настройке привилегий учетных записей пользователей следует учитывать типы пользователей веб-интерфейса Zabbix. Обратите внимание, что хотя тип пользователя Admin имеет меньше привилегий, чем тип пользователя Super Admin, он все равно может управлять конфигурацией и выполнять пользовательские скрипты.

Некоторая информация доступна даже непривилегированным пользователям. Например, хотя AlertsScripts доступно только пользователям типа Super Admin, скрипты также можно получить через Zabbix API. В этом случае ограничение прав на скрипты и исключение конфиденциальной информации из скриптов (например, учетных данных доступа) может помочь избежать раскрытия конфиденциальной информации, доступной в глобальных скриптах.

Защищенный пользователь для Zabbix агент

По умолчанию процессы Zabbix сервер, прокси и агент (или агент 2) используют одного общего пользователя zabbix. Чтобы предотвратить доступ Zabbix агент/агент 2 (запущенного на той же машине, что и сервер/прокси) к конфиденциальным данным в конфигурации сервера/прокси (например, учетным данным базы данных), агент следует запускать от имени другого пользователя:

Для Zabbix агент:

  1. Создайте защищенные группу и пользователя (например, zabbix-agent).
  2. Укажите этого пользователя в параметре User файла конфигурации агента.
  3. Перезапустите агент, чтобы сбросить привилегии до нового пользователя.

Для Zabbix агент 2 конфигурация должна применяться на уровне service, поскольку файл конфигурации агент 2 не поддерживает параметр User. Пример см. в ZBX-26442.

Отзовите права на запись к конфигурации SSL (Windows)

Если вы скомпилировали агент Zabbix в Windows, а OpenSSL расположен в незащищенном каталоге (например, C:\zabbix, c:\openssl-64bit, C:\OpenSSL-Win64-111-static или C:\dev\openssl), обязательно отзовите права на запись для пользователей без прав администратора к этому каталогу. В противном случае агент будет загружать настройки SSL из пути, который могут изменять непривилегированные пользователи, что создает потенциальную уязвимость безопасности.

Усиление безопасности компонентов Zabbix

Некоторые функции можно отключить для усиления безопасности компонентов Zabbix:

  • выполнение глобальных скриптов на сервере Zabbix можно отключить, установив EnableGlobalScripts=0 в конфигурации сервера;
  • выполнение глобальных скриптов на прокси Zabbix по умолчанию отключено (можно включить, установив EnableRemoteCommands=1 в конфигурации прокси);
  • выполнение глобальных скриптов на агентах Zabbix по умолчанию отключено (можно включить, добавив параметр AllowKey=system.run[<command>,*] для каждой разрешённой команды в конфигурации агента);
  • HTTP-аутентификацию пользователей можно отключить, установив $ALLOW_HTTP_AUTH=false в файле конфигурации веб-интерфейса (zabbix.conf.php). Обратите внимание, что повторная установка веб-интерфейса (запуск setup.php) удалит этот параметр.

Доступ к UNC-путям в Windows через агент Zabbix

Агенты Zabbix в Windows обрабатывают UNC-пути (SMB-ресурсы, такие как \\server\share\file.txt) в элементах данных, таких как vfs.file.*, vfs.dir.*, modbus.get и perf_counter*. В некоторых случаях это может представлять риск для безопасности.

Когда Windows получает запрос на доступ к UNC-пути, она пытается пройти аутентификацию на этом сервере. Это означает, что вредоносный запрос к агенту Zabbix может раскрыть NTLM-хеш серверу, отправившему запрос. При необходимости пользователи могут снизить этот риск с помощью параметров конфигурации AllowKey и DenyKey.