1 Emprant certificats

Vista general

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àmetres de configuració del certificat

Paràmetre Obligatori Descripció
TLSCAFile 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.

Configurant un certificat al servidor Zabbix

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

Configuració del xifrat per certificat per al proxy Zabbix

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:

 TLSConnect=cert

Per a un proxy passiu, modifiqueu el paràmetre TLSAccept:

 TLSAccept=cert

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:

  • Aneu a: Administració → Proxys
  • Trieu un proxy i feu clic a la pestanya Xifrat

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

proxy_active_cert.png

Per a un proxy passiu

proxy_passive_cert.png

Configuració del xifrat del certificat per a l'agent Zabbix

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:

 TLSConnect=cert

Per al monitoratge passiu, modifiqueu el paràmetre TLSAccept:

 TLSAccept=cert

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' iTLSServerCertSubject` (veieu Restricció de l'emissor i del subjecte 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:

  • Aneu a: Administració → Equips
  • Trieu l'agent i feu clic a la pestanya Xifrat

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.

agent_config.png

Restricció de l'emissor i receptor autoritzats

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:

  1. Les cadenes del remitent i del subjecte es comproven de manera independent. Tots dos són opcionals.
  2. Es permeten caràcters UTF-8.
  3. La cadena no especificada significa que s'accepta qualsevol cadena.
  4. Les cadenes es comparen "tal com són", han de ser exactament iguals perquè coincideixin.
  5. Els comodins i les expressions regulars no s'admeten a la concordança.
  6. Només s'implementen certs requisits d'RFC 4514 Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names:
    1. caràcters d'escapada '"' (U+0022), '+' U+002B, ',' U+002C, ';' U+003B, '<' U+003C, '>' U+003E, '' U+005C en qualsevol lloc de la cadena.
    2. Caràcters d'escapada (' ' U+0020) o el signe de lletra ('#' U+0023) al principi de la cadena.
    3. caràcters d'escapada (' ' U+0020) al final de la cadena.
  7. La coincidència falla si es troba un caràcter nul (U+0000) ([[http://tools.ietf.org/html/rfc4514|RFC 4514]] ho permet).
  8. Els requisits de [[http://tools.ietf.org/html/rfc4517|RFC 4517 Lightweight Directory Access Protocol (LDAP): sintaxis i regles de concordança]] i [[http://tools.ietf.org/ html/rfc4518|RFC 4518 Lightweight Directory Access Protocol (LDAP): preparació de cadenes internacionalitzades]] no s'admeten a causa de la quantitat de treball necessària.

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.

Limitacions sobre les extensions de certificat X.509 v3

  • Extensió Subject AltName (subjectAltName).
    Zabbix no admet els noms d'assumpte alternatius de l'extensió subjectAltName (com l'adreça IP o l'adreça de correu electrònic). Només el valor del camp "Assumpte" es pot comprovar a Zabbix (veieu Restricció de l'emissor i del subjecte permesos).
    Si un certificat empra l'extensió subjectAltName, el resultat dependrà d'una combinació particular de conjunts d'eines criptogràfiques amb què es compilen els components de Zabbix (això pot funcionar o no, Zabbix pot negar-se a acceptar aquests certificats dels seus companys).
  • Extensió Ús de clau estesa.
    Si s'empren, normalment es requereixen els dos paràmetres clientAuth (TLS WWW Client Authentication) i serverAuth (TLS WWW Server Authentication).
    Per exemple, a les comprovacions passives, l'agent Zabbix fa un paper de servidor TLS, de manera que serverAuth s'ha d'establir al certificat de l'agent. Per a les comprovacions actives, el certificat de l'agent requereix la configuració de clientAuth.
    GnuTLS emet un avís si es viola l'ús de la clau, però permet la comunicació.
  • Extensió Name Constraints.
    No tots els kits d'eines de criptografia ho admeten. Aquesta extensió pot evitar que Zabbix carregui certificats de CA per als quals aquesta secció és marcada com a crítica (depèn del conjunt d'eines de criptografia).

Llistes de revocació de certificats (CRL)

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:

 TLSCRLFile=/home/zabbix/zabbix_crl_file

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".