Безопасное подключение к веб-интерфейсу
Обзор
В этом разделе приведены шаги по настройке Zabbix и примеры конфигурации для защищенных TLS-соединений между веб-интерфейсом Zabbix и сервером Zabbix.
Настройка
По умолчанию обмен данными между веб-интерфейсом Zabbix и сервером Zabbix не шифруется. Для повышения безопасности включите TLS с обеих сторон. Ниже приведён пример самого простого способа сделать это.
1. Создайте сертификаты и ключи.
Создайте рабочий каталог:
sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl
Создайте сертификат CA (измените значение MyZabbixCA в соответствии с фактическим общим именем):
sudo openssl genrsa -out ca.key 4096
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=MyZabbixCA/"
Создайте закрытый ключ и сертификат для сервера Zabbix (измените значение zabbix-server.example.com в соответствии с фактическим общим именем):
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr -subj "/CN=zabbix-server.example.com/"
sudo openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out server.crt
Создайте закрытый ключ и сертификат для веб-интерфейса Zabbix (измените значение zabbix-frontend-node в соответствии с фактическим общим именем):
sudo openssl genrsa -out frontend.key 2048
sudo openssl req -new -key frontend.key -out frontend.csr -subj "/CN=zabbix-frontend-node/"
sudo openssl x509 -req -days 365 -in frontend.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out frontend.crt
2. Установите соответствующие разрешения.
Для сервера Zabbix (измените владельца и группу в соответствии с пользователем демона сервера Zabbix в вашем дистрибутиве):
sudo chown root:zabbix /etc/zabbix/ssl/server.{crt,key} /etc/zabbix/ssl/ca.crt
sudo chmod 640 /etc/zabbix/ssl/server.key
sudo chmod 644 /etc/zabbix/ssl/server.crt /etc/zabbix/ssl/ca.crt
Для веб-интерфейса (измените владельца и группу в соответствии с пользователем веб-сервера в вашем дистрибутиве):
sudo chown root:www-data /etc/zabbix/ssl/frontend.{crt,key}
sudo chmod 640 /etc/zabbix/ssl/frontend.key
sudo chmod 644 /etc/zabbix/ssl/frontend.crt
3. Настройте сервер Zabbix.
В файле конфигурации сервера (zabbix_server.conf) добавьте:
TLSFrontendAccept=cert
TLSCertFile=/etc/zabbix/ssl/server.crt
TLSKeyFile=/etc/zabbix/ssl/server.key
TLSCAFile=/etc/zabbix/ssl/ca.crt
# Необязательно:
# TLSFrontendCertIssuer=CN=MyZabbixCA
# TLSFrontendCertSubject=CN=zabbix-frontend-node
Затем перезапустите сервер:
sudo systemctl restart zabbix-server
4. Настройте веб-интерфейс Zabbix.
Во время установки веб-интерфейса включите параметр Шифровать соединения из веб-интерфейса (при необходимости также параметр Проверять издателя и субъект сертификата сервера) и заполните поля Файл TLS CA, Файл ключа TLS, Файл сертификата TLS (при необходимости также поля Издатель сертификата TLS сервера и Субъект сертификата TLS сервера):

| Параметр | Описание |
|---|---|
| Файл TLS CA | Укажите полный путь к файлу сертификата центра сертификации (CA), используемого для проверки сертификата сервера. |
| Файл ключа TLS | Укажите полный путь к файлу закрытого ключа клиента, соответствующего сертификату клиента. |
| Файл сертификата TLS | Укажите полный путь к файлу сертификата клиента, если требуется взаимная аутентификация TLS. |
| Издатель сертификата TLS сервера | Укажите отличительное имя (DN) издателя для сопоставления с сертификатом сервера. |
| Субъект сертификата TLS сервера | Укажите отличительное имя (DN) субъекта для сопоставления с сертификатом сервера. |
В существующих установках измените следующие параметры в файле конфигурации веб-интерфейса:
$ZBX_SERVER_TLS['ACTIVE'] = 'true';
$ZBX_SERVER_TLS['CA_FILE'] = '/etc/zabbix/ssl/ca.crt';
$ZBX_SERVER_TLS['KEY_FILE'] = '/etc/zabbix/ssl/frontend.key';
$ZBX_SERVER_TLS['CERT_FILE'] = '/etc/zabbix/ssl/frontend.crt';
// Необязательно:
// $ZBX_SERVER_TLS['CERTIFICATE_ISSUER'] = 'CN=MyZabbixCA';
// $ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = 'CN=zabbix-server.example.com';
5. Проверьте шифрование, убедившись в отсутствии сообщений об ошибках в веб-интерфейсе Zabbix или файле журнала сервера Zabbix:
tail -f /var/log/zabbix/zabbix_server.log