5 Assegurar la connexió a la base de dades

Vista general

Aquesta secció proveeix les etapes de configuració de Zabbix i els exemples de configuració per les connexions TLS segures entre:

Base de dades Components Zabbix
MySQL Interface Zabbix, serveur Zabbix, proxy Zabbix
PostgreSQL Interface Zabbix, serveur Zabbix, proxy Zabbix

Per configurar el xifrat de connexió amb la DBMS, consulteu la documentació oficial del proveïdor per més detalls:

  • MySQL: servidors de base de dades d'origen i rèplica.
  • MySQL: rèplica de grup, etc... de servidors de base de dades.
  • Opcions de xifrat PostgreSQL.

Tots els exemples es basen en les versions GA de MySQL CE (8.0) i PgSQL (13) disponibles via els repositoris oficials, emprant CentOS 8.

Especificacions

Els elements següents són requerits per configurar el xifrat:

  • El sistema d'explotació admès per els desenvolupadors amb OpenSSL >=1.1.X o alternatiu.

Es recomana evitar els sistemes d'explotació prop de fi de vida, especialment a les noves instal·lacions

  • El motor de base de dades (RDBMS) instal·lat i mantingut a partir del repositori oficial del desenvolupador. Els sistemes d'explotació sovint són lliurats amb vesrions de programari de base de dades obsoletes per aquelles on el suport de xifrat no és pas implementat, per exemple els sistemes basats en RHEL 7 i PostgreSQL 9.2, MariaDB 5.5 sense suport de xifrat.
Terminologia

La definició d'aquesta opció força emprar la connexió TLS a la base de dades a partir del servidor/proxy Zabbix i la interfície a la base de dades:

  • obligatori - connectar emprant TLS com a mode de transport sense control d'identitat;
  • verify_ca - connectar emprant TLS i verificar el certificat;
  • verify_full - connectar emprant TLS, verificar el certificat i verificar que la identitat de la base de dades (CN) especificada per DBHost es correspon al seu certificat;

Configuració de Zabbix

Interfície de la base de dades

Es pot configurar una connexió segura cap a la base de dades durant la instal·lació de la interfície:

  • Marqueu la casella Xifrat TLS de la base de dades a la passa Configurar la connexió a la base de dades per activar el xifrat del transport.
  • Marqueu la casella Verificar el certificat de la base de dades que apareix després que el camp Xifrat TLS sigui marcat per activar el xifrat amb certificats.

Per MySQL, la casella a marcar Xifrat TLS de la base de dades és desactivada, si Equip de la base de dades és definit a localhost, doncs la connexió que empra un arxiu socket (sota Unix) o de la memòria compartida (sota Windows) no es pot pas xifrar.
Per PostgreSQL, la casella a marcar Xifrat TLS és desactivada, si el valor del camp Equip de la base de dades comença amb una barra obliqua o el camp és buit.

Els paràmetres següents són disponibles al xifrat TLS en mode certificats (si els dos casos són marcats):

Paràmetre Descripció
Arxiu CA TLS de la base de dades Especifiqueu el camí d'accés complet a un arxiu d'autoritat de certificació TLS vàlid.
Arxiu de clau TLS de la base de dades Especifiqueu el camí d'accés complet a un arxiu de clau TLS vàlid.
Arxiu de certificat TLS de base de dades Especifiqueu el camí d'accés complet a un arxiu de certificat TLS vàlid.
Verificació de l'equip de la base de dades Marqueu aquest cas per activar la verificació de l'equip.
Desactivat per MYSQL, doncs la biblioteca PHP MySQL no permet pas ignorar l'etapa de validació del certificat parell.
Llista de xifrat TLS de la base de dades Especifiqueu una llista personalitzada de xifrats vàlids. El format de la llista de xifrat ha d'ésser conforme a la norma OpenSSL.
Disponible només per MySQL.

Els paràmetres TLS han d'apuntar a fitxers vàlids. Si apunten cap a arxius no existents o invàlids donarà lloc a un error d'autorització.
Si els arxius de certificat són accessibles d'escriptura, la interfície genera un avís a les informacions de sistema assenyalant que "els fitxers de certificat TLS han d'ésser de només lectura". (afegir només si l'usuari PHP és el propietari del certificat).

Els certificats protegits per paraules de pas no son pas admesos.

Casos d'ús

La interfície de Zabbix empra la interfície GUI per definir les opcions possibles: obligatori, verificar_ca, verificar_sencer. Especifiqueu les opcions necessàries a la pasa d'instal·lació de l'assistent Configura les connexions de base de dades. Aquestes opcions s'assignen al fitxer de configuració (zabbix.conf.php) de la manera següent:

Configuració de la GUI Fitxer de configuració Descripció Resultat
...
// S'empra per a la connexió TLS.
$DB ['ENCRYPTION'] = cert;
$DB['KEY_FILE'] = '';
$DB['CERT_FILE'] = '';
$ DB['CA_FILE'] = '';
$DB['VERIFY_HOST'] = fals;
$DB['CIPHER_LIST'] = '';< br>...
Comproveu xifratge TLS de la base de dades
Deixeu Verifica el certificat de la base de dades desmarcat
Activeu el mode "obligatori".
...
$DB['ENCRYPTION'] = true; \\ $DB['KEY_FILE'] = '';
$DB['CERT_FILE'] = '';
$DB['CA_FILE' ] = '/etc/ssl/mysql/ca.pem';
$DB['VERIFY_HOST'] = fals;
$DB['CIPHER_LIST'] = '';
...
1. Comproveu Encriptació TLS de la base de dades i Verifiqueu el certificat de la base de dades
2. Especifiqueu el camí al fitxer CA TLS de la base de dades
Activeu el mode "verificar_ca".
...
// S'empra per a la connexió TLS amb una llista de xifratge estrictament definida.
$DB['ENCRYPTION'] = true;
$DB['KEY_FILE'] = '<key_file_path>';
$DB['CERT _FILE'] = '<key_file_path>';
$DB['CA_FILE'] = '<key_file_path>';
$DB['VERIFY _HOST'] = cert;
$DB['CIPHER_LIST'] = '<xifratge_lista>';
...

O:

...
// S'empra per a la connexió TLS sense la llista de xifratge definida - definida pel servidor 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. Comproveu Encriptació TLS de la base de dades i Verifiqueu el certificat de la base de dades
2. Especifiqueu el camí al fitxer de claus TLS de la base de dades
3. Especifiqueu el camí al fitxer CA TLS de la base de dades
4. Especifiqueu el camí al fitxer de certificat TLS de la base de dades
6. Especifiqueu la llista de xifratge TLS (opcional)
Activeu el mode "verificar_complet" per a MySQL.
...
$DB['ENCRYPTION'] = cert;
$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. Comproveu Encriptació TLS de la base de dades i Verifiqueu el certificat de la base de dades
2. Especifiqueu el camí al fitxer de claus TLS de la base de dades
3. Especifiqueu el camí al fitxer CA TLS de la base de dades
4. Especifiqueu el camí al fitxer de certificat TLS de la base de dades
6. Comproveu Verificació de l'equip de la base de dades
Activeu el mode "verificar_complet" per a PostgreSQL.

Veieu també: Exemples de configuració de xifratge per a MySQL, exemples de configuració de xifrat per PostgreSQL.

Configuració del servidor/proxy Zabbix

Les connexions segures a la base de dades es poden configurar amb els paràmetres corresponents des del servidor Zabbix, i/o des del fitxer de configuració del proxy.

Configuració Resultat
Cap Connexió a la base de dades sense xifrat.
1. Establiu DBTLConnect=required El servidor/proxy fa una connexió TLS a la base de dades. No es permet una connexió sense xifrar.
1. Estableix DBTLSConnect=verify_ca
2. Estableix DBTLSCAFile: especifiqueu el fitxer de l'autoritat de certificació TLS
El servidor/proxy fa una connexió TLS a la base de dades després de verificar el certificat de la base de dades.
1. Estableix DBTLSConnect=verify_full
2. Establiu DBTLSCAFile: especifiqueu el fitxer d'autoritat de certificació TLS
El servidor/proxy fa una connexió TLS a la base de dades després de verificar el certificat de la base de dades i la identitat de l'equip de la base de dades.
1. Estableix DBTLSCAFile: especifiqueu el fitxer d'autoritat de certificació TLS
2. Estableix DBTLSCertFile: especifiqueu el fitxer de certificat de clau pública del client
3. Establiu DBTLSKeyFile: especifiqueu el fitxer de clau privada del client
El Servidor/proxy genera un certificat de client mentre s'estableix la connexió a la base de dades.
1. Estableix DBTLSCipher: la llista de xifratge del xifratge que el client permet per a connexions que empren protocols TLS fins a TLS 1.2

o DBTLSCipher13: la llista de xifratge del xifratge que el client permet per a connexions amb el protocol TLS 1.3
(MySQL) TLS la connexió es fa mitjançant un xifrat de la llista proporcionada.
(PostgreSQL) Establir aquesta opció es considerarà un error.