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

שיטות עבודה מומלצות להגדרת Zabbix מאובטחת

סקירה כללית

סעיף זה מכיל שיטות עבודה מומלצות שיש להקפיד על כך הגדר את Zabbix בצורה מאובטחת.

השיטות המופיעות כאן אינן נדרשות לתפקוד של זאביקס. הם מומלצים לאבטחה טובה יותר של המערכת.

בקרת גישה

עקרון המינימום הזכויות

יש להשתמש בעקרון המינימום הזכות בכל עת עבור Zabbix. עיקרון זה אומר שחשבונות משתמש (בחזית Zabbix) או מעבדים למשתמש (עבור שרת/פרוקסי של Zabbix או לסוכן) יש רק את ההרשאות האלה חיוניים לביצוע הפונקציות המיועדות. במילים אחרות, משתמש חשבונות צריכים לפעול בכל עת עם כמה שפחות הרשאות.

::: שימו לב חשוב מתן הרשאות נוספות למשתמש 'zabbix' יהיה לאפשר לו לגשת לקבצי תצורה ולבצע פעולות שיכולות לסכן את האבטחה הכוללת של התשתית. :::

בעת יישום עיקרון ההרשאות הפחותות עבור חשבונות משתמש, Zabbix משתמש חזיתי סוגים יש לקחת בחשבון. חשוב להבין כי בעוד משתמש "אדמין". לסוג יש פחות הרשאות מאשר לסוג המשתמש "סופר אדמין", יש לו הרשאות ניהול המאפשרות ניהול תצורה וביצוע סקריפטים מותאמים אישית.

חלק מהמידע זמין גם עבור משתמשים שאינם מורשים. לדוגמה, בעוד ניהולסקריפטים אינו זמין עבור שאינם מנהלי על, סקריפטים עצמם זמינים לאחזור על ידי באמצעות Zabbix API. הגבלת הרשאות סקריפט ואי הוספת רגישים יש להשתמש במידע (כמו אישורי גישה וכו') כדי להימנע חשיפה של מידע רגיש זמין בעולם תסריטים.

משתמש מאובטח לסוכן Zabbix

בתצורת ברירת המחדל, מעבד Zabbix ושרת Zabbix וסוכן Zabbix שתף משתמש 'zabbix' אחד. אם אתה רוצה לוודא שהסוכן לא יכול גישה לפרטים רגישים בתצורת השרת (למשל התחברות למסד נתונים מידע), יש להפעיל את הסוכן כמשתמש אחר:

  1. צור משתמש מאובטח
  2. ציין משתמש זה בסוכן תצורה file (פרמטר 'משתמש')
  3. הפעל מחדש את הסוכן עם הרשאות מנהל. הרשאות יהיו ירד למשתמש שצוין.

בטל גישת כתיבה לקובץ תצורת SSL ב-Windows

סוכן Zabbix Windows הקומפילד עם OpenSSL ינסה להגיע ל-SSL קובץ תצורה ב-c:\openssl-64bit. ספריית "openssl-64bit". בדיסק C: ניתן ליצור על ידי משתמשים שאינם מורשים.

אז להקשחת אבטחה, יש צורך ליצור את הספרייה הזו באופן ידני ולבטל גישת כתיבה ממשתמשים שאינם מנהלי מערכת.

שים לב ששמות הספריות יהיו שונים ב-32 סיביות ו גרסאות 64 סיביות של Windows.

קריפטוגרפיה

הגדרת SSL עבור חזית Zabbix

ב-RHEL, התקן את חבילת mod_ssl:

 dnf להתקין mod_ssl

צור ספרייה עבור מפתחות SSL:

 mkdir -p /etc/httpd/ssl/private
        chmod 700 /etc/httpd/ssl/private

צור אישור SSL:

 openssl req -x509 -צמתים -ימים 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/private/apache-selfsigned.key -out /etc/httpd/ssl/apache-selfsigned.crt

מלא את ההנחיות כראוי. השורה החשובה ביותר היא זו שמבקש את השם המשותף. אתה צריך להזין את שם הדומיין אתה רוצה להיות משויך לשרת שלך. אתה יכול להזין את ה-IP הציבורי כתובת במקום זאת אם אין לך שם דומיין. אנחנו נשתמש example.com במאמר זה.

 שם מדינה (קוד 2 אותיות) [XX]:
        שם המדינה או המחוז (שם מלא) []:
        שם יישוב (למשל, עיר) [עיר ברירת מחדל]:
        שם הארגון (למשל, חברה) [Default Company Ltd]:
        שם היחידה הארגונית (למשל, סעיף) []:
        שם משותף (למשל, השם שלך או שם המארח של השרת שלך) []:example.com
        כתובת דוא"ל []:

ערוך תצורת Apache SSL:

 /etc/httpd/conf.d/ssl.conf
       
        DocumentRoot "/usr/share/zabbix"
        ServerName example.com:443
        SSLCertificateFile /etc/httpd/ssl/apache-selfsigned.crt
        SSLCertificateKeyFile /etc/httpd/ssl/private/apache-selfsigned.key

הפעל מחדש את שירות Apache כדי להחיל את השינויים:

 systemctl הפעל מחדש את httpd.service

התקשות שרת האינטרנט

הפעלת Zabbix בספריית השורש של כתובת האתר

הוסף מארח וירטואלי לתצורת Apache והגדר הפניה קבועה עבור שורש מסמך לכתובת Zabbix SSL. אל תשכח להחליף example.com עם השם האמיתי של השרת.

 /etc/httpd/conf/httpd.conf
       
        #הוסף שורות
       
        <VirtualHost *:*>
            ServerName example.com
            הפניה קבועה / https://example.com
        </VirtualHost>

הפעל מחדש את שירות Apache כדי להחיל את השינויים:

 systemctl הפעל מחדש את httpd.service

הפעלת HTTP Strict Transport Security (HSTS) בשרת האינטרנט

כדי להגן על החזית של Zabbix מפני התקפות שדרוג לאחור של פרוטוקול, אנחנו ממליץ לאפשר HSTS מדיניות בשרת האינטרנט.

לדוגמה, כדי להפעיל את מדיניות HSTS עבור חזית ה-Zabix שלך ב-Apache תְצוּרָה:

 /etc/httpd/conf/httpd.conf

הוסף את ההנחיה הבאה לתצורת המארח הווירטואלי שלך:

 <VirtualHost *:443>
           ערכת כותרות Strict-Transport-Security "max-age=31536000"
        </VirtualHost>

הפעל מחדש את שירות Apache כדי להחיל את השינויים:

 systemctl הפעל מחדש את httpd.service

Enabling Content Security Policy (CSP) on the web server

To protect Zabbix frontend against Cross Site Scripting (XSS), data injection, and similar attacks, we recommend enabling Content Security Policy on the web server. To do so, configure the web server to return the HTTP header.

The following CSP header configuration is only for the default Zabbix frontend installation and for cases when all content originates from the site's domain (excluding subdomains). A different CSP header configuration may be required if you are, for example, configuring the URL widget to display content from the site's subdomains or external domains, switching from OpenStreetMap to another map engine, or adding external CSS or widgets.

To enable CSP for your Zabbix frontend in Apache configuration, follow these steps:

1. Locate your virtual host's configuration file:

  • /etc/httpd/conf/httpd.conf on RHEL-based systems
  • /etc/apache2/sites-available/000-default.conf on Debian/Ubuntu

2. Add the following directive to your virtual host's configuration file:

<VirtualHost *:*>
           Header set Content-Security-Policy: "default-src 'self' *.openstreetmap.org; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self'; img-src 'self' data: *.openstreetmap.org; style-src 'self' 'unsafe-inline'; base-uri 'self'; form-action 'self';"
       </VirtualHost>

3. Restart the Apache service to apply the changes:

# On RHEL-based systems:
       systemctl restart httpd.service
       
       # On Debian/Ubuntu
       systemctl restart apache2.service

השבתת חשיפת המידע של שרת האינטרנט

מומלץ להשבית את כל החתימות של שרת האינטרנט כחלק מה- תהליך הקשחת שרת האינטרנט. שרת האינטרנט חושף תוכנה חתימה כברירת מחדל:

ניתן להשבית את החתימה על ידי הוספת שתי שורות לאפצ'י (בשימוש כ דוגמה) קובץ תצורה:

 חתימת שרת כבויה
        ServerTokens Prod

ניתן להשבית את חתימת PHP (כותרת X-Powered-By HTTP) על ידי שינוי ה- קובץ התצורה php.ini (החתימה מושבתת כברירת מחדל):

 expose_php = כבוי

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

ניתן להשיג רמת אבטחה נוספת על ידי שימוש ב-mod_security (חבילה libapache2-mod-security2) עם Apache. mod_security מאפשר להסיר את חתימת השרת במקום להסיר רק את הגרסה מהשרת חֲתִימָה. ניתן לשנות את החתימה לכל ערך על ידי שינוי "SecServerSignature" לכל ערך רצוי לאחר ההתקנה mod_security.

אנא עיין בתיעוד של שרת האינטרנט שלך כדי למצוא עזרה כיצד לעשות זאת להסיר/לשנות חתימות תוכנה.

השבתת דפי שגיאה של שרת אינטרנט המוגדרים כברירת מחדל

מומלץ להשבית את דפי השגיאה המוגדרים כברירת מחדל כדי להימנע ממידע חשיפה. שרת האינטרנט משתמש בדפי שגיאה מובנים כברירת מחדל:

יש להחליף/להסיר את דפי השגיאה המוגדרים כברירת מחדל כחלק משרת האינטרנט תהליך התקשות. ניתן להשתמש בהנחיית "ErrorDocument" כדי להגדיר את א דף שגיאה מותאם אישית/טקסט עבור שרת האינטרנט של Apache (משמש כדוגמה).

אנא עיין בתיעוד של שרת האינטרנט שלך כדי למצוא עזרה כיצד לעשות זאת החלף/הסר דפי שגיאה המוגדרים כברירת מחדל.

הסרת דף הבדיקה של שרת האינטרנט

מומלץ להסיר את דף הבדיקה של שרת האינטרנט כדי להימנע חשיפת מידע. כברירת מחדל, webroot של שרת האינטרנט מכיל בדיקה דף בשם index.html (Apache2 באובונטו משמש כדוגמה):

יש להסיר את דף הבדיקה או לא להיות זמין במסגרת תהליך התקשות שרת האינטרנט.

הגדר את כותרת תגובת HTTP של X-Frame-Options

כברירת מחדל, Zabbix מוגדר עם תגובת HTTP X-Frame-Options כותרת מוגדרת ל'SAMEORIGIN', כלומר ניתן לטעון תוכן בלבד מסגרת שמקורה זהה לדף עצמו.

רכיבי חזית של Zabbix שמושכים תוכן מכתובות URL חיצוניות (כלומר, כתובת האתר יישומון לוח המחוונים) להציג תוכן שאוחזר בארגז חול עם כל ההגבלות של ארגז חול מופעל.

הגדרות אלו משפרות את האבטחה של ה-frontend של Zabbix ומספקות הגנה מפני התקפות XSS ו-clickjacking. סופר אדמינים יכולים שינוי iframe sandboxing ו-X-Frame-Options כותרת תגובת HTTP פרמטרים לפי הצורך. אנא שקלו היטב את הסיכונים והיתרונות לפני שינוי הגדרות ברירת המחדל. הפיכת ארגז חול או X-Frame-Options כבוי לחלוטין אינו מומלץ.

הסתרת הקובץ עם רשימה של סיסמאות נפוצות

כדי להגביר את המורכבות של התקפות כוח גס בסיסמה, זה כן הוצע להגביל את הגישה לקובץ ui/data/top_passwords.txt על ידי שינוי תצורת שרת האינטרנט. קובץ זה מכיל רשימה של הסיסמאות הנפוצות ביותר והספציפיות להקשר, ומשמשות למניעת משתמשים מהגדרת סיסמאות כאלה אם פרמטר הימנע מסיסמאות שקל לנחש מופעל ב-סיסמה מדיניות.

לדוגמה, ב-NGINX ניתן להגביל את הגישה לקובץ על ידי שימוש ב'מיקום' הוֹרָאָה:

 מיקום = /data/top_passwords.txt {​​​​​​​
            להכחיש הכל;
            חזרה 404;
        }​​​​​​

ב-Apache - באמצעות קובץ .htacess:

 <קבצים "top_passwords.txt">
          הזמנה אפשר, דחה
          להכחיש מכל
        </Files>

קידוד UTF-8

UTF-8 הוא הקידוד היחיד שנתמך על ידי Zabbix. ידוע שזה עובד ללא כל ליקוי אבטחה. משתמשים צריכים להיות מודעים לכך שיש ידועים בעיות אבטחה אם משתמשים בחלק מהקידודים האחרים.

נתיבים של מתקין Windows

בעת שימוש במתקינים של Windows, מומלץ להשתמש בנתיבי ברירת מחדל שסופק על ידי המתקין, שכן שימוש בנתיבים מותאמים אישית ללא הרשאות מתאימות עלול לסכן את אבטחת ההתקנה.

Zabbix Security Advisories ומסד הנתונים CVE

ראה Advisories Security and CVE של Zabbix.