סעיף זה מכיל שיטות עבודה מומלצות שיש להקפיד על כך הגדר את Zabbix בצורה מאובטחת.
השיטות המופיעות כאן אינן נדרשות לתפקוד של זאביקס. הם מומלצים לאבטחה טובה יותר של המערכת.
יש להשתמש בעקרון המינימום הזכות בכל עת עבור Zabbix. עיקרון זה אומר שחשבונות משתמש (בחזית Zabbix) או מעבדים למשתמש (עבור שרת/פרוקסי של Zabbix או לסוכן) יש רק את ההרשאות האלה חיוניים לביצוע הפונקציות המיועדות. במילים אחרות, משתמש חשבונות צריכים לפעול בכל עת עם כמה שפחות הרשאות.
::: שימו לב חשוב מתן הרשאות נוספות למשתמש 'zabbix' יהיה לאפשר לו לגשת לקבצי תצורה ולבצע פעולות שיכולות לסכן את האבטחה הכוללת של התשתית. :::
בעת יישום עיקרון ההרשאות הפחותות עבור חשבונות משתמש, Zabbix משתמש חזיתי סוגים יש לקחת בחשבון. חשוב להבין כי בעוד משתמש "אדמין". לסוג יש פחות הרשאות מאשר לסוג המשתמש "סופר אדמין", יש לו הרשאות ניהול המאפשרות ניהול תצורה וביצוע סקריפטים מותאמים אישית.
חלק מהמידע זמין גם עבור משתמשים שאינם מורשים. לדוגמה, בעוד ניהול → סקריפטים אינו זמין עבור שאינם מנהלי על, סקריפטים עצמם זמינים לאחזור על ידי באמצעות Zabbix API. הגבלת הרשאות סקריפט ואי הוספת רגישים יש להשתמש במידע (כמו אישורי גישה וכו') כדי להימנע חשיפה של מידע רגיש זמין בעולם תסריטים.
בתצורת ברירת המחדל, מעבד Zabbix ושרת Zabbix וסוכן Zabbix שתף משתמש 'zabbix' אחד. אם אתה רוצה לוודא שהסוכן לא יכול גישה לפרטים רגישים בתצורת השרת (למשל התחברות למסד נתונים מידע), יש להפעיל את הסוכן כמשתמש אחר:
סוכן Zabbix Windows הקומפילד עם OpenSSL ינסה להגיע ל-SSL קובץ תצורה ב-c:\openssl-64bit. ספריית "openssl-64bit". בדיסק C: ניתן ליצור על ידי משתמשים שאינם מורשים.
אז להקשחת אבטחה, יש צורך ליצור את הספרייה הזו באופן ידני ולבטל גישת כתיבה ממשתמשים שאינם מנהלי מערכת.
שים לב ששמות הספריות יהיו שונים ב-32 סיביות ו גרסאות 64 סיביות של Windows.
ב-RHEL, התקן את חבילת mod_ssl:
צור ספרייה עבור מפתחות SSL:
צור אישור 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 כדי להחיל את השינויים:
הוסף מארח וירטואלי לתצורת Apache והגדר הפניה קבועה עבור שורש מסמך לכתובת Zabbix SSL. אל תשכח להחליף example.com עם השם האמיתי של השרת.
/etc/httpd/conf/httpd.conf
#הוסף שורות
<VirtualHost *:*>
ServerName example.com
הפניה קבועה / https://example.com
</VirtualHost>
הפעל מחדש את שירות Apache כדי להחיל את השינויים:
כדי להגן על החזית של Zabbix מפני התקפות שדרוג לאחור של פרוטוקול, אנחנו ממליץ לאפשר HSTS מדיניות בשרת האינטרנט.
לדוגמה, כדי להפעיל את מדיניות HSTS עבור חזית ה-Zabix שלך ב-Apache תְצוּרָה:
הוסף את ההנחיה הבאה לתצורת המארח הווירטואלי שלך:
הפעל מחדש את שירות Apache כדי להחיל את השינויים:
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/Ubuntu2. 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
מומלץ להשבית את כל החתימות של שרת האינטרנט כחלק מה- תהליך הקשחת שרת האינטרנט. שרת האינטרנט חושף תוכנה חתימה כברירת מחדל:
ניתן להשבית את החתימה על ידי הוספת שתי שורות לאפצ'י (בשימוש כ דוגמה) קובץ תצורה:
ניתן להשבית את חתימת PHP (כותרת X-Powered-By HTTP) על ידי שינוי ה- קובץ התצורה php.ini (החתימה מושבתת כברירת מחדל):
נדרשת הפעלה מחדש של שרת האינטרנט כדי שיהיו שינויים בקובץ התצורה מיושם.
ניתן להשיג רמת אבטחה נוספת על ידי שימוש ב-mod_security (חבילה libapache2-mod-security2) עם Apache. mod_security מאפשר להסיר את חתימת השרת במקום להסיר רק את הגרסה מהשרת חֲתִימָה. ניתן לשנות את החתימה לכל ערך על ידי שינוי "SecServerSignature" לכל ערך רצוי לאחר ההתקנה mod_security.
אנא עיין בתיעוד של שרת האינטרנט שלך כדי למצוא עזרה כיצד לעשות זאת להסיר/לשנות חתימות תוכנה.
מומלץ להשבית את דפי השגיאה המוגדרים כברירת מחדל כדי להימנע ממידע חשיפה. שרת האינטרנט משתמש בדפי שגיאה מובנים כברירת מחדל:
יש להחליף/להסיר את דפי השגיאה המוגדרים כברירת מחדל כחלק משרת האינטרנט תהליך התקשות. ניתן להשתמש בהנחיית "ErrorDocument" כדי להגדיר את א דף שגיאה מותאם אישית/טקסט עבור שרת האינטרנט של Apache (משמש כדוגמה).
אנא עיין בתיעוד של שרת האינטרנט שלך כדי למצוא עזרה כיצד לעשות זאת החלף/הסר דפי שגיאה המוגדרים כברירת מחדל.
מומלץ להסיר את דף הבדיקה של שרת האינטרנט כדי להימנע חשיפת מידע. כברירת מחדל, webroot של שרת האינטרנט מכיל בדיקה דף בשם index.html (Apache2 באובונטו משמש כדוגמה):
יש להסיר את דף הבדיקה או לא להיות זמין במסגרת תהליך התקשות שרת האינטרנט.
כברירת מחדל, 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 ניתן להגביל את הגישה לקובץ על ידי שימוש ב'מיקום' הוֹרָאָה:
ב-Apache - באמצעות קובץ .htacess
:
UTF-8 הוא הקידוד היחיד שנתמך על ידי Zabbix. ידוע שזה עובד ללא כל ליקוי אבטחה. משתמשים צריכים להיות מודעים לכך שיש ידועים בעיות אבטחה אם משתמשים בחלק מהקידודים האחרים.
בעת שימוש במתקינים של Windows, מומלץ להשתמש בנתיבי ברירת מחדל שסופק על ידי המתקין, שכן שימוש בנתיבים מותאמים אישית ללא הרשאות מתאימות עלול לסכן את אבטחת ההתקנה.