Zabbix יכולה להשתמש בתעודות RSA בפורמט PEM, חתומות על ידי ציבור או רשות אישורים פנימית (CA). אימות התעודה נעשה כנגד אישור CA מוגדר מראש. אופציונלי תעודה ניתן להשתמש ברשימות ביטול (CRL). לכל רכיב Zabbix יכול להיות רק אישור אחד מוגדר.
למידע נוסף כיצד להגדיר ולהפעיל CA פנימי, כיצד ליצור בקשות אישורים ולחתום עליהן, כיצד לבטל אישורים אתה יכול למצוא מספר הנחיות מקוונות, למשל, מדריך OpenSSL PKI v1.1 .
שקול ובדוק היטב את הרחבות התעודה שלך - ראה הגבלות על שימוש באישור X.509 v3 הרחבות.
פרמטר | חובה | תיאור |
---|---|---|
TLSCAFile | yes | שם הנתיב המלא של קובץ המכיל את אישורי ה-CA(ות) ברמה העליונה לאימות אישור עמיתים. במקרה של שרשרת אישורים עם מספר חברים יש להזמין אותם: תעודות CA ברמה נמוכה יותר תחילה ואחריו אישורים של CA(s) ברמה גבוהה יותר. ניתן לכלול אישורים ממספר CA(s) בקובץ בודד. |
TLSCRLFile | no | שם נתיב מלא של קובץ המכיל רשימות שלילת אישורים. ראה הערות ב-רשימות שלילת אישורים (CRL). |
TLSCertFile | yes | שם הנתיב המלא של קובץ המכיל אישור (שרשרת אישורים). במקרה של שרשרת אישורים עם מספר חברים יש להזמין אותם: תחילה תעודת שרת, proxy או סוכן, ולאחר מכן אישורי CA ברמה נמוכה יותר לאחר מכן תעודות של CA(ים) ברמה גבוהה יותר. |
TLSKeyFile | yes | שם הנתיב המלא של קובץ המכיל מפתח פרטי. הגדר זכויות גישה לקובץ זה - עליו להיות קריא רק למשתמש Zabbix. |
TLSServerCertIssuer | לא | מנפיק אישור שרת מותר. |
TLSServerCertSubject | לא | נושא אישור שרת מותר. |
After setting up the necessary certificates, configure Zabbix components to use certificate-based encryption.
Below are detailed steps for configuring:
פרמטר | חובה | תיאור |
---|---|---|
TLSCAFile | yes | שם הנתיב המלא של קובץ המכיל את אישורי ה-CA(ות) ברמה העליונה לאימות אישור עמיתים. במקרה של שרשרת אישורים עם מספר חברים יש להזמין אותם: תעודות CA ברמה נמוכה יותר תחילה ואחריו אישורים של CA(s) ברמה גבוהה יותר. ניתן לכלול אישורים ממספר CA(s) בקובץ בודד. |
TLSCRLFile | no | שם נתיב מלא של קובץ המכיל רשימות שלילת אישורים. ראה הערות ב-רשימות שלילת אישורים (CRL). |
TLSCertFile | yes | שם הנתיב המלא של קובץ המכיל אישור (שרשרת אישורים). במקרה של שרשרת אישורים עם מספר חברים יש להזמין אותם: תחילה תעודת שרת, proxy או סוכן, ולאחר מכן אישורי CA ברמה נמוכה יותר לאחר מכן תעודות של CA(ים) ברמה גבוהה יותר. |
TLSKeyFile | yes | שם הנתיב המלא של קובץ המכיל מפתח פרטי. הגדר זכויות גישה לקובץ זה - עליו להיות קריא רק למשתמש Zabbix. |
TLSServerCertIssuer | לא | מנפיק אישור שרת מותר. |
TLSServerCertSubject | לא | נושא אישור שרת מותר. |
1. הכן קבצים עם אישורי CA ברמה העליונה, אישור פרוקסי (שרשרת) ומפתח פרטי כמתואר ב-הגדרת אישור מופעל זאביקס שרת. ערוך פרמטרים TLSCAFile
, TLSCertFile
, TLSKeyFile
ב-proxy תצורה בהתאם.
2. עבור פרוקסי פעיל ערוך פרמטר 'TLSConnekt':
עבור פרוקסי פסיבי ערוך פרמטר 'TLSAccept':
3. כעת יש לך תצורת proxy מינימלית מבוססת תעודות. אתה עשוי להעדיף לשפר את אבטחת ה-proxy על ידי הגדרת 'TLSServerCertIssuer' ופרמטרים TLSServerCertSubject
(ראה הגבלה מותרת מנפיק תעודה ו נושא).
4. בקובץ תצורת ה-proxy הסופי פרמטרי TLS עשויים להיראות כך:
TLSConnect=cert
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSServerCertIssuer=CN=חתימה CA,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=שרת Zabbix,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
TLSCertFile=/home/zabbix/zabbix_proxy.crt
TLSKeyFile=/home/zabbix/zabbix_proxy.key
5. הגדר הצפנה עבור פרוקסי זה בחזית Zabbix:
בדוגמאות להלן ממלאים שדות המנפיק והנושא - ראה הגבלת אישור מותר מנפיק ו נושא מדוע וכיצד להשתמש בשדות אלו.
עבור פרוקסי פעיל
עבור פרוקסי פסיבי
1. הכן קבצים עם תעודות CA ברמה העליונה, תעודת סוכן (שרשרת) ומפתח פרטי כמתואר ב-הגדרת אישור מופעל זאביקס שרת. ערוך פרמטרים TLSCAFile
, TLSCertFile
, TLSKeyFile
בסוכן תצורה בהתאם.
2. עבור בדיקות פעילות ערוך את הפרמטר 'TLSConnekt':
עבור בדיקות פסיביות ערוך פרמטר TLSAccept
:
3. כעת יש לך תצורת סוכן מינימלית מבוססת תעודות. אתה עשוי להעדיף לשפר את אבטחת הסוכן על ידי הגדרת 'TLSServerCertIssuer' ופרמטרים TLSServerCertSubject
. (ראה הגבלה מותרת מנפיק תעודה ו נושא).
4. בקובץ התצורה הסופי של הסוכן הפרמטרים של TLS עשויים להיראות כך:
TLSConnect=cert
TLSAccept=cert
TLSCAFile=/home/zabbix/zabbix_ca_file
TLSServerCertIssuer=CN=חתימה CA,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Proxy Zabbix,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
TLSCertFile=/home/zabbix/zabbix_agentd.crt
TLSKeyFile=/home/zabbix/zabbix_agentd.key
(הדוגמה מניחה שהמארח מנוטר באמצעות פרוקסי, ומכאן פרוקסי נושא התעודה.)
5. הגדר הצפנה עבור סוכן זה בחזית Zabbix:
בדוגמה למטה ממולאים שדות המנפיק והנושא - ראה הגבלת אישור מותר מנפיק ו נושא מדוע וכיצד להשתמש בשדות אלו.
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:
כאשר שני רכיבי Zabbix (למשל שרת וסוכן) מקימים TLS חיבור שניהם בודקים אחד את השני אישורים. אם עמית האישור חתום על ידי CA מהימן (עם תצורה ברמה העליונה מוגדרת מראש אישור ב-'TLSCAFile'), תקף, לא פג תוקף ועובר חלק בדיקות אחרות ואז התקשורת יכולה להמשיך. מנפיק תעודה ו הנושא לא נבדק במקרה הפשוט ביותר הזה.
כאן יש סיכון - כל מי שיש לו תעודה תקפה יכול להתחזות כל אחד אחר (למשל, ניתן להשתמש באישור מארח כדי להתחזות שרת). זה עשוי להיות מקובל בסביבות קטנות שבהן תעודות חתומים על ידי CA ייעודי פנימי והסיכון להתחזות נמוך.
אם CA ברמה העליונה שלך משמש להנפקת אישורים אחרים, מה צריך לא יתקבל על ידי Zabbix או שאתה רוצה להפחית את הסיכון להתחזות אתה יכול להגביל אישורים מותרים על ידי ציון המנפיק שלהם ו מחרוזות נושא.
לדוגמה, אתה יכול לכתוב בקובץ תצורת ה-Proxy של Zabbix:
TLSServerCertIssuer=CN=חתימה CA,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=שרת Zabbix,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
עם הגדרות אלה, פרוקסי פעיל לא ידבר עם שרת Zabbix מחרוזת מנפיק או נושא שונה בתעודה, פרוקסי פסיבי יעשה זאת לא לקבל בקשות משרת כזה.
כמה הערות לגבי התאמת מחרוזת מנפיק או נושא:
סדר השדות במחרוזות המנפיק והנושא והעיצוב הם חָשׁוּב! Zabbix עוקב אחר RFC 4514 המלצה ומשתמש בסדר "הפוך" של שדות.
ניתן להמחיש את הסדר ההפוך בדוגמה:
TLSServerCertIssuer=CN=חתימה CA,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
TLSServerCertSubject=CN=Proxy Zabbix,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
שימו לב שהוא מתחיל ברמה נמוכה (CN), ממשיך לרמה בינונית (OU, O) ומסתיים בשדות ברמה העליונה (DC).
OpenSSL כברירת מחדל מציגה את השדות של מנפיק האישור והנושא סדר "רגיל", בהתאם לאפשרויות נוספות שנעשה בהן שימוש:
$ openssl x509 -noout -in /home/zabbix/zabbix_proxy.crt -issuer -subject
issuer= /DC=com/DC=zabbix/O=Zabbix SIA/OU=קבוצת פיתוח/CN=חותמת CA
subject= /DC=com/DC=zabbix/O=Zabbix SIA/OU=קבוצת פיתוח/CN=Proxy של Zabbix
$ openssl x509 -noout -text -in /home/zabbix/zabbix_proxy.crt
תְעוּדָה:
...
מנפיק: DC=com, DC=zabbix, O=Zabbix SIA, OU=קבוצת פיתוח, CN=Signing CA
...
נושא: DC=com, DC=zabbix, O=Zabbix SIA, OU=קבוצת פיתוח, CN=Proxy Zabbix
כאן מחרוזות המנפיק והנושא מתחילות ברמה העליונה (DC) ומסתיימות ב שדה ברמה נמוכה (CN), רווחים ומפרידי שדות תלויים באפשרויות בשימוש. אף אחד מהערכים הללו לא יתאים במנפיק ובנושא של Zabbix שדות!
::: שימו לב חשוב כדי להפוך את המחרוזות הנכונות של המנפיק והנושא לשימוש ב-Zabbix הפעל את OpenSSL עם אפשרויות מיוחדות
-nameopt esc_2253,esc_ctrl,utf8,dump_nostr,dump_unknown,dump_der,sep_comma_plus,dn_rev,sname
:
:::
$ openssl x509 -noout -מוציא -נושא \
-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=חתימה CA,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
נושא= CN=Proxy Zabbix,OU=קבוצת פיתוח,O=Zabbix SIA,DC=zabbix,DC=com
כעת שדות המחרוזת נמצאים בסדר הפוך, השדות מופרדים בפסיקים, יכול לשמש בקבצי התצורה של 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
אם אישור נפרץ, CA יכולה לבטל אותו על ידי הכללה ב-CRL. ניתן להגדיר CRL בקובץ תצורה של שרת, פרוקסי וסוכן באמצעות הפרמטר TLSCRLFile
. לדוגמה:
כאשר zabbix_crl_file
עשוי להכיל CRL ממספר CAs ולהיראות כך:
-----BEGIN X509 CRL-----
MIIB/DCB5QIBATANBgkqhkiG9w0BAQUFADCBgTETMBEGCgmSJomT8ixkARkWA2Nv
...
treZeUPjb7LSmZ3K2hpbZN7SoOZcAoHQ3GWd9npuctg=
-----END X509 CRL-----
-----BEGIN X509 CRL-----
MIIB+TCB4gIBATANBgkqhkiG9w0BAQUFADB/MRMwEQYKCZImiZPyLGQBGRYDY29t
...
CAEebS2CND3ShBedZ8YSil59O6JvaDP61lR5lNs=
-----END X509 CRL-----
קובץ CRL נטען רק בהתחלה של Zabbix. עדכון CRL דורש הפעלה מחדש.
::: שימו לב חשוב אם רכיב Zabbix מורכב עם OpenSSL ו-CRL משמשים לאחר מכן כל CA ברמה העליונה והבינונית באישור לרשתות חייב להיות CRL תואם (הוא יכול להיות ריק) ב-'TLSCRLFile'.
:::