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

Обзор

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

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

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

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

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

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

Безопасный пользователь для агента Zabbix

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

Для агента Zabbix:

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

Для Zabbix agent 2 настройку необходимо применять на уровне службы, поскольку файл конфигурации agent 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 agents по умолчанию отключено (можно включить, добавив параметр 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.