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 компоненте да користе шифровање засновано на сертификатима.
Испод су детаљни кораци за конфигурисање:
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
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 корисничком интерфејсу:
У примерима испод, поља Издавач и Субјекат су попуњена. За више информација о томе зашто и како да користите ова поља, погледајте Ограничавање дозвољеног издаваоца сертификата и предмета.
За активни прокси:
За пасивни прокси:
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 кориснички интерфејс за домаћина који надгледа овај агент.
У примеру испод, поља Издавач и Субјекат су попуњена. За више информација о томе зашто и како да користите ова поља, погледајте Ограничавање дозвољеног издаваоца сертификата и предмета.
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 сервера:
Када две 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 сервером чији сертификат има другог издаваоца или тему. Слично томе, пасивни прокси неће прихватити захтеве са таквог сервера.
Издавач
и Субјекат
Правила за подударање стрингова Издавач
и Субјекат
су следећа:
Издавач
и Субјекат
се проверавају независно. Оба су опциона.*
) или регуларни изрази нису подржани. – Имплементирани су следећи RFC 4514 захтеви – знакови који захтевају излаз (са '\
' обрнутом косом цртом, U+005C):
"
' (U+0022), '+
' (U+002B), ',
' (U+002C), ';
' (U+003B), '<
' (U+003C), '>
' (U+003E), '\\
' (U+005C);#
', U+0023);На пример, ако стрингови организације Издавач
и Субјекат
(О
) садрже размаке на крају, а стринг организационе јединице Субјекат
(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 сертификата унутар Zabbix-а, одређена проширења можда неће бити у потпуности подржана или могу довести до недоследног понашања.
Проширење алтернативног имена субјекта
Zabbix не подржава екстензију Алтернативно име субјекта, која се користи за навођење алтернативних DNS имена као што су IP адресе или адресе е-поште. Zabbix може само да потврди вредност у пољу Субјекат сертификата (погледајте Ограничавање дозвољеног издаваоца и предмета сертификата). Ако сертификати укључују поље subjectAltName
, исход валидације сертификата може да варира у зависности од специфичних крипто алата који се користе за компајлирање Zabbix компоненти. Као резултат тога, Zabbix може или прихватити или одбити сертификате на основу ових комбинација.
Проширено проширење за коришћење кључа
Zabbix подржава проширење Проширено коришћење кључа. Међутим, ако се користи, генерално је потребно да се специфицирају атрибути clientAuth (за TLS WWW аутентификацију клијента) и serverAuth (за TLS WWW аутентификацију сервера). на пример:
Иако GnuTLS може издати упозорење за кршење употребе кључних речи, он обично дозвољава да се комуникација настави упркос овим упозорењима.
Додатак ограничења имена
Подршка за екстензију Ограничења имена разликује се од крипто алата. Уверите се да одабрани комплет алата подржава ово проширење. Ово проширење може да ограничи Zabbix у учитавању CA сертификата ако је овај одељак означен као критичан, у зависности од специфичног алата који се користи.
Ако је сертификат компромитован, ауторитет за издавање сертификата (CA) може да га опозове укључивањем сертификата у листу опозива сертификата (CRL). CRLs-овима се управља преко конфигурационих датотека и могу се навести коришћењем параметра TLSCRLFile
у конфигурационим датотекама сервера, проксија и агента. на пример:
У овом случају, 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
.