Этот раздел описывает шаги по настройке Zabbix и примеры конфигурации для безопасных соединений TLS между:
База данных | Компоненты Zabbix |
---|---|
MySQL | Веб-интерфейс Zabbix, Zabbix сервер, Zabbix прокси |
PostgreSQL | Веб-интерфейс Zabbix, Zabbix сервер, Zabbix прокси |
За подробностями настроек шифрования соединений в СУБД, обратитесь к официальной документации вендора:
Все примеры базируются на выпусках GA release MySQL CE (8.0) и PgSQL (13), доступных через официальные репозитории, используя AlmaLinux 8.
Для настройки шифрования требуется следующее:
Рекомендуется избегать ОС в статусе end-of-life, особенно в случае новых инсталяций
Выставление этой опции принуждает использовать TLS соединения к базе данных от Zabbix сервера/прокси и от веб-интерфейса к базе данных:
Безопасные подключения к базе данных могут быть настроены во время установки веб-интерфейса:
Для MySQL флажок TLS шифрование базы данных отключён, если Хост базы данных выставлен в localhost, так как соединение, использующее сокет-файл (на Unix) или разделяемую память (на Windows), не может быть шифрованным.
Для PostgreSQL флажок TLS шифрование базы данных отключён, если значение поля Хост базы данных начинается с косой черты или же пустое.
В режиме TLS шифрования с сертификатом (если оба флажка отмечены) становятся доступными следующие параметры:
Параметр | Описание |
---|---|
Файл TLS CA базы данных | Укажите полный путь к корректному файлу удостоверяющего центра (certificate authority, CA) TLS. |
Файл TLS ключа базы данных | Укажите полный путь к корректному файлу ключа TLS. |
Файл TLS сертификата базы данных | Укажите полный путь к корректному файлу сертификата TLS. |
Сверка хоста базы данных | Отметьте этот флажок, чтобы активировать сверку хоста. Отключено для MYSQL, поскольку библиотека PHP MySQL не разрешает пропускать шаг валидации сертификата узла. |
Список шифров TLS базы данных | Укажите пользовательский список допустимых шифров. Формат списка шифров должен отвечать стандарту OpenSSL. Доступно только для MySQL. |
Параметры TLS должны указывать на корректные файлы. Если они указывают на несуществующие или некорректные файлы, это приведёт к ошибке авторизации.
Если файлы сертификатов доступны на запись, веб-интерфейс генерирует предупреждение в отчёте Информация о системе о том, что "TLS certificate files must be read-only" (отображается только если пользователь PHP является владельцем сертификата).
Защищённые паролем сертификаты не поддерживаются.
Веб-интерфейс Zabbix использует графический интерфейс, чтобы определить возможные опции: required, verify_ca, verify_full. Указывайте нужные опции на шаге Настройка соединения с базой данных помощника по установке. Эти опции соответствуют файлу конфигурации (zabbix.conf.php) следующим образом:
Параметр интерфейса | Файл конфигурации | Описание | Результат |
---|---|---|---|
... // Used for TLS connection. $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $DB['CA_FILE'] = ''; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = ''; ... |
Отметьте TLS шифрование базы данных Оставьте Удостоверять сертификат базы данных неотмеченным |
Включает режим 'required'. | |
... $DB['ENCRYPTION'] = true;\\ $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $DB['CA_FILE'] = '/etc/ssl/mysql/ca.pem'; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = ''; ... |
1. Отметьте TLS шифрование базы данных и Удостоверять сертификат базы данных 2. Укажите путь к Файл TLS CA базы данных |
Включает режим 'verify_ca'. | |
... // Used for TLS connection with strictly defined Cipher list. $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<key_file_path>'; $DB['CERT_FILE'] = '<key_file_path>'; $DB['CA_FILE'] = '<key_file_path>'; $DB['VERIFY_HOST'] = true; $DB['CIPHER_LIST'] = '<cipher_list>'; ... Или: ... // Used for TLS connection without Cipher list defined - selected by MySQL server $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<key_file_path>'; $DB['CERT_FILE'] = '<key_file_path>'; $DB['CA_FILE'] = '<key_file_path>'; $DB['VERIFY_HOST'] = true; $DB['CIPHER_LIST'] = ''; ... |
1. Отметьте TLS шифрование базы данных и Удостоверять сертификат базы данных 2. Укажите путь к Файл TLS ключа базы данных 3. Укажите путь к Файл TLS CA базы данных 4. Укажите путь к Файл TLS сертификата базы данных 5. Укажите список шифров TLS (опционально) |
Включает режим 'verify_full' для MySQL. | |
... $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<key_file_path>'; $DB['CERT_FILE'] = '<key_file_path>'; $DB['CA_FILE'] = '<key_file_path>'; $DB['VERIFY_HOST'] = true; $DB['CIPHER_LIST'] = ' '; ... |
1. Отметьте TLS шифрование базы данных и Удостоверять сертификат базы данных 2. Укажите путь к Файл TLS ключа базы данных 3. Укажите путь к Файл TLS CA базы данных 4. Укажите путь к Файл TLS сертификата базы данных 5. Отметьте Сверка хоста базы данных |
Включает режим 'verify_full' для PostgreSQL. |
Смотрите также: Примеры настроек шифрования для MySQL, Примеры настроек шифрования для PostgreSQL.
Безопасные подключения к базе данных могут быть настроены с помощью соответствующих параметров в файле конфигурации Zabbix сервера и/или прокси.
Настройка | Результат |
---|---|
Отсутствует | Подключение к базе данных без шифрования. |
1. Установите DBTLSConnect=required | Сервер/прокси делает TLS подключение к базе данных. Нешифрованные подключения не разрешены. |
1. Установите DBTLSConnect=verify_ca 2. Установите DBTLSCAFile - укажите файл удостоверяющего центра (certificate authority, CA) TLS |
Сервер/прокси делает TLS подключение к базе данных после проверки сертификата базы данных. |
1. Установите DBTLSConnect=verify_full 2. Установите DBTLSCAFile - укажите файл удостоверяющего центра (certificate authority, CA) TLS |
Сервер/прокси делает TLS подключение к базе данных после проверки сертификата базы данных и идентичности хоста базы данных. |
1. Установите DBTLSCAFile - укажите файл удостоверяющего центра (certificate authority, CA) 2. Установите DBTLSCertFile - укажите файл сертификата открытого ключа (public key) клиента 3. Установите DBTLSKeyFile - укажите файл закрытого ключа (private key) клиента |
Сервер/прокси при подключении к базе данных предъявляет сертификат клиента. |
1. Установите DBTLSCipher - список шифров (алгоритмов шифрования), которые клиент разрешает при подключении с использованием протокола TLS до версии TLS 1.2 или DBTLSCipher13 - список шифров, которые клиент разрешает при подключении с использованием протокола TLS 1.3 |
(MySQL) TLS подключение выполняется, используя шифр из представленного списка. (PostgreSQL) Установка этой опции рассматривается как ошибка. |