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

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.