Bezpieczne połączenie z frontendem
Przegląd
Ta sekcja zawiera kroki konfiguracji Zabbix oraz przykłady konfiguracji dla bezpiecznych połączeń TLS między frontendem Zabbix a serwerem Zabbix.
Konfiguracja
Domyślnie komunikacja między frontend Zabbix a serwerem Zabbix jest niezaszyfrowana. Aby zwiększyć bezpieczeństwo, włącz TLS po obu stronach. Poniżej przedstawiono przykład najprostszego sposobu wykonania tej czynności.
1. Wygeneruj certyfikaty i klucze.
Utwórz katalog roboczy:
sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl
Utwórz certyfikat CA (dostosuj wartość MyZabbixCA do rzeczywistej nazwy pospolitej):
sudo openssl genrsa -out ca.key 4096
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=MyZabbixCA/"
Wygeneruj klucz prywatny i certyfikat dla serwera Zabbix (dostosuj wartość zabbix-server.example.com do rzeczywistej nazwy pospolitej):
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
Wygeneruj klucz prywatny i certyfikat dla frontend Zabbix (dostosuj wartość zabbix-frontend-node do rzeczywistej nazwy pospolitej):
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. Ustaw odpowiednie uprawnienia.
Dla serwera Zabbix (dostosuj właściciela/grupę zgodnie z użytkownikiem demona serwera Zabbix w swojej dystrybucji):
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
Dla frontend (dostosuj właściciela/grupę zgodnie z użytkownikiem serwera WWW w swojej dystrybucji):
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. Skonfiguruj serwer Zabbix.
W pliku konfiguracyjnym serwera (zabbix_server.conf) dodaj:
TLSFrontendAccept=cert
TLSCertFile=/etc/zabbix/ssl/server.crt
TLSKeyFile=/etc/zabbix/ssl/server.key
TLSCAFile=/etc/zabbix/ssl/ca.crt
# Opcjonalnie:
# TLSFrontendCertIssuer=CN=MyZabbixCA
# TLSFrontendCertSubject=CN=zabbix-frontend-node
Następnie uruchom ponownie serwer:
sudo systemctl restart zabbix-server
4. Skonfiguruj frontend Zabbix.
Podczas instalacji interfejsu WWW włącz opcję Szyfruj połączenia z interfejsu WWW (oraz, jeśli to konieczne, opcję Weryfikuj wystawcę i temat certyfikatu serwera) i wypełnij pola Plik CA TLS, Plik klucza TLS, Plik certyfikatu TLS (oraz, jeśli to konieczne, pola Wystawca certyfikatu TLS serwera i Temat certyfikatu TLS serwera):

| Parametr | Opis |
|---|---|
| Plik CA TLS | Określ pełną ścieżkę do pliku certyfikatu urzędu certyfikacji (CA) używanego do weryfikacji certyfikatu serwera. |
| Plik klucza TLS | Określ pełną ścieżkę do pliku prywatnego klucza klienta odpowiadającego certyfikatowi klienta. |
| Plik certyfikatu TLS | Określ pełną ścieżkę do pliku certyfikatu klienta, jeśli wymagane jest wzajemne uwierzytelnianie TLS. |
| Wystawca certyfikatu TLS serwera | Określ nazwę wyróżniającą (DN) wystawcy, która ma odpowiadać wystawcy certyfikatu serwera. |
| Temat certyfikatu TLS serwera | Określ nazwę wyróżniającą (DN) tematu, która ma odpowiadać tematowi certyfikatu serwera. |
W istniejących instalacjach edytuj następujące parametry w pliku konfiguracyjnym frontend:
$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';
// Opcjonalnie:
// $ZBX_SERVER_TLS['CERTIFICATE_ISSUER'] = 'CN=MyZabbixCA';
// $ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = 'CN=zabbix-server.example.com';
5. Zweryfikuj szyfrowanie, potwierdzając brak komunikatów o błędach w frontend Zabbix lub w pliku dziennika serwera Zabbix:
tail -f /var/log/zabbix/zabbix_server.log