This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

13 הגבלת בדיקות סוכן

סקירה כללית

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

לשם כך השתמש בשילוב של שני סוכן configuration פרמטרים:

  • AllowKey=<pattern> - אילו בדיקות מותרות; <pattern> הוא צוין באמצעות ביטוי תו כללי (*).
  • DenyKey=<pattern> - אילו בדיקות נדחות; <pattern> הוא צוין באמצעות ביטוי תו כללי (*).

ציין זאת:

  • כל פריטי system.run[*] (פקודות מרחוק, סקריפטים) מושבתים על ידי ברירת מחדל, גם כאשר לא צוינו מפתחות הכחשה;
  • מאז Zabbix 5.0.2 הפרמטר EnableRemoteCommands agent הוא:
    * הוצא משימוש על ידי סוכן Zabbix
           * לא נתמך על ידי סוכן Zabbix2

לכן, כדי לאפשר פקודות מרחוק, ציין AllowKey=system.run[<command>,*] עבור כל פקודה מותרת, * מייצג מצב wait and nowait. אפשר גם לציין פרמטר AllowKey=system.run[*] כדי לאפשר את כל הפקודות עם מצבי המתנה ועכשיו. כדי לא לאפשר פקודות מרוחקות ספציפיות, הוסף פרמטרים של DenyKey עם פקודות system.run[] לפני הפרמטר AllowKey=system.run[*].

כללים חשובים

  • רשימת היתרים ללא כלל דחייה מותרת רק עבור system.run[*] פריטים. עבור כל שאר הפריטים, פרמטרים של AllowKey אינם מותרים ללא פרמטר DenyKey; במקרה זה סוכן Zabbix לא יעשה זאת התחל עם פרמטרים של AllowKey בלבד.
  • הסדר חשוב. הפרמטרים שצוינו נבדקים אחד אחד לפי סדר הופעתם בקובץ התצורה:
    • ברגע שמפתח פריט תואם כלל הרשה/דחה, הפריט כן מותר או מוכחש; ובדיקת כללים נעצרת. אז אם פריט תואם גם כלל היתר וגם כלל דחייה, התוצאה תהיה תלוי איזה כלל בא קודם.
    • הסדר משפיע גם על פרמטר EnableRemoteCommands (אם נעשה בו שימוש).
  • מספר בלתי מוגבל של פרמטרים של AllowKey/DenyKey נתמך.
  • AllowKey, כללי DenyKey אינם משפיעים על HostnameItem, HostMetadataItem, פרמטרי תצורה של HostInterfaceItem.
  • תבנית מפתח היא ביטוי כללי שבו התו הכללי (*) תו תואם לכל מספר של תווים כלשהם במיקום מסוים. זה עשוי לשמש גם בשם המפתח וגם בפרמטרים.
  • אם מפתח פריט מסוים אינו מותר בתצורת הסוכן, ה- הפריט ידווח כלא נתמך (לא ניתן רמז לגבי סיבה);
  • סוכן Zabbix עם אפשרות שורת הפקודה --print (-p) לא יוצג מפתחות שאינם מותרים לפי תצורה;
  • סוכן Zabbix עם אפשרות שורת הפקודה --test (-t) יחזור "מפתח פריט לא נתמך." סטטוס עבור מפתחות שאינם מותרים על ידי תְצוּרָה;
  • פקודות מרחוק שנדחו לא יירשמו ביומן הסוכן (אם LogRemoteCommands=1).

מקרי שימוש

דחה בדיקה ספציפית
  • רשימה שחורה של צ'ק ספציפי עם פרמטר DenyKey. מפתחות תואמים לא יאושר. כל המפתחות שאינם תואמים יורשו, למעט system.run[] פריטים.

לדוגמה:

 # שלל גישה מאובטחת לנתונים
        DenyKey=vfs.file.contents[/etc/passwd,*]

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

דחה פקודה ספציפית, אפשר לאחרים
  • רשימה שחורה של פקודה ספציפית עם פרמטר DenyKey. רשימת היתרים של כולם פקודות אחרות, עם הפרמטר AllowKey.
 # אל תאפשר פקודה ספציפית
        DenyKey=system.run[ls -l /]
        
        # אפשר סקריפטים אחרים
        AllowKey=system.run[*]
אפשר בדיקה ספציפית, שלל אחרים
  • רשימת בדיקות ספציפיות עם פרמטרים של AllowKey, דחיית אחרים DenyKey=*

לדוגמה:

 # אפשר קריאת יומנים:
        AllowKey=vfs.file.*[/var/log/*]
       
        # אפשר בדיקות בזמן מקומי
        AllowKey=system.localtime[*]
       
        # דחה את כל המפתחות האחרים
        DenyKey=*

דוגמאות לתבניות

דפוס תיאור התאמות אין התאמה
* מתאים את כל המפתחות האפשריים עם או בלי פרמטרים. כל ללא
vfs.file.contents תואם vfs.file.contents ללא פרמטרים. vfs.file.contents vfs.file.contents[/etc/passwd]
vfs.file.contents[] תואם vfs.file.contents עם פרמטרים ריקים. vfs.file.contents[] vfs.file.contents
vfs.file.contents[*] תואם vfs.file.contents עם כל פרמטר; לא יתאים ל-vfs.file.contents ללא סוגריים מרובעים. vfs.file.contents[]
vfs.file.contents[/path/to/file]
vfs.file.contents
vfs.file.contents[/etc/passwd,*] תואם vfs.file.contents עם הפרמטרים הראשונים התואמים /etc/passwd ולכל שאר הפרמטרים שיש להם ערך כלשהו (גם ריק). vfs .file.contents[/etc/passwd,]
vfs.file.contents[/etc/passwd,utf8]
vfs.file.contents[/etc/passwd]
vfs. file.contents[/var/log/zabbix_server.log]
vfs.file.contents[]
vfs.file.contents[*passwd*] תואם vfs.file.contents עם פרמטר ראשון תואם *passwd* וללא פרמטרים אחרים. vfs.file.contents[/etc /passwd] vfs.file.contents[/etc/passwd,]
vfs.file.contents[/etc/passwd, utf8]
vfs.file.contents[*passwd*,*] תואם vfs.file.contents רק עם הפרמטר הראשון תואם *passwd* ולכל הפרמטרים הבאים יש ערך כלשהו (גם הוא ריק) . vfs.file.contents[/etc/passwd,]
vfs.file.contents[/etc/passwd, utf8]
vfs.file.contents[/etc/passwd]<br >vfs.file.contents[/tmp/test]
vfs.file.contents[/var/log/zabbix_server.log,*,abc] תואם vfs.file.contents עם הפרמטר הראשון התואם /var/log/zabbix_server.log , פרמטר שלישי התואם 'abc' וכל פרמטר שני (ריק גם כן). vfs.file.contents[/var/log/zabbix_server.log,,abc]
vfs.file.contents[/ var/log/zabbix_server.log,utf8,abc]
vfs.file.contents[/var/log/zabbix_server.log,,abc,def]
vfs.file.contents[/etc/passwd,utf8] מתאים vfs.file.contents עם פרמטר ראשון תואם /etc/passwd, פרמטר שני תואם 'utf8' וללא ארגומנטים אחרים. vfs. file.contents[/etc/passwd,utf8] vfs.file.contents[/etc/passwd,]
vfs.file.contents[/etc/passwd,utf16]
vfs.file.* מתאים כל מפתח שמתחיל ב-vfs.file. ללא פרמטרים כלשהם. vfs.file.contents
vfs.file.size
vfs.file.contents[]< br>vfs.file.size[/var/log/zabbix_server.log]
vfs.file.*[*] מתאים כל מפתח שמתחיל ב-vfs.file. עם כל פרמטר. vfs.file.size.bytes[]
vfs.file. size[/var/log/zabbix_server.log, utf8]
vfs.file.size.bytes
vfs.*.contents מתאים לכל מפתח שמתחיל ב-vfs. ומסתיים ב-.contents ללא פרמטרים כלשהם. vfs.mount.point.file.contents
vfs..contents
vfs. תוכן

system.run ו-AllowKey

סקריפט היפותטי כמו 'myscript.sh' עשוי להתבצע על מארח באמצעות סוכן Zabbix בכמה דרכים:

1. כמפתח פריט בצ'ק פסיבי או אקטיבי, לדוגמה:

  • system.run[myscript.sh]
  • system.run[myscript.sh,wait]
  • system.run[myscript.sh.nowait]

כאן המשתמש יכול להוסיף "מתין", "עכשיו" או להשמיט את הארגומנט השני לשימוש ערך ברירת המחדל שלו ב-system.run[].

2. כסקריפט גלובלי (ביוזמת המשתמש ב-frontend או API).

משתמש מגדיר את הסקריפט הזה ב-ניהולסקריפטים, סטים "הפעל על: סוכן Zabbix" ומכניס את "myscript.sh" לתסריט שדה קלט "פקודות". כאשר מופעל מ-frontend או API של Zabbix השרת שולח לסוכן:

  • system.run[myscript.sh,wait] - עד Zabbix 5.0.4
  • system.run[myscript.sh] - מאז 5.0.5

כאן המשתמש אינו שולט בפרמטרים "המתנה"/"עכשיו".

3. כפקודה מרחוק מפעולה. שרת Zabbix שולח אל סוֹכֵן:

  • system.run[myscript.sh, nowwait]

גם כאן המשתמש אינו שולט בפרמטרים "המתנה"/"עכשיו".

מה שזה אומר הוא אם נגדיר את AllowKey כמו:

 AllowKey=system.run[myscript.sh]

לאחר מכן

  • system.run[myscript.sh] - יתאפשר
  • system.run[myscript.sh,wait], system.run[myscript.sh, nowwait] לא יורשה - הסקריפט לא יופעל אם יופעל כ-a צעד פעולה

כדי לאפשר את כל הווריאציות המתוארות, תוכל להוסיף:

 AllowKey=system.run[myscript.sh,*]
        DenyKey=system.run[*]

לפרמטרים agent/agent2.