1 Коришћење сертификата

Преглед

Zabbix може да користи RSA сертификате у PEM формату, потписане од стране јавног или интерног ауторитета за сертификацију (CA).

Верификација сертификата се врши према унапред конфигурисаном CA сертификату. Опционо, Certificate Revocation Lists (CRL) се може користити.

Свака Zabbix компонента може имати само један конфигурисан сертификат.

За више информација о постављању и раду интерног CA, генерисању и потписивању захтева за сертификате и опозивању сертификата, погледајте упутства као што је OpenSSL PKI Tutorial v2.0.

Пажљиво размотрите и тестирајте проширења сертификата. За више детаља погледајте Ограничења коришћења екстензија сертификата X.509 v3.

Конфигурациони параметри сертификата

Следећи параметри конфигурације су подржани за подешавање сертификата на Заббик компонентама.

Parameter Mandatory Description
TLSCAFile да Пуна путања датотеке која садржи CA сертификате највишег нивоа за верификацију сертификата равноправних партнера.
Ако користите ланац сертификата са више чланова, наручите сертификате са CA сертификатима нижег нивоа прво, затим CA сертификати вишег нивоа.
Сертификати из више CA могу бити укључени у једну датотеку.
TLSCRLFile не Пуна путања датотеке која садржи Certificate Revocation Lists (CRL).
TLSCertFile да Пуна путања датотеке која садржи сертификат.
Ако користите ланац сертификата са више чланова, наручите сертификате прво са сертификатом сервера, проксија или агента, а затим са CA(овима) нижег нивоа сертификати, а закључени сертификатима CA(ова) вишег нивоа.
TLSKeyFile да Пуну путању датотеке која садржи приватни кључ.
Уверите се да ову датотеку може да чита само Zabbix корисник тако што ћете поставити одговарајући права приступа.
TLSServerCertIssuer не Дозвољени издавач сертификата сервера.
TLSServerCertSubject не Дозвољени предмет сертификата сервера.

Примери конфигурације

Након подешавања потребних сертификата, конфигуришите Zabbix компоненте да користе шифровање засновано на сертификатима.

Испод су детаљни кораци за конфигурисање:

Zabbix сервер

1. Припремите датотеку CA сертификата.

Да би верификовао истоврсне сертификате, Zabbix сервер мора имати приступ датотеци која садржи самопотписане роот CA сертификате највишег нивоа. На пример, ако су потребни сертификати од два независна основна CA, ставите их у датотеку на /home/zabbix/zabbix_ca_file.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=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. Поставите ланац сертификата/сертификата Zabbix сервера у датотеку, на пример, на /home/zabbix/zabbix_server.crt. Први сертификат је сертификат Zabbix сервера, а затим средњи CA сертификат:

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

Користите само горе поменуте атрибуте и за клијентске и за серверске сертификате да бисте избегли утицај на процес верификације сертификата. На пример, OpenSSL можда неће успети да успостави шифровану везу ако се користе екстензије X509v3 Subject Alternative Name или Netscape Cert Type. За више информација погледајте Ограничења коришћења екстензија сертификата X.509 v3.

3. Поставите приватни кључ Zabbix сервера у датотеку, на пример, на /home/zabbix/zabbix_server.key:

-----BEGIN PRIVATE KEY-----
       MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQC9tIXIJoVnNXDl
       ...
       IJLkhbybBYEf47MLhffWa7XvZTY=
       -----END PRIVATE KEY-----

4. Уредите TLS конфигурационе параметре у Zabbix конфигурационој датотеци сервера:

TLSCAFile=/home/zabbix/zabbix_ca_file
       TLSCertFile=/home/zabbix/zabbix_server.crt
       TLSKeyFile=/home/zabbix/zabbix_server.key
Zabbix прокси

1. Припремите датотеке са CA сертификатима највишег нивоа, Zabbix прокси сертификатом/ланац сертификата и приватним кључем као што је описано у одељку Zabbix сервер. Затим уредите параметре TLSCAFile, TLSCertFile и TLSKeyFile у Zabbix прокси конфигурационој датотеци у складу са тим.

2. Уредите додатне TLS параметре у Zabbix прокси конфигурационој датотеци:

  • За активни прокси: TLSConnect=cert
  • За пасивни прокси: TLSAccept=cert

Да бисте побољшали безбедност проксија, такође можете да подесите параметре TLSServerCertIssuer и TLSServerCertSubject. За више информација погледајте Ограничавање дозвољеног издаваоца и субјекта сертификата.

TLS параметри у коначној конфигурационој датотеци проксија могу изгледати овако:

TLSConnect=cert
       TLSAccept=cert
       TLSCAFile=/home/zabbix/zabbix_ca_file
       TLSServerCertIssuer=CN=Signing CA,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com
       TLSServerCertSubject=CN=Zabbix server,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com
       TLSCertFile=/home/zabbix/zabbix_proxy.crt
       TLSKeyFile=/home/zabbix/zabbix_proxy.key

3. Конфигуришите шифровање за овај прокси у Zabbix корисничком интерфејсу:

  • Идите на: Администрација → Проксији.
  • Изаберите прокси и кликните на картицу Шифровање.

У примерима испод, поља Издавач и Субјекат су попуњена. За више информација о томе зашто и како да користите ова поља, погледајте Ограничавање дозвољеног издаваоца сертификата и предмета.

За активни прокси:

За пасивни прокси:

Zabbix агент

1. Припремите датотеке са CA сертификатима највишег нивоа, ланцем сертификата/сертификата Zabbix агента и приватним кључем као што је описано у одељку Zabbix сервер. Затим уредите параметре TLSCAFile, TLSCertFile и TLSKeyFile у конфигурационој датотеци Zabbix агента.

2. Уредите додатне TLS параметре у конфигурационој датотеци Zabbix агента:

  • За активног агента: TLSConnect=cert
  • За пасивног агента: TLSAccept=cert

Да бисте побољшали безбедност агента, можете да подесите параметре TLSServerCertIssuer и TLSServerCertSubject. За више информација погледајте Ограничавање дозвољеног издаваоца и субјекта сертификата.

TLS параметри у коначној конфигурационој датотеци агента могу изгледати на следећи начин. Имајте на уму да пример претпоставља да је домаћин надгледан од стране проксија, па је стога наведен као предмет сертификата:

TLSConnect=cert
       TLSAccept=cert
       TLSCAFile=/home/zabbix/zabbix_ca_file
       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
       TLSCertFile=/home/zabbix/zabbix_agentd.crt
       TLSKeyFile=/home/zabbix/zabbix_agentd.key

3. Конфигуришите шифровање у Zabbix кориснички интерфејс за домаћина који надгледа овај агент.

  • Идите на: Прикупљање података → Домаћини.
  • Изаберите домаћина и кликните на картицу Шифровање.

У примеру испод, поља Издавач и Субјекат су попуњена. За више информација о томе зашто и како да користите ова поља, погледајте Ограничавање дозвољеног издаваоца сертификата и предмета.

Zabbix веб сервис

1. Припремите датотеке са CA сертификатима највишег нивоа, ланцем сертификата/сертификата Заббик веб услуге и приватним кључем као што је описано у одељку Zabbix сервер. Затим уредите параметре TLSCAFile, TLSCertFile и TLSKeyFile у датотеци конфигурације Zabbix веб услуге у складу са тим.

2. Уредите додатни TLS параметар у Zabbix конфигурационој датотеци веб услуге: TLSAccept=cert

TLS параметри у коначној конфигурационој датотеци веб услуге могу изгледати овако:

TLSAccept=cert
       TLSCAFile=/home/zabbix/zabbix_ca_file
       TLSCertFile=/home/zabbix/zabbix_web_service.crt
       TLSKeyFile=/home/zabbix/zabbix_web_service.key

3. Конфигуришите Zabbix сервер да се повеже на TLS-конфигурисану Zabbix веб услугу тако што ћете уредити параметар WebServiceURL у конфигурационој датотеци Zabbix сервера:

WebServiceURL=https://example.com

Ограничавање дозвољеног издаваоца сертификата и субјекта

Када две Zabbix компоненте (на пример, сервер и агент) успоставе TLS везу, оне међусобно потврђују валидност сертификата. Ако је равноправни сертификат потписан од поузданог CA (са унапред конфигурисаним сертификатом највишег нивоа у TLSCAFile), важећи, није истекао и прође друге провере, онда комуникација између компоненти може да се настави. У овом најједноставнијем случају, издавалац сертификата и субјект нису верификовани.

Међутим, ово представља ризик: свако са важећим сертификатом може да се лажно представља за било кога другог (на пример, сертификат домаћина може да се користи за лажно представљање сервера). Иако ово може бити прихватљиво у малим окружењима где сертификате потписује наменски интерни CA и ризик од лажног представљања је низак, можда неће бити довољно у већим или безбедносно осетљивијим окружењима.

Ако ваш CA највишег нивоа издаје сертификате које Zabbix не би требало да прихвати или ако желите да смањите ризик од лажног представљања, можете ограничити дозвољене сертификате тако што ћете навести њиховог издаваоца и предмет.

На пример, у конфигурационој датотеци Zabbix проксија, можете да наведете:

TLSServerCertIssuer=CN=Signing CA,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com
       TLSServerCertSubject=CN=Zabbix server,OU=Development group,O=Zabbix SIA,DC=zabbix,DC=com

Са овим подешавањима, активни прокси неће комуницирати са Zabbix сервером чији сертификат има другог издаваоца или тему. Слично томе, пасивни прокси неће прихватити захтеве са таквог сервера.

Правила за подударање стрингова Издавач и Субјекат

Правила за подударање стрингова Издавач и Субјекат су следећа:

  • Стрингови Издавач и Субјекат се проверавају независно. Оба су опциона.
  • Неодређени низ значи да је било који стринг прихваћен.
  • Низови се упоређују као што јесу и морају се тачно подударати.
  • UTF-8 знакови су подржани. Међутим, џокер (*) или регуларни изрази нису подржани. – Имплементирани су следећи RFC 4514 захтеви – знакови који захтевају излаз (са '\' обрнутом косом цртом, U+005C):
    • било где у низу: '"' (U+0022), '+' (U+002B), ',' (U+002C), ';' (U+003B), '<' (U+003C), '>' (U+003E), '\\' (U+005C);
    • на почетку низа: размак (' ', U+0020) или знак броја ('#', U+0023);
    • на крају низа: размак (' ', U+0020).
  • Null знакови (U+0000) нису подржани. Ако се наиђе на нул карактер, подударање неће успети.
  • Стандарди RFC 4517 и RFC 4518 нису подржани.

На пример, ако стрингови организације Издавач и Субјекат (О) садрже размаке на крају, а стринг организационе јединице Субјекат (OU) садржи двоструке наводнике, ови знакови морају бити избачени:

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 следи препоруке RFC 4514, који специфицира "обрнути" редослед за ова поља, почевши од поља најнижег нивоа (CN), настављајући до поља средњег нивоа (OU, O), и закључно са пољима највишег нивоа (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

Насупрот томе, OpenSSL подразумевано приказује стрингове Издавач и Субјекат у редоследу од највишег до нижег нивоа. У следећем примеру, поља Издавач и Субјекат почињу пољем највишег нивоа (DC) и завршавају се пољем нижег нивоа (CN). Форматирање са размацима и сепараторима поља такође варира у зависности од опција које се користе и стога неће одговарати формату који захтева 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

Да бисте правилно форматирали низове Издавач и Субјекат за Zabbix, позовите OpenSSL са следећим опцијама:

$ 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

Излаз ће тада бити у обрнутом редоследу, раздвојен зарезима и употребљив у Zabbix конфигурационим датотекама и корисничком интерфејсу:

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

Ограничења у коришћењу екстензија сертификата X.509 v3

Приликом имплементације X.509 v3 сертификата унутар Zabbix-а, одређена проширења можда неће бити у потпуности подржана или могу довести до недоследног понашања.

Проширење алтернативног имена субјекта

Zabbix не подржава екстензију Алтернативно име субјекта, која се користи за навођење алтернативних DNS имена као што су IP адресе или адресе е-поште. Zabbix може само да потврди вредност у пољу Субјекат сертификата (погледајте Ограничавање дозвољеног издаваоца и предмета сертификата). Ако сертификати укључују поље subjectAltName, исход валидације сертификата може да варира у зависности од специфичних крипто алата који се користе за компајлирање Zabbix компоненти. Као резултат тога, Zabbix може или прихватити или одбити сертификате на основу ових комбинација.

Проширено проширење за коришћење кључа

Zabbix подржава проширење Проширено коришћење кључа. Међутим, ако се користи, генерално је потребно да се специфицирају атрибути clientAuth (за TLS WWW аутентификацију клијента) и serverAuth (за TLS WWW аутентификацију сервера). на пример:

  • Код пасивних провера, где Zabbix агент ради као TLS сервер, атрибут serverAuth мора бити укључен у сертификат агента.
  • За активне провере, где агент ради као TLS клијент, атрибут clientAuth мора бити укључен у сертификат агента.

Иако GnuTLS може издати упозорење за кршење употребе кључних речи, он обично дозвољава да се комуникација настави упркос овим упозорењима.

Додатак ограничења имена

Подршка за екстензију Ограничења имена разликује се од крипто алата. Уверите се да одабрани комплет алата подржава ово проширење. Ово проширење може да ограничи Zabbix у учитавању CA сертификата ако је овај одељак означен као критичан, у зависности од специфичног алата који се користи.

Листе опозива сертификата (CRL)

Ако је сертификат компромитован, ауторитет за издавање сертификата (CA) може да га опозове укључивањем сертификата у листу опозива сертификата (CRL). CRLs-овима се управља преко конфигурационих датотека и могу се навести коришћењем параметра TLSCRLFile у конфигурационим датотекама сервера, проксија и агента. на пример:

TLSCRLFile=/home/zabbix/zabbix_crl_file.crt

У овом случају, zabbix_crl_file.crt може да садржи CRLs-ове из више CA и може изгледати овако:

-----BEGIN X509 CRL-----
       MIIB/DCB5QIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixkARkWA2Nv
       ...
       treZeUPjb7LSmZ3K2hpbZN7SoOZcAoHQ3GWd9npuctg=
       -----END X509 CRL-----
       -----BEGIN X509 CRL-----
       MIIB+TCB4gIBATANBgkqhkiG9w0BAQUFADB/MRMwEQYKCZImiZPyLGQBGRYDY29t
       ...
       CAEebS2CND3ShBedZ8YSil59O6JvaDP61lR5lNs=
       -----END X509 CRL-----

CRL датотека се учитава само када се Zabbix покрене. Да бисте ажурирали CRL, поново покрените Zabbix.

Ако су Zabbix компоненте компајлиране са OpenSSL-ом и користе се CRLs-ови, уверите се да сваки CA највишег и средњег нивоа у ланцима сертификата има одговарајући CRL (чак и ако је празан) укључен у TLSCRLFile.