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 v2.0] (http://pki-tutorial.readthedocs.org/en/latest/).
Reviseu i proveu amb cura les extensions de certificat.
Veieu les Limitacions a les extensions de certificat X.509 v3 per obtindre més detalls.
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. Assegureu-vos que l'arxiu és lde lectura només per a l'usuari Zabbix, establint els drets d'accés convenients. |
TLSServerCertIssuer | no | Emissor del certificat del servidor es permet. |
TLSServerCertSubject | no | Titular autoritzat del certificat del servidor. |
Després de configurar els certificats necessaris, configureu els components de Zabbix per utilitzar el xifrat basat en certificats.
Tot seguit es mostren les passes detallades per a la configuració:
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
:
```ini
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.
:::noteclassic
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](/manual/encryption/using_certificates#limitations_on_using_x509_v3_certificate_extensions).
:::
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:
```ini
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. Editeu els paràmetres adicionals a l'arxiu de configuració del proxy Zabbix:
Per al proxy actiu: TLSConnect=cert
Per a un proxy passiu: TLSAccept=cert
Per millorar la seguretat del proxy, podeu configurar els paràmetres TLSServerCertIssuer
i TLSServerCertSubject
. Per a més informació, veieu les restriccions permeses de l'emissor i de l'assumpte.
Al fitxer de configuració del proxy final, la configuració de TLS podria semblar així:
```ini
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
```
3. 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 l'arxiu de configuració de l'agent Zabbix com pertoqui.
2. Editeu els paràmetres TLS addicionals a l'arxiu de configuració de l'agent Zabbix:
Per al monitoratge actiu: TLSConnect=cert
Per al monitoratge passiu: TLSAccept=cert
Podeu millorar la seguretat de l'agent configurant els paràmetres TLSServerCertIssuer' i
TLSServerCertSubject` (veieu Restricció de l'emissor i del assumpte permesos).
Els paràmetres TLS a la configuració final de l'agent serien com tot seguit. Fixeu-vos que l'exemple assumeix que l'equip és monitorat per un proxy; per tant, s'especifica com a Assumpte el certificat:
```ini
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
```
3. 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. Prepareu fitxers amb els certificats de CA de nivell superior, el certificat/cadena de certificats del servei web Zabbix i la clau privada tal com es descriu a la secció Servidor Zabbix. A continuació, editeu els paràmetres TLSCAFile
, TLSCertFile
i TLSKeyFile
al fitxer de configuració del servei web Zabbix en conseqüència.
2. Editeu un paràmetre TLS addicional al fitxer de configuració del servei web Zabbix: TLSAccept=cert
Els paràmetres TLS del fitxer de configuració del servei web final poden tindre el següent aspecte:
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSCertFile=/home/zabbix/zabbix_web_service.crt
TLSKeyFile=/home/zabbix/zabbix_web_service.key
3. Configureu el servidor Zabbix per connectar-se al servei web Zabbix configurat per TLS editant el paràmetre WebServiceURL
al fitxer de configuració del servidor Zabbix:
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.
Emissor
i Assumpte
Les regles per fer coincidir les cadenes Emissor
i Assumpte
són les següents:
Emissor
i Assumpte
es comproven de manera independent. Tots dos són opcionals.*
) ni les expressions regulars.\
', U+005C):
"
' (U+0022), '+
' (U+002B), ',
' (U+002C), ';
' (U+003B), '<
' (U+003C), '>
' (U+003E), '`\'' (U+005C);Per exemple, si les cadenes d'organització Emissor
i Assumpte
(O
) contenen espais al final i la cadena de la unitat organitzativa Assumpte
(OU
) conté cometes dobles, aquests caràcters s'han d'escapar:
TLSServerCertIssuer=CN=Signing CA,OU=Cap de desenvolupament,O=\ Exemple SIA\ ,DC=exemple,DC=com
TLSServerCertSubject=CN=Servidor Zabbix,OU=Grup de desenvolupament \"5\",O=\ Exemple SIA\ ,DC=exemple,DC=com
Zabbix segueix les recomanacions de RFC 4514, que especifica un ordre "invers" per a aquests camps, començant pels camps de nivell més baix (CN
), continuant als camps de nivell mig (OU
, O
) i concloent amb els camps de nivell més alt (DC
).
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
En canvi, OpenSSL mostra per defecte les cadenes Emissor
i Assumpte
en ordre de nivell superior a nivell inferior. A l'exemple següent, els camps Emissor
i Assumpte
comencen al nivell superior ("DC") i acaben amb el camp de nivell inferior ("CN"). El format amb espais i separadors de camps també varia en funció de les opcions emprades i, per tant, no coincidirà amb el format requerit per Zabbix.
$ openssl x509 -noout -in /home/zabbix/zabbix_proxy.crt -issuer -subject
issuer= /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
Certificate:
...
Issuer: DC=com, DC=zabbix, O=Zabbix SIA, OU=Grup de desenvolupament, CN=Signing CA
...
Subect: DC=com, DC=zabbix, O=Zabbix SIA, OU=Grup de desenvolupament, CN=proxy Zabbix
Per formatar correctament les cadenes Emissor i Subject per a Zabbix, invoqueu OpenSSL amb les opcions següents:
$ openssl x509 -noout -issuer -subject \
-nameopt esc_2253,esc_ctrl,utf8,dump_nostr,dump_unknown,dump_der,sep_comma_plus,dn_rev,sname\
-a /home/zabbix/zabbix_proxy.crt
Aleshores, la sortida estarà en ordre invers, separada per comes i es podrà emprar als fitxers de configuració i a la interfície de Zabbix:
issuer= CN= Signatura CA, OU= grup de desenvolupament, O= Zabbix SIA, DC=zabbix, DC=com
subject= CN=proxy Zabbix,OU=Grup de desenvolupament,O=Zabbix SIA,DC=zabbix,DC=com
Quan s'implementen certificats X.509 v3 dins de Zabbix, és possible que algunes extensions no siguin totalment compatibles o poden provocar un comportament inconsistent.
Extensió Subject Alternative Name
Zabbix no admet l'extensió Subject Alternative Name, que s'empra per especificar noms DNS alternatius, com ara adreces IP o adreces de correu electrònic. Zabbix només pot validar el valor del camp Assumpte del certificat (vegeu Restricció de l'emissor i l'assumpte de certificats permesos). Si els certificats inclouen el camp subjectAltName
, el resultat de la validació del certificat pot variar en funció dels conjunts d'eines de criptografia específics utilitzats per compilar components Zabbix. Com a resultat, Zabbix pot acceptar o rebutjar certificats basats en aquestes combinacions.
Extensió Extended Key Usage
Zabbix admet l'extensió Extended Key Usage. Tanmateix, si s'empra, generalment es requereix que s'especifiquin tant els atributs clientAuth (per a l'autenticació de client TLS WWW) com serverAuth (per a l'autenticació de servidor TLS WWW). Per exemple:
Tot i que GnuTLS pot emetre un avís per infraccions d'ús de claus, normalment permet que la comunicació continuï malgrat aquests avisos.
Extensió Name Constraints
El suport per a l'extensió Name Constraints varia entre els kits d'eines de criptografia. Assegureu-vos que el conjunt d'eines que trieu admet aquesta extensió. Aquesta extensió pot restringir Zabbix de carregar certificats de CA si aquesta secció és marcada com a crítica, depenent del conjunt d'eines específic que s'empra.
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
.