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

概要

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

設定

デフォルトでは、Zabbix Webインターフェースと 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 Webインターフェース用の秘密鍵と証明書を生成します(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インターフェース用(所有者/グループは、ご利用のディストリビューションの 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インターフェースのインストール 中に、Webインターフェースからの接続を暗号化 オプション(必要に応じて サーバー証明書の発行者とサブジェクトを検証 オプションも)を有効にし、TLS CA fileTLS key fileTLS certificate file の各フィールド(必要に応じて Server TLS certificate issuerServer TLS certificate subject の各フィールドも)に値を入力します。

Parameter Description
TLS CA file サーバーの証明書を検証するために使用する認証局(CA)証明書ファイルのフルパスを指定します。
TLS key file クライアント証明書に対応するクライアント秘密鍵ファイルのフルパスを指定します。
TLS certificate file 相互 TLS 認証が必要な場合に、クライアント証明書ファイルのフルパスを指定します。
Server TLS certificate issuer サーバーの証明書と照合する発行者の識別名(DN)を指定します。
Server TLS certificate subject サーバーの証明書と照合するサブジェクトの識別名(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 Webインターフェースまたは Zabbix サーバーのログファイルにエラーメッセージがないことを確認して、暗号化を検証します。

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