Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

2 PostgreSQLの暗号化設定

概要

このセクションでは、CentOS8.2およびPostgreSQL13の暗号化設定例をいくつか示します。

Database hostフィールドの値がスラッシュで始まるか、空の場合、ZabbixフロントエンドとPostgreSQL間の接続を暗号化できません(GUIのパラメーターが無効になっています)

前提条件

公式リポジトリを使用してPostgreSQLデータベースをインストールします。

PostgreSQLは、すぐにTLS接続を受け入れるように構成されていません。postgresql.confを使用した証明書の準備およびph_hba.confを介したユーザーアクセス制御については、PostgreSQLのドキュメントの指示に従ってください。

デフォルトでは、PostgreSQLソケットはローカルホストにバインドされています。これは、ネットワークリモート接続が実際のネットワークインターフェイスでリッスンできるようにするためです。

すべてのモード のPostgreSQL設定は次のようになります。

/var/lib/pgsql/13/data/postgresql.conf:

   ...
          ssl = on
          ssl_ca_file = 'root.crt'
          ssl_cert_file = 'server.crt'
          ssl_key_file = 'server.key'
          ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL'
          ssl_prefer_server_ciphers = on
          ssl_min_protocol_version = 'TLSv1.3'
          ...

アクセス制御については/var/lib/pgsql/13/data/pg_hba.confを調整します。

   ...
          ### require
          hostssl all all 0.0.0.0/0 md5
          
          ### verify CA
          hostssl all all 0.0.0.0/0 md5 clientcert=verify-ca
          
          ### verify full
          hostssl all all 0.0.0.0/0 md5 clientcert=verify-full
          ...

Required モード

フロントエンド

Zabbixフロントエンドとデータベース間の接続でトランスポートのみの暗号化を有効にするには:

  • データベースのTLS暗号化をチェックします
  • データベース証明書の確認をチェックしません

サーバー

サーバーとデータベース間の接続に対してトランスポートのみの暗号化を有効にするには/etc/zabbix/zabbix_server.confを設定します:

...
       DBHost=10.211.55.9
       DBName=zabbix
       DBUser=zbx_srv
       DBPassword=<strong_password>
       DBTLSConnect=required
       ...

Verify CA モード

フロントエンド

Zabbixフロントエンドとデータベース間の接続の認証局検証による暗号化を有効にするには:

  • データベースTLS暗号化データベース証明書の確認をチェック
  • データベースTLSキーファイルへのパスを指定
  • データベースTLSCAファイルへのパスを指定
  • データベースTLS証明書ファイルへのパスを指定

または/etc/zabbix/web/zabbix.conf.php:で設定:

...
       $DB['ENCRYPTION'] = true;
       $DB['KEY_FILE'] = '';
       $DB['CERT_FILE'] = '';
       $DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
       $DB['VERIFY_HOST'] = false;
       $DB['CIPHER_LIST'] = '';
       ...

サーバー

Zabbixサーバーとデータベース間の接続の証明書検証による暗号化を有効にするには、/etc/zabbix/zabbix_server.confを設定します。

...
       DBHost=10.211.55.9
       DBName=zabbix
       DBUser=zbx_srv
       DBPassword=<strong_password>
       DBTLSConnect=verify_ca
       DBTLSCAFile=/etc/ssl/pgsql/root.crt
       ...

Verify Full モード

フロントエンド

Zabbixフロントエンドとデータベース間接続の証明書とデータベースホストID検証による暗号化を有効にするには:

  • データベースTLS暗号化データベース証明書の確認をチェック
  • データベースTLSキーファイルへのパスを指定
  • データベースTLSCAファイルへのパスを指定
  • データベースTLS証明書ファイルへのパスを指定
  • データベースホストの検証をチェック

または/etc/zabbix/web/zabbix.conf.phpで設定:

$DB['ENCRYPTION'] = true;
       $DB['KEY_FILE'] = '';
       $DB['CERT_FILE'] = '';
       $DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
       $DB['VERIFY_HOST'] = true;
       $DB['CIPHER_LIST'] = '';
       ...

サーバー

Zabbixサーバーとデータベース間の接続の証明書とデータベースホストID検証による暗号化を有効にするには/etc/zabbix/zabbix_server.confを設定します。

...
       DBHost=10.211.55.9
       DBName=zabbix
       DBUser=zbx_srv
       DBPassword=<strong_password>
       DBTLSConnect=verify_full
       DBTLSCAFile=/etc/ssl/pgsql/root.crt
       DBTLSCertFile=/etc/ssl/pgsql/client.crt
       DBTLSKeyFile=/etc/ssl/pgsql/client.key
       ...