Овај одељак пружа кораке подешавања и примере конфигурације Zabbix-а за безбедне TLS везе између Zabbix фронтенда и Zabbix сервера.
Подразумевано, комуникација између Zabbix корисничког интерфејса и Zabbix сервера је нешифрована. За бољу безбедност, омогућите TLS на обе стране. Испод је пример најједноставнијег начина да се то уради.
1. Генеришите сертификате и кључеве.
Направите радни директоријум:
Направите 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/
Затим поново покрените сервер:
4. Конфигуришите Zabbix кориснички интерфејс.
Током инсталације веб интерфејса, омогућите опцију Шифрирај везе са веб интерфејса (и опцију Провери издаваоца и тему сертификата сервера, ако је потребно) и попуните поља TLS CA датотека, TLS датотека кључа, TLS датотека сертификата (и поља Издавалац TLS сертификата сервера и Тема TLS сертификата сервера, ако је потребно):
Parameter | Description |
---|---|
TLS CA датотека | Наведите пуну путању до датотеке сертификата ауторитета за сертификате (CA) која се користи за проверу сертификата сервера. |
TLS датотека кључа | Наведите пуну путању до датотеке приватног кључа клијента која одговара сертификату клијента. |
TLS датотека сертификата | Наведите пуну путању до датотеке сертификата клијента ако је потребна међусобна TLS аутентификација. |
Издавалац TLS сертификата сервера | Наведите препознатљиво име (DN) издаваоца које ће се подударати са сертификатом сервера. |
Наслов TLS сертификата сервера | Наведите препознатљиво име (DN) субјекта које ће се подударати са сертификатом сервера. |
На постојећим инсталацијама, уредите следећа поља у zabbix.conf.php
:
$ZBX_SERVER_TLS['ACTIVE'] = '1';
$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 сервера: