Zabbixは、トランスポートレイヤーセキュリティ(TLS)プロトコルv.1.2、1.3 (cryptoライブラリによる)を使用した Zabbix コンポーネント間の
暗号化通信をサポートしています。証明書ベースと事前共有キーベースの暗号化がサポートされています。
暗号化は以下の接続に設定することができます:
暗号化はオプションで、個々のコンポーネントに設定可能:
Zabbixのデーモンプログラムでは、暗号化された接続と暗号化されていない接続に1つのリスニングポートを使用します。
暗号化を追加する場合、ファイアウォールに新しいポートを開く必要はありません。
暗号化をサポートするために、Zabbix は以下のいずれかのライブラリとコンパイル、リンクする必要があります:
tls_*()
LibreSSL 固有の API関数は使用されません。 LibreSSL を使用してコンパイルされた Zabbix コンポーネントは PSK を使用できず、証明書のみ使用可能です。ライブラリの選択は、"configure "スクリプトにそれぞれのオプションを指定することで行います:
--with-gnutls[=DIR]
--with-openssl[=DIR]
(also used for LibreSSL)例えば、server と agent のソースを OpenSSL で設定する場合、次のようになります:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openssl
異なる Zabbix コンポーネントは異なる暗号化ライブラリを使用してコンパイルされている場合があります。
(例:サーバはOpenSSL、エージェントはGnuTLSなど)
事前共有鍵(PSK)の使用を計画している場合、PSKを使用している Zabbix コンポーネントで GnuTLS または OpenSSL 1.1.0
(またはそれ以降)ライブラリの使用を検討してください。GnuTLSとOpenSSL 1.1.0ライブラリは、Perfect Forward Secrecy の
PSK暗号をサポートしています。
古いバージョンの OpenSSL ライブラリ(1.0.1、1.0.2c)も PSK をサポートしていますが、利用可能なPSK暗号スイートは
Perfect Forward Secrecy を提供しません。
Zabbix のコネクションは以下を使用することができます:
Zabbix コンポーネント間の暗号化を指定するために、2つの重要なパラメータがあります:
TLSConnect
は、Zabbix proxy (アクティブモードで、server への接続のみを指定)とZabbix agent (アクティブチェック用)の
設定ファイルで使用されています。Zabbixフロントエンドでは、TLSConnectに相当するのは
Configuration → Hosts → <some host> → Encryptionタブの Connections to host フィールドと
Administration → Proxies → <some proxy> → Encryption タブの Connections to proxy フィールドになります。
接続に設定された暗号化方式が失敗した場合、他の暗号化方式は試されません。
TLSAccept
はZabbix proxy (パッシブモード、server からの接続のみ指定)と Zabbix agent (パッシブチェック用)の
設定ファイルで使用されています。Zabbixフロントエンドでは、TLSAcceptに相当するのは
Configuration → Hosts → <some host> → Encryption* タブの Connections from host フィールドと
Administration → Proxies → <some proxy> → Encryption タブの Connections from proxy フィールドになります。
通常、受信する暗号化には1種類の暗号化しか設定しません。しかし、ダウンタイムやロールバックを最小限に抑えながら、
暗号化方式を非暗号化から証明書方式に変更したい場合があります。これを実現するために:
TLSAccept=unencrypted,cert
を設定し、Zabbix agent を再起動する。TLSAccept=cert
を設定し、Zabbix agent を再起動することができます。 これで、agent は暗号化された証明書ベースの接続のみを受け入れるようになります。暗号化されていない、 PSKベースの接続は拒否されます。同様に、server と proxy でも動作します。Zabbixフロントエンドのホスト設定でConnections from hostを "Certificate" に
設定すると、agent (アクティブチェック)とzabbix_sender(トラッパーアイテム)からは証明書ベースの暗号化接続のみが
許可されます。
ほとんどの場合、受信接続と送信接続で同じ暗号化タイプを使用するか、まったく暗号化しないように設定します。しかし、
技術的には非対称に設定することが可能です。
各ホストの暗号化設定は、Zabbixフロントエンドの Configuration → Hosts の Agent encryption 列に表示されます。 例:
例 | Connections to host | Allowed connections from host | Rejected connections from host |
---|---|---|---|
Unencrypted | Unencrypted | Encrypted, certificate and PSK-based encrypted | |
Encrypted, certificate-based | Encrypted, certificate-based | Unencrypted and PSK-based encrypted | |
Encrypted, PSK-based | Encrypted, PSK-based | Unencrypted and certificate-based encrypted | |
Encrypted, PSK-based | Unencrypted and PSK-based encrypted | Certificate-based encrypted | |
Encrypted, certificate-based | Unencrypted, PSK or certificate-based encrypted | - |
デフォルトでは、接続は暗号化されていません。暗号化は、各ホストとプロキシに個別に設定する必要があります。
zabbix_get と zabbix_sender manpages のマニュアルを参照してください。
暗号スイートはデフォルトでは Zabbix 起動時に内部で設定され、Zabbix 4.0.19以前、4.4.7以前ではユーザが設定することは
できません。
Zabbix 4.0.19、4.4.7 から GnuTLS と OpenSSL のユーザ設定可能な暗号スイートがサポートされるようになりました。
ユーザはセキュリティポリシーに従って暗号スイートを configure することができます。
この機能の使用は任意です。(組み込みのデフォルトの暗号スイートはそのまま機能します)
デフォルト設定でコンパイルされた暗号ライブラリの場合、Zabbixのビルトインルールでは通常以下の暗号スイートを
使用します。(優先度の高いものから低いものの順):
ライブラリ | Certificate ciphersuites | PSK ciphersuites |
---|---|---|
GnuTLS 3.1.18 | TLS_ECDHE_RSA_AES_128_GCM_SHA256 TLS_ECDHE_RSA_AES_128_CBC_SHA256 TLS_ECDHE_RSA_AES_128_CBC_SHA1 TLS_RSA_AES_128_GCM_SHA256 TLS_RSA_AES_128_CBC_SHA256 TLS_RSA_AES_128_CBC_SHA1 |
TLS_ECDHE_PSK_AES_128_CBC_SHA256 TLS_ECDHE_PSK_AES_128_CBC_SHA1 TLS_PSK_AES_128_GCM_SHA256 TLS_PSK_AES_128_CBC_SHA256 TLS_PSK_AES_128_CBC_SHA1 |
OpenSSL 1.0.2c | ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-SHA256 AES128-SHA |
PSK-AES128-CBC-SHA |
OpenSSL 1.1.0 | ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA |
ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA |
OpenSSL 1.1.1d | TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA |
TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA |
内蔵の暗号スイート選択基準は、ユーザーが設定した暗号スイートで上書きすることができます。
ユーザー設定暗号スイートは、TLS暗号スイートとその安全性を理解し、TLSのトラブルシューティングに精通している
上級ユーザー向けの機能です。
組み込みの暗号スイート選択基準は、以下のパラメータを使用して上書きすることができます:
上書きスコープ | パラメータ | 値 | 説明 |
---|---|---|---|
Ciphersuite selection for certificates | TLSCipherCert13 | Valid OpenSSL 1.1.1 cipher strings for TLS 1.3 protocol (their values are passed to the OpenSSL function SSL_CTX_set_ciphersuites()). | Certificate-based ciphersuite selection criteria for TLS 1.3 Only OpenSSL 1.1.1 or newer. |
TLSCipherCert | Valid OpenSSL cipher strings for TLS 1.2 or valid GnuTLS priority strings. Their values are passed to the SSL_CTX_set_cipher_list() or gnutls_priority_init() functions, respectively. | Certificate-based ciphersuite selection criteria for TLS 1.2/1.3 (GnuTLS), TLS 1.2 (OpenSSL) | |
Ciphersuite selection for PSK | TLSCipherPSK13 | Valid OpenSSL 1.1.1 cipher strings for TLS 1.3 protocol (their values are passed to the OpenSSL function SSL_CTX_set_ciphersuites()). | PSK-based ciphersuite selection criteria for TLS 1.3 Only OpenSSL 1.1.1 or newer. |
TLSCipherPSK | Valid OpenSSL cipher strings for TLS 1.2 or valid GnuTLS priority strings. Their values are passed to the SSL_CTX_set_cipher_list() or gnutls_priority_init() functions, respectively. | PSK-based ciphersuite selection criteria for TLS 1.2/1.3 (GnuTLS), TLS 1.2 (OpenSSL) | |
Combined ciphersuite list for certificate and PSK | TLSCipherAll13 | Valid OpenSSL 1.1.1 cipher strings for TLS 1.3 protocol (their values are passed to the OpenSSL function SSL_CTX_set_ciphersuites()). | Ciphersuite selection criteria for TLS 1.3 Only OpenSSL 1.1.1 or newer. |
TLSCipherAll | Valid OpenSSL cipher strings for TLS 1.2 or valid GnuTLS priority strings. Their values are passed to the SSL_CTX_set_cipher_list() or gnutls_priority_init() functions, respectively. | Ciphersuite selection criteria for TLS 1.2/1.3 (GnuTLS), TLS 1.2 (OpenSSL) |
zabbix_get と zabbix_sender ユーティリティで暗号化スイート選択を
上書きするには、次のコマンドラインパラメータを使用します。:
--tls-cipher13
--tls-cipher
新しいパラメータはオプションである。パラメータが指定されていない場合、内部のデフォルト値が使用されます。
パラメータが定義されている場合、空にすることはできません。
crypto ライブラリの TLSCipher* 値の設定に失敗すると、server、proxy、または agent は起動せず、エラーが記録されます。
各パラメータがどのような場合に適用されるかを理解することが重要です。
最も単純なケースは、発信コネクションです:
--tls-cipher13
と --tls-cipher
を 使用できます。(暗号化は一義的に --tls-connect
パラメータで指定されます)着信コネクションの場合、ルールがコンポーネントや構成によって異なるため、少し複雑になります。
Zabbix agent の場合 :
Agent connection setup | Cipher configuration |
---|---|
TLSConnect=cert | TLSCipherCert, TLSCipherCert13 |
TLSConnect=psk | TLSCipherPSK, TLSCipherPSK13 |
TLSAccept=cert | TLSCipherCert, TLSCipherCert13 |
TLSAccept=psk | TLSCipherPSK, TLSCipherPSK13 |
TLSAccept=cert,psk | TLSCipherAll, TLSCipherAll13 |
Zabbix server と ** proxy** の場合:
Connection setup | Cipher configuration |
---|---|
Outgoing connections using PSK | TLSCipherPSK, TLSCipherPSK13 |
Incoming connections using certificates | TLSCipherAll, TLSCipherAll13 |
Incoming connections using PSK if server has no certificate | TLSCipherPSK, TLSCipherPSK13 |
Incoming connections using PSK if server has certificate | TLSCipherAll, TLSCipherAll13 |
上の2つの表でいくつかのパターンを見ることができます:
以下の表は、TLSCipher*
組み込みのデフォルト値を示しています。これらは、独自のカスタム値のための良い出発点になる
可能性があります。
Parameter | GnuTLS 3.6.12 |
---|---|
TLSCipherCert | NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509 |
TLSCipherPSK | NONE:+VERS-TLS1.2:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL |
TLSCipherAll | NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509 |
Parameter | OpenSSL 1.1.1d 1 |
---|---|
TLSCipherCert13 | |
TLSCipherCert | EECDH+aRSA+AES128:RSA+aRSA+AES128 |
TLSCipherPSK13 | TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 |
TLSCipherPSK | kECDHEPSK+AES128:kPSK+AES128 |
TLSCipherAll13 | |
TLSCipherAll | EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128 |
1 デフォルト値は、古いバージョンのOpenSSL(1.0.1、1.0.2、1.1.0)、LibreSSL、および OpenSSL が PSK を
サポートせずにコンパイルされた場合、それぞれ異なっています。
** ユーザー設定暗号スイートの例 **
ユーザーが設定した暗号スイートは、以下の例を参照してください:
どの暗号スイートが選択されたかを確認するには、設定ファイルで DebugLevel=4 を設定するか、zabbix_sender の
-vv
オプションを使用する必要があります。
希望する暗号スイートが得られるまで、TLSCipher*
パラメータの実験が必要な場合があります。TLSCipher*
パラメータを 調整するために、Zabbix server、proxy、agent を何度も再起動するのは不便です。より便利なオプションは zabbix_senderまたは openssl
コマンドを使用することです。ここではその両方を紹介します。
1. zabbix_sender を使う
テスト用の設定ファイルを作成してみましょう。 zabbix_agentd.conf ファイルの構文で、/home/zabbix/test.conf を作成します:
Hostname=nonexisting
ServerActive=nonexisting
TLSConnect=cert
TLSCAFile=/home/zabbix/ca.crt
TLSCertFile=/home/zabbix/agent.crt
TLSKeyFile=/home/zabbix/agent.key
TLSPSKIdentity=nonexisting
TLSPSKFile=/home/zabbix/agent.psk
この例では、有効な CA とエージェントの証明書と PSK が必要です。証明書とPSKのファイルパスとファイル名は、
環境に合わせて調整してください。
証明書を使用せず、PSKのみを使用する場合は、より単純なテストファイルを作成することができます:
Hostname=nonexisting
ServerActive=nonexisting
TLSConnect=psk
TLSPSKIdentity=nonexisting
TLSPSKFile=/home/zabbix/agentd.psk
選択された暗号スイートは、zabbix_sender (OpenSSL 1.1.d でコンパイルされた例)を実行することで確認できます:
$ zabbix_sender -vv -c /home/zabbix/test.conf -k nonexisting_item -o 1 2>&1 | grep ciphersuites
zabbix_sender [41271]: DEBUG: zbx_tls_init_child() certificate ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA
zabbix_sender [41271]: DEBUG: zbx_tls_init_child() PSK ciphersuites: TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
zabbix_sender [41271]: DEBUG: zbx_tls_init_child() certificate and PSK ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
ここでは、デフォルトで選択されている暗号スイートが表示されています。これらのデフォルト値は、OpenSSLの
バージョンが1.0.1より古いシステムで動作する Zabbix agent との相互運用性を確保するために選ばれました。
新しいシステムでは、PFS(Perfect Forward Secrecy)を使用する暗号化方式のみなど、一部の暗号化方式のみを許可することで
セキュリティを強化することが可能です。ここでは、TLSCipher*
パラメータを使って、PFSを持つ暗号スイートだけを
許可するようにしてみましょう。
PSKを使用した場合、OpenSSL 1.0.1および1.0.2を使用したシステムと相互運用できません。
証明書ベースの暗号化は動作するはずです。
設定ファイル test.conf
に2行を追加します:
再度テストします:
$ zabbix_sender -vv -c /home/zabbix/test.conf -k nonexisting_item -o 1 2>&1 | grep ciphersuites
zabbix_sender [42892]: DEBUG: zbx_tls_init_child() certificate ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA
zabbix_sender [42892]: DEBUG: zbx_tls_init_child() PSK ciphersuites: TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA
zabbix_sender [42892]: DEBUG: zbx_tls_init_child() certificate and PSK ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
"certificate ciphersuites"と "PSK ciphersuites" のリストが変更され、以前より短くなり、予想通りTLS 1.3暗号スイートと
TLS 1.2 ECDHE-* 暗号スイートのみが含まれています。
2. TLSCipherAll と TLSCipherAll13 は zabbix_sender ではテストできません。TLSCipherAll と TLSCipherAll13 を
調整するには、agent、proxy、または server で実験する必要があります。
したがって、PFS 暗号スイートのみを許可するには、最大で 3 つのパラメータを追加する必要があります。
TLSCipherCert=EECDH+aRSA+AES128
TLSCipherPSK=kECDHEPSK+AES128
TLSCipherAll=EECDH+aRSA+AES128:kECDHEPSK+AES128
を zabbix_agentd.conf, zabbix_proxy.conf, zabbix_server_conf に追加する必要があります。
Zabbix環境がPSKベースの暗号化のみを使用し、証明書を使用しない場合は、1つだけにしてください:
この仕組みを理解した上で、Zabbixの外でもopenssl
コマンドを使用して暗号化方式をテストすることができます。
3つの TLSCipher*
パラメータ値すべてをテストしてみましょう。:
$ openssl ciphers EECDH+aRSA+AES128 | sed 's/:/ /g'
TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA
$ openssl ciphers kECDHEPSK+AES128 | sed 's/:/ /g'
TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA
$ openssl ciphers EECDH+aRSA+AES128:kECDHEPSK+AES128 | sed 's/:/ /g'
TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA
より詳細な出力を得たい場合は、openssl ciphers
に -V
オプションを指定することをお勧めします:
$ openssl ciphers -V EECDH+aRSA+AES128:kECDHEPSK+AES128
0x13,0x02 - TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
0x13,0x03 - TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
0x13,0x01 - TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
0xC0,0x2F - ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
0xC0,0x27 - ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256
0xC0,0x13 - ECDHE-RSA-AES128-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1
0xC0,0x37 - ECDHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA256
0xC0,0x35 - ECDHE-PSK-AES128-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA1
同様に、GnuTLS の優先度文字列をテストすることができます:
$ gnutls-cli -l --priority=NONE:+VERS-TLS1.2:+ECDHE-RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509
Cipher suites for NONE:+VERS-TLS1.2:+ECDHE-RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509
TLS_ECDHE_RSA_AES_128_GCM_SHA256 0xc0, 0x2f TLS1.2
TLS_ECDHE_RSA_AES_128_CBC_SHA256 0xc0, 0x27 TLS1.2
Protocols: VERS-TLS1.2
Ciphers: AES-128-GCM, AES-128-CBC
MACs: AEAD, SHA256
Key Exchange Algorithms: ECDHE-RSA
Groups: GROUP-SECP256R1, GROUP-SECP384R1, GROUP-SECP521R1, GROUP-X25519, GROUP-X448, GROUP-FFDHE2048, GROUP-FFDHE3072, GROUP-FFDHE4096, GROUP-FFDHE6144, GROUP-FFDHE8192
PK-signatures: SIGN-RSA-SHA256, SIGN-RSA-PSS-SHA256, SIGN-RSA-PSS-RSAE-SHA256, SIGN-ECDSA-SHA256, SIGN-ECDSA-SECP256R1-SHA256, SIGN-EdDSA-Ed25519, SIGN-RSA-SHA384, SIGN-RSA-PSS-SHA384, SIGN-RSA-PSS-RSAE-SHA384, SIGN-ECDSA-SHA384, SIGN-ECDSA-SECP384R1-SHA384, SIGN-EdDSA-Ed448, SIGN-RSA-SHA512, SIGN-RSA-PSS-SHA512, SIGN-RSA-PSS-RSAE-SHA512, SIGN-ECDSA-SHA512, SIGN-ECDSA-SECP521R1-SHA512, SIGN-RSA-SHA1, SIGN-ECDSA-SHA1
Zabbixはデータ用のビルトインデフォルトとしてAES128を使用しています。証明書を使用していて、OpenSSL 1.1.1 の
AES256 に切り替えたい場合を考えてみましょう。
これは、zabbix_server.conf
に各パラメータを追加することで実現可能です:
TLSCAFile=/home/zabbix/ca.crt
TLSCertFile=/home/zabbix/server.crt
TLSKeyFile=/home/zabbix/server.key
TLSCipherCert13=TLS_AES_256_GCM_SHA384
TLSCipherCert=EECDH+aRSA+AES256:-SHA1:-SHA384
TLSCipherPSK13=TLS_CHACHA20_POLY1305_SHA256
TLSCipherPSK=kECDHEPSK+AES256:-SHA1
TLSCipherAll13=TLS_AES_256_GCM_SHA384
TLSCipherAll=EECDH+aRSA+AES256:-SHA1:-SHA384
証明書関連の暗号スイートのみが使用されますが、より広い相互運用性のために、安全性の低い暗号を含むデフォルト値を 避けるために、 TLSCipherPSK*
パラメータも定義されています。PSK暗号スイートは、server / proxy で完全に無効に することはできません。
zabbix_agentd.conf
でも: