Zabbix pot emprar certificats RSA en format PEM, signats per una autoritat de certificació (CA) pública o interna. La verificació del certificat es realitza en una CA de certificat preconfigurada. Opcionalment es poden emprar les llistes de revocació de certificats (CRL). Cada component Zabbix només pot tindre un certificat configurat.
Per obtindre més informació sobre la configuració i l'ús de l'autoritat de certificació interna, la generació de peticions de certificats i la seva signatura, la revocació de certificats, trobareu un gran nombre de manuals d'usuari en línia, per exemple, [OpenSSL PKI Tutorial v1.1] (http://pki-tutorial.readthedocs.org/en/latest/).
Reviseu i proveu amb cura les extensions de certificat: veieu Limitacions a les extensions de certificat X.509 v3.
Paràmetre | Obligatori | Descripció |
---|---|---|
TLSCAFile | sí | Camí complet a un fitxer que conté els certificats de nivell superior de CA per a la verificació de certificats entre iguals. En cas d'una cadena de certificats amb diversos membres, s'han d'ordenar: primer els certificats de CA de nivell inferior, seguits de certificats de nivell superior. Els certificats de diverses CA es poden incloure en un sol fitxer. |
TLSCRLFile | no | Camí complet a un fitxer que conté llistes de revocació de certificats. Veieu Llistes de revocació de certificats (CRL). |
TLSCertFile | yes | Camí complet d'un fitxer que conté un certificat (cadena de certificats). En el cas d'una cadena de certificats amb diversos membres, s'han d'ordenar: primer certificat de servidor, certificat de proxy o agent, seguit de certificats d'inferior nivell i després certificats de CA de nivell superior. |
TLSKeyFile | yes | Camí complet d'un fitxer que conté una clau privada. Estableix els drets d'accés a aquest fitxer: només hauria de ser llegible per l'usuari de Zabbix. |
TLSServerCertIssuer | no | Emissor del certificat del servidor es permet. |
TLSServerCertSubject | no | Titular autoritzat del certificat del servidor. |
After setting up the necessary certificates, configure Zabbix components to use certificate-based encryption.
Below are detailed steps for configuring:
1. Per tal de verificar els certificats dels parells, el servidor Zabbix ha de tindre accés al fitxer amb els seus certificats de CA arrel autosignats de primer nivell. Per exemple, si esperem certificats de dues CA arrel independents, podem posar els seus certificats al fitxer /home/zabbix/zabbix_ca_file
:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Root1 CA
...
Subject: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Root1 CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
...
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
...
-----BEGIN CERTIFICATE-----
MIID2jCCAsKgAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MRMwEQYKCZImiZPyLGQB
....
9wEzdN8uTrqoyU78gi12npLj08LegRKjb5hFTVmO
-----END CERTIFICATE-----
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Root2 CA
...
Subject: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Root2 CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
....
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE
....
-----BEGIN CERTIFICATE-----
MIID3DCCAsSgAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MRMwEQYKCZImiZPyLGQB
...
vdGNYoSfvu41GQAR5Vj5FnRJRzv5XQOZ3B6894GY1zY=
-----END CERTIFICATE-----
2. Poseu la cadena de certificats del servidor Zabbix a un arxiu, com ara /home/zabbix/zabbix_server.crt
:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Signing CA
...
Subject: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Zabbix server
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
...
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Basic Constraints:
CA:FALSE
...
-----BEGIN CERTIFICATE-----
MIIECDCCAvCgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixk
...
h02u1GHiy46GI+xfR3LsPwFKlkTaaLaL/6aaoQ==
-----END CERTIFICATE-----
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 2 (0x2)
Signature Algorithm: sha1WithRSAEncryption
Issuer: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Root1 CA
...
Subject: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Signing CA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
...
X509v3 extensions:
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
...
-----BEGIN CERTIFICATE-----
MIID4TCCAsmgAwIBAgIBAjANBgkqhkiG9w0BAQUFADB+MRMwEQYKCZImiZPyLGQB
...
dyCeWnvL7u5sd6ffo8iRny0QzbHKmQt/wUtcVIvWXdMIFJM0Hw==
-----END CERTIFICATE-----
Aquí el primer és el certificat del servidor Zabbix, seguit del certificat de la CA intermitja.
Es desaconsella l'ús de qualsevol atribut, excepte els esmentats anteriorment, tant per als certificats de client com de servidor, perquè pot afectar el procés de verificació del certificat. Per exemple, l'OpenSSL pot no establir una connexió xifrada si s'estableix X509v3 Extended Key Usage o Netscape Cert Type. Veieu també: Limitacions en l'ús de les extensions de certificat X.509 v3.
3. Poseu la clau privada del servidor Zabbix a un arxiu, com ara /home/zabbix/zabbix_server.key
:
-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQC9tIXIJoVnNXDl
...
IJLkhbybBYEf47MLhffWa7XvZTY=
-----END PRIVATE KEY-----
4. Editeu els paràmetres TLS a l'arxiu de configuració del servidor Zabbix, amb aquest valors:
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSCertFile=/home/zabbix/zabbix_server.crt
TLSKeyFile=/home/zabbix/zabbix_server.key
1. Prepareu fitxers amb certificats de CA de primer nivell, certificat de proxy (cadena) i clau privada tal com es descriu a Configuració del certificat al servidor Zabbix. Modifiqueu els paràmetres TLSCAFile
, TLSCertFile
, TLSKeyFile
a la configuració del proxy en conseqüència.
2. Per a un proxy actiu, modifiqueu el paràmetre TLSConnect
:
Per a un proxy passiu, modifiqueu el paràmetre TLSAccept
:
3. Ara teniu una configuració mínima de proxy basada en certificats. Opcionalment, podeu millorar la seguretat del proxy configurant els paràmetres TLSServerCertIssuer
i TLSServerCertSubject
(veieu restriccions de l'emissor i del subjecte permesos).
4. Al fitxer de configuració del proxy final, la configuració de TLS podria semblar així:
TLSConnect=cert
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSServerCertIssuer=CN=Signing CA,OU=Grup de desenvolupament,O=Zabbix SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Servidor Zabbix,OU=Grup de desenvolupament,O=Zabbix SIA,DC=zabbix,DC=com
TLSCertFile=/home/zabbix/zabbix_proxy.crt
TLSKeyFile=/home/zabbix/zabbix_proxy.key
5. Configureu el xifrat per a aquest proxy a la interfície Zabbix:
En els exemples següents, s'emplenen els camps Emissor i Assumpte; veieu a restricció d'emissor i subjecte permesos per què i com emprar aquests camps.
Per a un proxy actiu
Per a un proxy passiu
1. Prepareu fitxers amb certificats de CA de nivell superior, certificat d'agent (cadena) i clau privada tal com es descriu a la configuració del certificat al servidor Zabbix. Modifiqueu els paràmetres TLSCAFile
, TLSCertFile
, TLSKeyFile
a la configuració de l'agent en conseqüència.
2. Per al monitoratge actiu, modifiqueu el paràmetre TLSConnect
:
Per al monitoratge passiu, modifiqueu el paràmetre TLSAccept
:
3. Ara teniu una configuració mínima d'agent basada en certificats. Opcionalment, podeu millorar la seguretat de l'agent configurant els paràmetres TLSServerCertIssuer' i
TLSServerCertSubject` (veieu Restricció de l'emissor i del assumpte permesos).
4. Al fitxer de configuració de l'agent final, la configuració de TLS podria assemblar-se a:
TLSConnect=cert
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSServerCertIssuer=CN=Signing CA,OU=Grup de desenvolupament,O=Zabbix SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Proxy Zabbix,OU=Grup de desenvolupament,O=Zabbix SIA,DC=zabbix,DC=com
TLSCertFile=/home/zabbix/zabbix_agentd.crt
TLSKeyFile=/home/zabbix/zabbix_agentd.key
(L'exemple suposa que l'equip s'és monitorant a través d'un proxy, per tant, el CN "subjecte" del certificat s'estableix com a proxy Zabbix).
5. Configureu el xifrat per a aquest agent a la interfície Zabbix:
A l'exemple següent, s'emplenen els camps Emissor i Assumpte; veieu a restricció de l'emissor i l'assumpte permesos per què i com emprar aquests camps.
1. Prepare files with the top-level CA certificates, the Zabbix web service certificate/certificate chain, and the private key as described in the Zabbix server section. Then, edit the TLSCAFile
, TLSCertFile
, and TLSKeyFile
parameters in the Zabbix web service configuration file accordingly.
2. Edit an additional TLS parameter in the Zabbix web service configuration file: TLSAccept=cert
TLS parameters in the final web service configuration file may look as follows:
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSCertFile=/home/zabbix/zabbix_web_service.crt
TLSKeyFile=/home/zabbix/zabbix_web_service.key
3. Configure Zabbix server to connect to the TLS-configured Zabbix web service by editing the WebServiceURL
parameter in the Zabbix server configuration file:
Quan dos components (per exemple, el servidor Zabbix i l'agent) estableixen una connexió TLS, cadascun comprova els certificats de l'altre. Si un certificat igual signat per una CA de confiança (amb un certificat de nivell superior preconfigurat a "TLSCAFile") és vàlid, no ha caducat i passa més comprovacions, la comunicació pot continuar. L'emissor i el subjecte del certificat no es comprova en aquest cas més senzill.
Hi ha el risc que qualsevol persona amb un certificat vàlid pugui suplantar la identitat d'una altra persona (per exemple, es pot emprar un certificat d'equip per suplantar la identitat d'un servidor). Això pot ser acceptable en entorns petits on els certificats són signats per una CA interna dedicada i el risc de suplantació d'identitat és baix.
Si la vostra CA de nivell superior s'empra per emetre altres certificats que Zabbix no hauria d'acceptar o si voleu reduir el risc de falsificació, podeu restringir els certificats permesos especificant-ne el remitent i l'assumpte.
Per exemple, podeu escriure al fitxer de configuració del proxy Zabbix:
TLSServerCertIssuer=CN=Signing CA,OU=Grup de desenvolupament,O=Zabbix SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Servidor Zabbix,OU=Grup de desenvolupament,O=Zabbix SIA,DC=zabbix,DC=com
Amb aquesta configuració, el proxy actiu no es comunicarà amb el servidor Zabbix amb una cadena d'emissor o una cadena de subjecte diferent al certificat, i el proxy passiu no acceptarà peticions d'aquest servidor.
Algunes notes sobre la concordança de la cadena del remitent o de l'assumpte:
L'ordre dels camps a les cadenes Entrega per i Assumpte i el format són importants! Zabbix segueix les recomanacions de RFC 4514 i empra l'ordre "inversa" dels camps.
L'ordre inversa es pot il·lustrar amb l'exemple següent:
TLSServerCertIssuer=CN=Signing CA,OU=Grup de desenvolupament,O=Zabbix SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Proxy Zabbix,OU=Grup de desenvolupament,O=Zabbix SIA,DC=zabbix,DC=com
Tingueu en compte que comença amb el nivell baix (CN), va al nivell mitjà (OU, O) i acaba amb els camps de nivell superior (DC).
OpenSSL mostra per defecte els camps Emissor i Assumpte del certificat en ordre "normal", depenent de les opcions addicionals emprades:
$ openssl x509 -noout -in /home/zabbix/zabbix_proxy.crt -issuer -subject
emissor= /DC=com/DC=zabbix/O=Zabbix SIA/OU=Grup de desenvolupament/CN=Signing CA
subject= /DC=com/DC=zabbix/O=Zabbix SIA/OU=Grup de desenvolupament/CN=Proxy Zabbix
$ openssl x509 -noout -text -in /home/zabbix/zabbix_proxy.crt
Certificació:
...
Emissor: DC=com, DC=zabbix, O=Zabbix SIA, OU=Grup de desenvolupament, CN=Signing CA
...
Assumpte: DC=com, DC=zabbix, O=Zabbix SIA, OU=Grup de desenvolupament, CN=proxy Zabbix
Aquí les cadenes Emissor i Subject comencen amb el nivell superior (DC) i acaben amb un camp de nivell baix (CN), els espais i els separadors de camps depenen de les opcions emprades. Cap d'aquests valors coincidirà als camps Remitent i Assumpte de Zabbix!
Per obtindre les cadenes correctes d'emissor i subjecte que es puguin emprar a Zabbix, executeu OpenSSL amb opcions especials
(-nameopt esc_2253,esc_ctrl,utf8,dump_nostr,dump_unknown,dump_der,sep_comma_plus,dn_rev,sname
):
$ openssl x509 -noout -issuer -subject \
-nameopt esc_2253,esc_ctrl,utf8,dump_nostr,dump_unknown,dump_der,sep_comma_plus,dn_rev,sname \
-in /home/zabbix/zabbix_proxy.crt
issuer= CN=Signing CA,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com
subject= CN=Zabbix proxy,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com
Ara els camps de cadena són en ordre invers, els camps són separats per comes, es poden emprar en fitxers de configuració i a la interfície Zabbix.
Issuer
and Subject
stringsThe rules for matching Issuer
and Subject
strings are as follows:
Issuer
and Subject
strings are checked independently. Both are optional.*
) or regular expressions are not supported.\
' backslash, U+005C):
"
' (U+0022), '+
' (U+002B), ',
' (U+002C), ';
' (U+003B), '<
' (U+003C), '>
' (U+003E), '\\
' (U+005C);#
', U+0023);For example, if Issuer
and Subject
organization (O
) strings contain trailing spaces and the Subject
organizational unit (OU
) string contains double quotes, these characters must be escaped:
TLSServerCertIssuer=CN=Signing CA,OU=Development head,O=\ Example SIA\ ,DC=example,DC=com
TLSServerCertSubject=CN=Zabbix server,OU=Development group \"5\",O=\ Example SIA\ ,DC=example,DC=com
Zabbix follows the recommendations of RFC 4514, which specifies a "reverse" order for these fields, starting with the lowest-level fields (CN
), proceeding to the mid-level fields (OU
, O
), and concluding with the highest-level fields (DC
).
TLSServerCertIssuer=CN=Signing CA,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Zabbix proxy,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com
In contrast, OpenSSL by default displays the Issuer
and Subject
strings in top-level to low-level order. In the following example, Issuer
and Subject
fields start with the top-level (DC
) and end with the low-level (CN
) field. The formatting with spaces and field separators also varies based on the options used, and thus will not match the format required by Zabbix.
$ openssl x509 -noout -in /home/zabbix/zabbix_proxy.crt -issuer -subject
issuer= /DC=com/DC=zabbix/O=Zabbix SIA/OU=Development group/CN=Signing CA
subject= /DC=com/DC=zabbix/O=Zabbix SIA/OU=Development group/CN=Zabbix proxy
$ openssl x509 -noout -text -in /home/zabbix/zabbix_proxy.crt
Certificate:
...
Issuer: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Signing CA
...
Subject: DC=com, DC=zabbix, O=Zabbix SIA, OU=Development group, CN=Zabbix proxy
To format Issuer and Subject strings correctly for Zabbix, invoke OpenSSL with the following options:
$ openssl x509 -noout -issuer -subject \
-nameopt esc_2253,esc_ctrl,utf8,dump_nostr,dump_unknown,dump_der,sep_comma_plus,dn_rev,sname\
-in /home/zabbix/zabbix_proxy.crt
The output will then be in reverse order, comma-separated, and usable in Zabbix configuration files and frontend:
issuer= CN=Signing CA,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com
subject= CN=Zabbix proxy,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com
Si un certificat és compromès, l'autoritat de certificació pot revocar-lo incloent-lo a la llista de revocació de certificats. Els CRL es poden configurar al fitxer de configuració del servidor, el proxy i l'agent mitjançant el paràmetre TLSCRLFile
. Per exemple:
on zabbix_crl_file
pot contindre llistes de revocació de certificats de diverses autoritats de certificació i assemblar-se a:
-----BEGIN X509 CRL-----
MIIB/DCB5QIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixkARkWA2Nv
...
treZeUPjb7LSmZ3K2hpbZN7SoOZcAoHQ3GWd9npuctg=
-----END X509 CRL-----
-----BEGIN X509 CRL-----
MIIB+TCB4gIBATANBgkqhkiG9w0BAQUFADB/MRMwEQYKCZImiZPyLGQBGRYDY29t
...
CAEebS2CND3ShBedZ8YSil59O6JvaDP61lR5lNs=
-----END X509 CRL-----
El fitxer CRL només es carrega a l'inici de Zabbix. L'actualització de la llista de revocació de certificats requereix un reinici.
Si el component Zabbix es compila amb OpenSSL i s'empren llistes de revocació de certificats, cada CA de nivell superior i mitjà de les cadenes de certificats ha de tindre una llista de revocació de certificats (pot ésser buida) a "TLSCRLFile".