You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

6 フロントエンドへのセキュアな接続

概要

このセクションでは、ZabbixフロントエンドとZabbixサーバー間の安全なTLS接続のためのZabbixセットアップ手順と設定例を示します。

設定

デフォルトでは、ZabbixフロントエンドとZabbixサーバー間の通信は暗号化されていません。セキュリティを強化するために、両方でTLSを有効にしてください。以下は、その最も簡単な方法の例です。

1. 証明書と鍵を生成します。

作業ディレクトリを作成します:

sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl

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

フロントエンド用(ディストリビューションのWebサーバーユーザーに合わせて所有者/グループを調整してください):

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/

その後、サーバーを再起動します:

sudo systemctl restart zabbix-server

4. Zabbixフロントエンドを設定します。

Webインターフェースのインストール時に、Webインターフェースからの接続の暗号化オプション(必要に応じてサーバー証明書の発行者とサブジェクトの検証オプション)を有効にし、TLS CAファイルTLS鍵ファイルTLS証明書ファイルの各フィールド(必要に応じてサーバーTLS証明書の発行者およびサーバーTLS証明書のサブジェクトフィールド)に入力します:

パラメータ 説明
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サーバーログファイルにエラーメッセージが表示されていないことを確認して、暗号化を確認します:

tail -f /var/log/zabbix/zabbix_server.log