This is a translation of the original English documentation page. Help us make it better.

1 שימוש בתעודות

סקירה כללית

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 לא נושא אישור שרת מותר.

Configuration examples

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 לא נושא אישור שרת מותר.

הגדרת הצפנה מבוססת תעודות עבור פרוקסי Zabbix

1. הכן קבצים עם אישורי CA ברמה העליונה, אישור פרוקסי (שרשרת) ומפתח פרטי כמתואר ב-הגדרת אישור מופעל זאביקס שרת. ערוך פרמטרים TLSCAFile, TLSCertFile, TLSKeyFile ב-proxy תצורה בהתאם.

2. עבור פרוקסי פעיל ערוך פרמטר 'TLSConnekt':

 TLSConnect=cert

עבור פרוקסי פסיבי ערוך פרמטר 'TLSAccept':

 TLSAccept=cert

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:

  • עבור אל: ניהול ← פרוקסי
  • בחר פרוקסי ולחץ על הכרטיסייה הצפנה

בדוגמאות להלן ממלאים שדות המנפיק והנושא - ראה הגבלת אישור מותר מנפיק ו נושא מדוע וכיצד להשתמש בשדות אלו.

עבור פרוקסי פעיל

proxy_active_cert.png

עבור פרוקסי פסיבי

proxy_passive_cert.png

הגדרת הצפנה מבוססת תעודות עבור סוכן Zabbix

1. הכן קבצים עם תעודות CA ברמה העליונה, תעודת סוכן (שרשרת) ומפתח פרטי כמתואר ב-הגדרת אישור מופעל זאביקס שרת. ערוך פרמטרים TLSCAFile, TLSCertFile, TLSKeyFile בסוכן תצורה בהתאם.

2. עבור בדיקות פעילות ערוך את הפרמטר 'TLSConnekt':

 TLSConnect=cert

עבור בדיקות פסיביות ערוך פרמטר TLSAccept:

 TLSAccept=cert

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:

  • עבור אל: תצורה → מארחים
  • בחר מארח ולחץ על הכרטיסייה הצפנה

בדוגמה למטה ממולאים שדות המנפיק והנושא - ראה הגבלת אישור מותר מנפיק ו נושא מדוע וכיצד להשתמש בשדות אלו.

agent_config.png

Zabbix web service

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:

WebServiceURL=https://example.com

הגבלת מנפיק ותעודה מותר

כאשר שני רכיבי 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 מחרוזת מנפיק או נושא שונה בתעודה, פרוקסי פסיבי יעשה זאת לא לקבל בקשות משרת כזה.

כמה הערות לגבי התאמת מחרוזת מנפיק או נושא:

  1. מחרוזות המנפיק והנושא נבדקות באופן עצמאי. שניהם אופציונאלי.
  2. תווים UTF-8 מותרים.
  3. מחרוזת לא מוגדרת פירושה שכל מחרוזת מתקבלת.
  4. מחרוזות מושווים "כפי שהם", הם חייבים להיות זהים לחלוטין התאמה.
  5. תווים כלליים וביטויים רגועים אינם נתמכים בהתאמה.
  6. רק כמה דרישות מ-RFC 4514 Lightweight Directory Access פרוטוקול (LDAP): ייצוג מחרוזת של נכבדים שמות מיושמים:
    1. תווי בריחה '"' (U+0022), '+' U+002B, ',' U+002C, ';' U+003B, '<' U+003C, '>' U+003E, '\' U+005C בכל מקום ב חוּט.
    2. רווח תווים בריחה (' ' U+0020) או סימן מספר ('#' U+0023) בתחילת המחרוזת.
    3. escape space character (' ' U+0020) בסוף המחרוזת.
  7. ההתאמה נכשלת אם נתקל בתו ריק (U+0000) (RFC 4514 מאפשר זאת).
  8. דרישות של RFC 4517 Lightweight Directory Access Protocol (LDAP): תחבירים והתאמה כללים ו-RFC 4518 קל משקל פרוטוקול גישה למדריך (LDAP): מחרוזת בינלאומית הכנה אינם נתמכים עקב כמות העבודה הנדרשת.

סדר השדות במחרוזות המנפיק והנושא והעיצוב הם חָשׁוּב! 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 ובחזית הקצה.

Rules for matching Issuer and Subject strings

The rules for matching Issuer and Subject strings are as follows:

  • Issuer and Subject strings are checked independently. Both are optional.
  • An unspecified string means that any string is accepted.
  • Strings are compared as is and must match exactly.
  • UTF-8 characters are supported. However, wildcards (*) or regular expressions are not supported.
  • The following RFC 4514 requirements are implemented - characters that require escaping (with a '\' backslash, U+005C):
    • anywhere in the string: '"' (U+0022), '+' (U+002B), ',' (U+002C), ';' (U+003B), '<' (U+003C), '>' (U+003E), '\\' (U+005C);
    • at the beginning of the string: space (' ', U+0020) or number sign ('#', U+0023);
    • at the end of the string: space (' ', U+0020).
  • Null characters (U+0000) are not supported. If a null character is encountered, the matching will fail.
  • RFC 4517 and RFC 4518 standards are not supported.

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
Field order and formatting

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

מגבלות על שימוש בתוספי אישור X.509 v3

  • שם חלופי בנושא (subjectAltName) סיומת.
    שמות נושאים חלופיים מהסיומת subjectAltName (כמו IP כתובת, כתובת דואר אלקטרוני) אינם נתמכים על ידי Zabbix. רק ערך של ניתן לסמן את השדה "נושא" ב-Zabix (ראה הגבלה מותרת מנפיק תעודה ו נושא).
    אם האישור משתמש בסיומת subjectAltName אז התוצאה תלוי בשילוב מסוים של ערכות כלים קריפטו Zabbix רכיבים מורכבים עם (זה עשוי לעבוד או לא, Zabbix עשוי לסרב לקבל תעודות כאלה מעמיתים).
  • תוסף שימוש במפתח מורחב.
    אם משתמשים בו אז בדרך כלל גם clientAuth (לקוח TLS WWW אימות) ו-serverAuth (אימות שרת TLS WWW) הם נחוץ.
    לדוגמה, בבדיקות פסיביות סוכן Zabbix פועל בשרת TLS תפקיד, אז serverAuth חייב להיות מוגדר באישור הסוכן. לפעיל צריך להגדיר את אישור הסוכן בודק clientAuth.
    GnuTLS מוציא אזהרה במקרה של הפרת שימוש במפתח אך מאפשר תקשורת כדי להמשיך.
  • הרחבה של אילוצי שם.
    לא כל ערכות הכלים של קריפטו תומכות בזה. הרחבה זו עשויה למנוע Zabbix מטעינת אישורי CA שבו סעיף זה מסומן כ קריטי (תלוי בערכת כלים קריפטו מסוימת).

רשימות שלילת אישורים (CRL)

אם אישור נפרץ, CA יכולה לבטל אותו על ידי הכללה ב-CRL. ניתן להגדיר CRL בקובץ תצורה של שרת, פרוקסי וסוכן באמצעות הפרמטר TLSCRLFile. לדוגמה:

 TLSCRLFile=/home/zabbix/zabbix_crl_file

כאשר 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'.

:::