1. Контроль доступа
Обзор
В этом разделе приведены рекомендации по настройке контроля доступа безопасным образом.
Принцип наименьших привилегий
Учётные записи пользователей всегда должны иметь как можно меньше привилегий. Это означает, что учётные записи пользователей веб-интерфейса Zabbix, пользователей баз данных или пользователей, от имени которых запускаются процессы сервера/прокси/агента Zabbix, должны иметь только те привилегии, которые необходимы для выполнения предназначенных функций.
Предоставление избыточных привилегий пользователю «zabbix» позволит ему получать доступ к файлам конфигурации и выполнять операции, которые могут поставить под угрозу безопасность инфраструктуры.
При настройке прав учётной записи пользователя следует учитывать типы пользователей веб-интерфейса Zabbix. Обратите внимание, что, хотя тип пользователя Администратор имеет меньше прав, чем тип пользователя Супер-администратор, он, тем не менее, может управлять конфигурацией и выполнять пользовательские скрипты.
Некоторая информация доступна даже непривилегированным пользователям. Например, хотя раздел Оповещения → Скрипты доступен только для пользователей с ролью Супер-администратор, скрипты также можно получить посредством Zabbix API. В этом случае ограничение прав доступа к скриптам и исключение конфиденциальной информации из скриптов (например, учётных данных) может помочь избежать раскрытия конфиденциальной информации, доступной в глобальных скриптах.
Безопасный пользователь для агента Zabbix
По умолчанию процессы сервера, прокси и агента Zabbix (или agent 2) используют одну учетную запись zabbix.
Чтобы предотвратить доступ агента Zabbix/agent 2 (запущенного на той же машине, что и сервер/прокси) к конфиденциальным данным в конфигурации сервера/прокси (например, учетным данным базы данных), агент следует запускать от имени другого пользователя:
Для агента Zabbix:
- Создайте безопасные группу и пользователя (например,
zabbix-agent). - Укажите этого пользователя в параметре User файла конфигурации агента.
- Перезапустите агент, чтобы понизить привилегии до нового пользователя.
Для 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.