Шифрование
Подсистема поддерживает шифрование коммуникаций между компонентами с использованием протокола Transport Layer Security (TLS) версий 1.2 и 1.3 (в зависимости от криптографической библиотеки). Поддерживается шифрование на основе сертификата и на основе общего ключа (pre-shared key, PSK).
Шифрование может быть настроено для соединений:
- между Сервером, Прокси, Агентом, утилитами zabbix_sender и zabbix_get;
- к базе данных Подсистемы от веб-интерфейса и Сервера/Прокси.
Шифрование опционально и настраивается для отдельных компонентов:
- некоторые Прокси и Агенты можно настроить на использование шифрования с Сервером на основе сертификатов, в то время как другие могут использовать шифрование на основе общего ключа, а остальные могут продолжать использовать незашифрованные соединения;
- Сервер (Прокси) может использовать различные настройки шифрования для разных узлов сети.
Программы демонов слушают один порт для зашифрованных и незашифрованных входящих подключений. Добавление шифрования не потребует открывать новые порты на брандмауэрах.
Ограничения:
- Закрытые ключи хранятся в виде обычного текста в файлах, которые компоненты Подсистемы считывают в процессе запуска.
- Общие ключи вводятся в веб-интерфейсе и хранятся в базе данных в виде обычного текста.
- Встроенное шифрование не защищает коммуникации:
- между веб-сервером с веб-интерфейсом и веб-браузером на стороне пользователя;
- между веб-интерфейсом и Сервером.
- Каждое шифрованное соединение начинается с полных TLS-переговоров (TLS handshake), кэширование сессий и мандаты (tickets) не реализованы.
- Добавление шифрования увеличивает время на проверки элементов данных и действия в зависимости от сетевых задержек:
- Например, если задержка пакета составляет 100мс, то открытие TCP-соединения и отправка незашифрованного запроса займет около 200мс. При наличии шифрования добавится около 1000 мс на установление TLS-соединения;
- Возможно, потребуется увеличить время ожидания (тайм-ауты), иначе некоторые элементы данных и действия, выполняющие удалённые скрипты на Агентах, смогут работать с незашифрованными соединениями, но не смогут при шифрованном соединении (будет превышено время ожидания).
- Шифрование не поддерживается сетевым обнаружением. Проверки Агентов, выполняемые сетевым обнаружением, будут нешифрованными, и если Агент настроен отвергать нешифрованные соединения, то такие проверки не будут успешными.