Zabbix прокси для windows

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

А не пришло ли время разобраться и навести наконец-то порядок с безопасностью в мониторинге? Тем более, в одной из популярных систем мониторинга и встроенная возможность такая имеется.

На схеме видно, что зашифровать можно почти все потоки внутри Zabbix. В этой статье мы расскажем и покажем как это сделать, а еще расскажем о новой интеграции Zabbix с хранилищем секретов Hashicorp Vault. Там можно хранить любую чувствительную информацию от логина/пароля в БД до значений макросов. Это позволит централизованно управлять авторизационными данными, вести аудит и не хранить их на файловой системе или в БД Zabbix. Такой функционал появился в последней (на момент публикации статьи) версии Zabbix 5.2.

Интересный факт: включение шифрования на компонентах Zabbix не требует открытия дополнительных портов на фаерволлах, демоны Zabbiх поддерживают шифрованные и нешифрованные соединения одновременно.

Велкам ту подкат.

В Zabbix есть следующие основные информационные потоки:

  • Пользователь (web-браузер) Zabbix web-сервер. Управление конфигурацией Zabbix, представление метрик. Шифрование настраивается средствами web-сервера.
  • Zabbix web-сервер Zabbix-сервер. Web-сервер проверяет запущен ли Zabbix-сервер, запрашивает текущее состояние очереди, выполняет тест элементов данных и некоторые другие операции. Единственный поток, который в соответствии с архитектурой Zabbix нельзя зашифровать. Мы даже пытаться не будем.
  • Zabbix web-сервер База данных Zabbix. Web-сервер обновляет конфигурацию в БД, извлекает данные для визуализации, удаляет исторические данные (по нажатию на Очистить историю) и запускает задания Выполнить сейчас (Execute now). Можно настроить при установке или позже в файле конфигурации zabbix.conf.php. Поддерживается TLS-шифрование при помощи ключей. Для хранения логина и пароля для БД можно использовать Vault. Важный факт: сертификаты, защищённые паролем не поддерживаются.
  • Zabbix-сервер База данных Zabbix. Zabbix-сервер через configuration syncer загружает в свой кэш конфигурацию, через history syncer записывает собранные данные в БД, очищает историю (housekeeping) и выполняет некоторые другие операции. Настройки шифрования выполняются через присваивание значений специальным ключам в конфигурационном файле zabbix_server.conf.
  • Zabbix-сервер Zabbix-агент. Поддерживаются общий ключ PSK и сертификаты. Взаимодействие этих компонентов делится на две части: к узлу сети (TLSAccept для пассивных проверок) и от узла сети (TLSConnect для активных проверок).
  • Zabbix-сервер Zabbix-прокси. Поддерживаются общий ключ PSK и сертификаты. Настройки выполняются через присваивание значений специальным ключам в конфигурационном файле zabbix_proxy.conf.
  • Zabbix-прокси Zabbix-агент. Поддерживаются общий ключ PSK и сертификаты. Взаимодействие этих компонентов делится на две части: к узлу сети (TLSAccept для пассивных проверок) и от узла сети (TLSConnect для активных проверок).
  • Zabbix-прокси БД Zabbix-прокси. Настройки выполняются через присваивание значений специальным ключам в конфигурационном файле zabbix_proxy.conf.
  • Zabbix sender -> Zabbix-прокси. Поддерживаются общий ключ PSK и сертификаты в качестве параметров при вызове через командную строку.
  • Zabbix-агент -> Zabbix get. Поддерживаются общий ключ PSK и сертификаты в качестве параметров при вызове через командную строку.

Пользователь (web-браузер) Zabbix web-сервер

Шифрование этой коммуникации не поддерживается со стороны Zabbix, нужно самостоятельно выполнить настройку на стороне Apache или Nginx. В этой статье мы рассмотрим настройку Nginx с самоподписанным SSL-сертификатом, т.к. преимущественно используем именно Nginx в своих проектах по мониторингу на базе Zabbix. Можно использовать сертификат доверенного центра сертификации, например, бесплатный от Let’s Encrypt. Это позволит избежать страшных предупреждений в браузере. Обращаем внимание, что использование самоподписанного сертификата никак не умаляет надежности шифрованного соединения, оно будет таким же защищённым как и при использовании сертификата от доверенного CA.

Читайте также:  Enable cookies safari windows

В браузере появится «замочек» и можно посмотреть детали сертификата. Соединение зашифровано.

Zabbix web-сервер База данных Zabbix

Перед началом настройки на стороне Zabbix, в БД должны быть созданы пользователи и роли с атрибутами, требующими шифрованное подключение.

Вызов статуса вернет, в том числе, данные по настройкам шифрования. Убедимся, что в строке SSL указаны алгоритмы шифрования.

Настройку шифрования между Zabbix и базой данных можно выполнить сразу при первичной настройке Zabbix через web-интерфейс. Обратите внимание на подпись напротив Database TLS encryption. Из-за того, что для подключения к локальной БД используется socket file, нет возможности настроить шифрованное подключение. Поэтому в поле Хост базы данных должны быть указаны IP-адрес или имя сервера с БД.

Меняем localhost на IP-адрес сервера и появляется чекбокс.

На двух скриншотах выше можно увидеть нововведение в Zabbix версии 5.2 — поддержку интеграции с хранилищем Vault. Перед началом настройки Zabbix мы создали пару ключей и учетными данными для подключения к БД.

Берем клиентские ключи MySQL, заполняем необходимые поля и нажимаем Далее.

Другой способ настроить то же самое — соответствующие ключи в конфигурационном файле zabbix.conf.php.

$DB[‘ENCRYPTION’] = true;
$DB[‘KEY_FILE’] = ‘/etc/ssl/mysql/client-key.pem’;
$DB[‘CERT_FILE’] = ‘/etc/ssl/mysql/client-cert.pem’;
$DB[‘CA_FILE’] = ‘/etc/ssl/mysql/ca.pem’;
$DB[‘VERIFY_HOST’] = true;
$DB[‘CIPHER_LIST’] = »;

Zabbix-сервер База данных Zabbix

На предыдущем шаге мы уже создали пользователя для подключения, клиентские ключи для подключения тоже есть. Осталось прописать эти данные в конфигурационный файл Zabbix-сервера.

DBTLSConnect=required
DBTLSCAFile=/etc/ssl/mysql/ca.pem
DBTLSCertFile=/etc/ssl/mysql/client-key.pem
DBTLSKeyFile=/etc/ssl/mysql/client-cert.pem
DBTLSCipher=»

После выполненных настроек, необходима перезагрузка службы Zabbix-сервера. Логин и пароль для подключения Zabbix-сервера к БД мы также храним в Vault.

Использование Vault требует добавления значений к следующим переменным в конфигурации Zabbix-сервера:

VaultDBPath=kv/secret/zabbix
VaultToken=s.Ev50RnGXNM3FmmcVBMRrR4Nz
VaultURL=http://192.168.56.101:8200

Переменная VaultDBPath отвечает за хранение учетных данных для подключения к БД. Подробнее о шифровании подключений к БД можно узнать в документации Zabbix.

Zabbix-сервер Zabbix-прокси

Как многие пользователи Zabbix знают, в системе существует два типа подключений для передачи метрик: пассивные и активные. Пассивные подразумевают запрос к источнику данных, а активные – отправку данных от источника вне зависимости запроса приемника. Аналогичным образом, соединение между сервером и прокси могут быть пассивными или активными. На скриншоте ниже настроен активный прокси, соединение, с которым зашифровано по технологии PSK.

Обратите внимание, что исходящие соединения (пассивные) могут выполняться каким-то одним способом на выбор, а для входящих доступны комбинации вариантов: без шифрования, PSK или сертификат.

На стороне прокси все настройки выполняются в конфигурационном файле. Для активных проверок:

TLSConnect=psk
TLSPSKIdentity=test_zabbix
TLSPSKFile=/var/zabbix/agentd.psk

Для пассивных проверок:

TLSAccept=psk
TLSPSKIdentity=test_zabbix
TLSPSKFile=/var/zabbix/agentd.psk

Второй способ шифрования подключения – использование сертификатов. Заметим, что для pre-shared key (PSK) и сертификатов, закрытый ключ хранится на файловой системе в открытом виде.
Подробная информация доступна в документации Zabbix.

Zabbix-сервер Zabbix-агент и Zabbix-прокси Zabbix-агент

Мы не будем повторяться, настройка этих соединений аналогична настройке соединения сервера с прокси: для исходящих соединений доступен один вариант, для входящих один или несколько.

Читайте также:  Аналог evernote для linux

Названия переменных для настройки шифрования на стороне агента полностью аналогичны переменным в конфигурации прокси.

Zabbix-прокси БД Zabbix-прокси

Подход к настройке аналогичен настройке шифрованного соединения между Zabbix-сервером и БД. Названия переменных такие же, указываются в конфигурационном файле Zabbix-прокси.

Zabbix sender -> Zabbix-прокси и Zabbix-агент -> Zabbix get

Шифрование соединения с утилитами Zabbix sender и Zabbix get выполняется при помощи специальных параметров при вызове соответствующих утилит.

zabbix_sender -z 127.0.0.1 -s zabbix02 -k Encrypt -o 18 —tls-connect psk —tls-psk-identity «test_zabbix» —tls-psk-file /etc/zabbix/keys/agent.psk

zabbix_get -s 127.0.0.1 -k agent.version \
—tls-connect psk —tls-psk-identity «test_zabbix» —tls-psk-file /etc/zabbix/keys/agent.psk

Авторегистрация с шифрованием

Шифрование также поддерживается и для процесса авторегистрации.

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

Хранение чувствительной информации в Vault

Приятное нововведение, которое появилось в версии Zabbix 5.2 — поддержка хранилища Vault. Его можно использовать как для хранения учетных данных для доступа к БД так и для значений макросов. Так значения макросов выглядят в Vault:

А так на них можно сослаться в интерфейсе Zabbix:

Хранение значений макросов очень сильно упрощает управление учетными данными для разных шаблонов, позволяет легко отзывать учетные данные и вести аудит. Разумеется, из Vault можно брать значения любых макросов и это добавляет ещё одну степень свободы при автоматизации мониторинга в Zabbix.

Заключение

В статье мы рассказали о возможностях шифрования в Zabbix. Перед решением об использовании шифрованных подключений, важно понимать, что это снижает производительность системы мониторинга и сильнее утилизирует аппаратное обеспечение. Без понятной причины шифрование использовать не стоит.

Мы давно и успешно работаем с Zabbix, если у вас есть задачи по развитию, сопровождению или обновлению системы, оставьте заявку через форму обратной связи или свяжитесь другим удобным способом.

А ещё можно почитать:

Для обработки событий от Zabbix, Prometheus, Elastic и других систем рекомендуем использовать Amixr (презентация по запросу).

Zabbix Documentation 5.2

Table of Contents

1 Прокси

Обзор

Zabbix прокси может собирать данные о производительности и доступности от имени Zabbix сервера. Таким образом, прокси может взять на себя некоторую часть нагрузки по сбору данных и разгрузить Zabbix сервер.

Кроме того, использование прокси это самый простой способ осуществления централизованного и распределенного мониторинга, когда все агенты и прокси отчитываются перед одним Zabbix сервером и все данные собираются в централизованном порядке.

Zabbix прокси можно использовать для:

Прокси требует только одно TCP соединение к Zabbix серверу. Таким образом, будет проще настроить обход брандмауэра, вам потребуется настроить только одно правило в брандмауэре.

Все данные собранные прокси, перед отправкой их серверу, хранятся локально. Таким образом, данные не теряются из-за временных проблем со связью с сервером. Параметры ProxyLocalBuffer и ProxyOfflineBuffer в файле конфигурации прокси управляют как долго данные будут храниться локально.

Zabbix прокси — коллектор данных. Он не вычисляет триггеры, не обрабатывает события и не отправляет оповещения. Для обзора возможностей прокси, просмотрите следующую таблицу:

Функция Поддержка прокси
Элементы данных
Проверки через Zabbix агент Да
Проверки через Zabbix агент (активный) Да 1
Простые проверки Да
Элементы данных траппера Да
SNMP проверки Да
SNMP трапы Да
IPMI проверки Да
JMX проверки Да
Мониторинг файлов журналов Да
Внутренние проверки Да
Проверки через SSH Да
Проверки через Telnet Да
Внешние проверки Да
Зависимые элементы данных Да 2
Встроенный веб-мониторинг Да
Обнаружение сети Да
Низкоуровневое обнаружение Да
Удаленные команды Да
Вычисление триггеров Нет
Обработка событий Нет
Корреляция событий Нет
Отправка оповещений Нет
Предобработка значений элементов данных Нет

Настройка

Если у вас есть установленный и настроенный прокси, то самое время настроить его в веб-интерфейсе Zabbix.

Добавление прокси

Для настройки прокси в веб-интерфейсе Zabbix:

Параметр Описание
Имя прокси Введите имя прокси. Оно должно совпадать с именем параметра Hostname в файле конфигурации прокси.
Режим прокси Выберите режим прокси.
Активный — прокси будет подключаться к Zabbix серверу и запрашивать данные конфигурации
Пассивный — к прокси будет подключаться Zabbix сервер
Обратите внимание, что (деликатные) данные конфигурации могут стать доступны лицам, имеющим доступ к порту траппера Zabbix сервера, при использовании активного прокси. Такое возможно потому что, кто угодно может представиться активным прокси и запросить данные конфигурации, если аутентификация не выполняется или адреса прокси не ограничены в поле Адрес прокси.
Адрес прокси Если задано значение, тогда запросы активного прокси принимаются только из этого списка разделенных запятыми IP адресов, опционально в CIDR нотации, или DNS имён активного Zabbix прокси.
Это поле доступно только, если выбран активный прокси в поле Режим прокси. Макросы не поддерживаются.
Эта опция поддерживается начиная с Zabbix 4.0.0.
Интерфейс Укажите детали интерфейса пассивному прокси.
Это поле доступно только, если в поле Режим прокси выбран пассивный прокси.
IP адрес IP адрес пассивного прокси (опционально).
DNS имя DNS имя пассивного прокси (опционально).
Подключение через Нажав соответствующую кнопку, вы сообщите Zabbix серверу что использовать для получения данных с прокси:
IP — Подключение к прокси по IP адресу (рекомендуется)
DNS — Подключение к прокси по DNS имени
Порт Номер TCP/UDP порта пассивного прокси (по умолчанию 10051).
Описание Введите описание прокси.

Вкладка Шифрование позволяет вам требовать шифрованных соединений с прокси.

Параметр Описание
Подключения к прокси Каким образом сервер подключается к пассивному прокси: без шифрования (по умолчанию), используя PSK (pre-shared key) или сертификат.
Соединения с прокси Выберите какой тип подключений разрешен с активного прокси. Можно выбрать несколько типов соединений одновременно (полезно при тестировании и переключении на другой тип соединения). По умолчанию — “Без шифрования”.
Издатель Разрешенный эмитент сертификата. Сертификат сначала подтверждается CA (центром сертификации). Если он действительный, подписан с помощью CA, тогда можно использовать поле Издатель для более строго ограничения разрешенных CA. Это поле опционально, предназначено для использования, если ваша Zabbix инсталляция использует сертификаты от нескольких CA.
Тема Разрешенная тема сертификата. Сертификат сначала подтверждается CA. Если он действительный, подписан с помощью CA, тогда можно использовать поле Тема, чтобы разрешить только одно значение строки Тема. Если поле пустое, тогда принимается любой сертификат, подписанный настроенным CA.
Идентификатор PSK Строка идентификации pre-shared key.
PSK Pre-shared key (строка в шестнадцатеричном формате). Максимальная длина: 512 шестнадцатеричных цифр (256-байт PSK), если Zabbix использует библиотеки GnuTLS или OpenSSL, 64 шестнадцатеричных цифр (32-байт PSK), если Zabbix использует библиотеку mbed TLS (PolarSSL). Пример: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952
Настройка узлов сети

Вы можете указать какие конкретно узлы сети должны наблюдаться через прокси в диалоге настройки узла сети, используя поле Наблюдение через прокси.

Массовое обновление узлов сети является еще одним способом, указать, что узлы сети должны наблюдаться через прокси.

Читайте также:  Обзоры операционных систем линукс
Оцените статью