2 PostgreSQL encryption configuration

    Connection between Zabbix frontend and PostgreSQL cannot be encrypted (parameters in GUI are disabled), if the value of Database host field begins with a slash or the field is empty.

    Install the PostgreSQL database using the official repository.

    PostgreSQL is not configured to accept TLS connections out-of-the-box. Please follow instructions from PostgreSQL documentation for and also for user access control through ph_hba.conf.

    By default, the PostgreSQL socket is binded to the localhost, for the network remote connections allow to listen on the real network interface.

    PostgreSQL settings for all can look like this:

    For access control adjust /var/lib/pgsql/13/data/pg_hba.conf:

    1. ### require
    2. hostssl all all 0.0.0.0/0 md5
    3. hostssl all all 0.0.0.0/0 md5 clientcert=verify-ca
    4. ### verify full
    5. ...

    Frontend

    To enable transport-only encryption for connections between Zabbix frontend and the database:

    • Check Database TLS encryption
    • Leave Verify database certificate unchecked

    Server

    To enable transport-only encryption for connections between server and the database, configure /etc/zabbix/zabbix_server.conf:

    Frontend

    To enable encryption with certificate authority verification for connections between Zabbix frontend and the database:

    • Check Database TLS encryption and Verify database certificate
    • Specify path to Database TLS key file
    • Specify path to Database TLS CA file
    • Specify path to Database TLS certificate file

    Alternatively, this can be set in /etc/zabbix/web/zabbix.conf.php:

    1. ...
    2. $DB['ENCRYPTION'] = true;
    3. $DB['KEY_FILE'] = '';
    4. $DB['CERT_FILE'] = '';
    5. $DB['VERIFY_HOST'] = false;
    6. ...

    Server

    To enable encryption with certificate verification for connections between Zabbix server and the database, configure /etc/zabbix/zabbix_server.conf:

    Frontend

    To enable encryption with certificate and database host identity verification for connections between Zabbix frontend and the database:

    • Check Database TLS encryption and Verify database certificate
    • Specify path to Database TLS key file
    • Specify path to Database TLS CA file
    • Specify path to Database TLS certificate file
    • Check Database host verification

    2 PostgreSQL encryption configuration - 图3

    Alternatively, this can be set in /etc/zabbix/web/zabbix.conf.php:

    1. $DB['ENCRYPTION'] = true;
    2. $DB['KEY_FILE'] = '';
    3. $DB['CERT_FILE'] = '';
    4. $DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
    5. $DB['VERIFY_HOST'] = true;
    6. $DB['CIPHER_LIST'] = '';

    Server