Zabbix prend en charge les communications chiffrées entre le serveur Zabbix, le proxy Zabbix, les agents Zabbix, les utilitaires zabbix_sender et zabbix_get en utilisant le protocole TLS (Transport Layer Security) v.1.2. Le chiffrement est pris en charge à partir de Zabbix 3.0. Le chiffrement basé sur des certificats et sur des clés pré-partagées est pris en charge.
Le chiffrement est facultatif et configurable pour chaque composant individuellement (par exemple, certains proxys et agents peuvent être configurés pour utiliser le chiffrement basé sur des certificats avec le serveur, tandis que d'autres peuvent utiliser le chiffrement par clé pré-partagée).
Le serveur (ou le proxy) peut utiliser différentes configurations de chiffrement pour différents hôtes.
Les démons Zabbix utilisent un seul port d'écoute pour les connexions entrantes chiffrées et non chiffrées. L'ajout d'un chiffrement ne nécessite pas l'ouverture de nouveaux ports sur les pare-feux.
Pour prendre en charge le chiffrement, Zabbix doit être compilé et lié à l'une des trois bibliothèques cryptographiques suivantes :
tls_*() de l'API LibreSSL-specific ne sont pas utilisées. Les composants Zabbix compilés avec LibreSSL ne pourront pas utiliser PSK, seuls les certificats peuvent être utilisés.
* mbed TLS (anciennement PolarSSL) (version 1.3.9 et ultérieures 1.3.x). mbed TLS 2.x n'est actuellement pas supporté, ce n'est pas un remplacement instantané de la branche 1.3, Zabbix ne compilera pas avec mbed TLS 2.x.
La bibliothèque est sélectionnée en spécifiant une des options suivantes au script “configure” :
* --with-gnutls[=DIR]
* <nowiki>–with-openssl[=DIR]</nowiki> (également utilisé pour LibreSSL)
* <nowiki>–with-mbedtls[=DIR]</nowiki>
Par exemple, pour configurer les sources pour le serveur et l'agent avec OpenSSL, vous pouvez utiliser le script “configure” comme suit :TLSConnect
* TLSAccept
TLSConnect spécifie le chiffrement à utiliser pour les connexions sortantes et peut prendre une des trois valeurs (unencrypted, PSK, certificate).
TLSConnect est utilisé dans les fichiers de configuration pour le proxy Zabbix (en mode actif, spécifie uniquement les connexions au serveur) et l'agent Zabbix (pour les vérifications actives). Dans l'interface Zabbix, les équivalents de TLSConnect sont le champ Connexion à l'hôte de l'onglet Configuration - >Hôtes → <un hôte> → Chiffrement et le champ Connexion au proxy de l'onglet Administration → Proxys → <un proxy> → Chiffrement.
Si le type de chiffrement configuré pour la connexion échoue, aucun autre type de chiffrement ne sera essayé.
TLSAccept indique quels types de connexions sont autorisés pour les connexions entrantes. Les types de connexion sont les suivants : unencrypted, PSK, certificate. Une ou plusieurs valeurs peuvent être spécifiées.
TLSAccept est utilisé dans les fichiers de configuration du proxy Zabbix (en mode passif, spécifie uniquement les connexions du serveur) et du démon Zabbix agentd (pour les vérifications passives). Dans l'interface Zabbix, les équivalents de TLSAccept sont le champ Connexion de l'hôte de l'onglet Configuration → Hôtes → <un hôte> → Chiffrement et le champ Connexions du proxy de l'onglet Administration → Proxys → <un proxy> → Chiffrement.
Normalement, vous ne configurez qu'un seul type de chiffrement pour les chiffrements entrants. Mais vous pourriez vouloir changer de type de chiffrement, par exemple du non chiffré au certificat avec un temps d'arrêt minimum et une possibilité de retour en arrière.TLSAccept=unencrypted,cert dans le fichier de configuration du démon agentd, puis redémarrer l'agent Zabbix.zabbix_get à destination de l'agent utilisant un certificat. Si cela fonctionne, vous pourrez reconfigurer le chiffrement pour cet agent dans l'onglet Configuration → Hôtes → <un hôte> → Chiffrement de l'interface Zabbix en définissant Connexion à l'hôte à “Certificat”.TLSAccept=cert dans le fichier de configuration de l'agent et redémarrer l'agent Zabbix.zabbix_sender (éléments trappeur).
Vous configurerez très probablement les connexions entrantes et sortantes pour utiliser le même type de chiffrement ou aucun chiffrement. Mais techniquement, il est possible de passer à une configuration asymétrique, par exemple un chiffrement par certificat pour les connexions entrantes et basées sur PSK pour les connexions sortantes.
Pour une vue d'ensemble, la configuration de chiffrement pour chaque hôte est affichée dans l'interface Zabbix Configuration → Hôtes sur le côté droit, dans la colonne Chiffrement sur l'agent. Exemples d'affichage de configuration :
^Exemple^Connexions A l'hôte^Connexions autorisées DE l'hôte^Connexions rejetées DE l'hôte^
|
| Non chiffrées | Non chiffrées | Chiffrées par certificat et PSK |
|
| Chiffrées par certificat | Chiffrées par certificat | Non chiffrées et chiffrées par PSK |
|
| Chiffrées par PSK | Chiffrées par PSK | Non chiffrées et chiffrées par certificat |
|
| Chiffrées par PSK | Non chiffrées et chiffrées par PSK | Chiffrées par certificat |
|
| Chiffrées par certificat | Non chiffrées, chiffrées par certificat et chiffrées par PSK | - |
<note important>
Par défaut, les connexions sont non chiffrées. Le chiffrement doit être configuré pour chaque hôte et chaque proxy individuellement.
</note>
=== zabbix_get et zabbix_sender avec chiffrement ===
Voir les man-pages zabbix_get et zabbix_sender pour une utilisation par chiffrement.
=== Méthodes de chiffrement ===
Les méthodes de chiffrement sont configurées en interne lors du démarrage de Zabbix et dépendent de la bibliothèque cryptographique, actuellement ils ne sont pas configurables par l'utilisateur.
Configurations du chiffrements par type de bibliothèque, de la priorité la plus élevée à la plus basse :
^Bibliothèque^Méthodes de chiffrement par certificat^Méthodes de chiffrement PSK^
| mbed TLS (PolarSSL) 1.3.9 |TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256