ProHoster > Blog > Pentadbiran > Anjal di bawah kunci dan kunci: mendayakan pilihan keselamatan kelompok Elasticsearch untuk akses dari dalam dan luar
Anjal di bawah kunci dan kunci: mendayakan pilihan keselamatan kelompok Elasticsearch untuk akses dari dalam dan luar
Elastic Stack ialah alat yang terkenal dalam pasaran sistem SIEM (sebenarnya, bukan sahaja mereka). Ia boleh mengumpul banyak data bersaiz berbeza, kedua-duanya sensitif dan tidak terlalu sensitif. Ia tidak betul sepenuhnya jika akses kepada elemen Elastic Stack itu sendiri tidak dilindungi. Secara lalai, semua elemen Elastik di luar kotak (Elasticsearch, Logstash, Kibana dan pengumpul Beats) dijalankan pada protokol terbuka. Dan dalam Kibana sendiri, pengesahan dilumpuhkan. Semua interaksi ini boleh dijamin dan dalam artikel ini kami akan memberitahu anda cara melakukan ini. Untuk kemudahan, kami membahagikan naratif kepada 3 blok semantik:
Model capaian data berasaskan peranan
Keselamatan data dalam kelompok Elasticsearch
Melindungi data di luar kelompok Elasticsearch
Butiran di bawah potongan.
Model capaian data berasaskan peranan
Jika anda memasang Elasticsearch dan tidak menalanya dalam apa jua cara, akses kepada semua indeks akan dibuka kepada semua orang. Nah, atau mereka yang boleh menggunakan curl. Untuk mengelakkan ini, Elasticsearch mempunyai model peranan yang tersedia bermula dengan langganan Asas (yang percuma). Secara skematik ia kelihatan seperti ini:
Apa yang ada dalam gambar
Pengguna ialah semua orang yang boleh log masuk menggunakan kelayakan mereka.
Sumber ialah indeks, dokumen, medan, pengguna dan entiti storan lain (model peranan untuk sesetengah sumber hanya tersedia dengan langganan berbayar).
Secara lalai Elasticsearch mempunyai pengguna kotak, yang mana ia dilampirkan peranan kotak. Sebaik sahaja anda mendayakan tetapan keselamatan, anda boleh mula menggunakannya dengan serta-merta.
Untuk mendayakan keselamatan dalam tetapan Elasticsearch, anda perlu menambahkannya pada fail konfigurasi (secara lalai ini adalah elasticsearch/config/elasticsearch.yml) baris baru:
xpack.security.enabled: true
Selepas menukar fail konfigurasi, lancarkan atau mulakan semula Elasticsearch untuk perubahan berkuat kuasa. Langkah seterusnya ialah memberikan kata laluan kepada pengguna kotak. Mari lakukan ini secara interaktif menggunakan arahan di bawah:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
Kami menyemak:
[elastic@node1 ~]$ curl -u elastic 'node1:9200/_cat/nodes?pretty'
Enter host password for user 'elastic':
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1
Anda boleh menepuk belakang diri sendiri - tetapan di bahagian Elasticsearch selesai. Kini tiba masanya untuk mengkonfigurasi Kibana. Jika anda menjalankannya sekarang, ralat akan muncul, jadi adalah penting untuk membuat stor kunci. Ini dilakukan dalam dua arahan (user kibana dan kata laluan yang dimasukkan pada langkah penciptaan kata laluan dalam Elasticsearch):
Jika semuanya betul, Kibana akan mula meminta log masuk dan kata laluan. Langganan Asas termasuk model peranan berdasarkan pengguna dalaman. Bermula dengan Emas, anda boleh menyambungkan sistem pengesahan luaran - LDAP, PKI, Active Directory dan sistem log masuk Tunggal.
Hak akses kepada objek di dalam Elasticsearch juga boleh dihadkan. Walau bagaimanapun, untuk melakukan perkara yang sama untuk dokumen atau medan, anda memerlukan langganan berbayar (mewah ini bermula dengan tahap Platinum). Tetapan ini tersedia dalam antara muka Kibana atau melalui API Keselamatan. Anda boleh menyemak melalui menu Alat Dev yang sudah biasa:
Apabila Elasticsearch berjalan dalam kelompok (yang biasa), tetapan keselamatan dalam kelompok menjadi penting. Untuk komunikasi selamat antara nod, Elasticsearch menggunakan protokol TLS. Untuk menyediakan interaksi selamat antara mereka, anda memerlukan sijil. Kami menjana sijil dan kunci peribadi dalam format PEM:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Selepas melaksanakan arahan di atas, dalam direktori /../elasticsearch arkib akan muncul tindanan-anjal-ca.zip. Di dalamnya anda akan menemui sijil dan kunci peribadi dengan sambungan crt ΠΈ utama masing-masing. Adalah dinasihatkan untuk meletakkannya pada sumber yang dikongsi, yang sepatutnya boleh diakses dari semua nod dalam kelompok.
Setiap nod kini memerlukan sijil dan kunci persendiriannya sendiri berdasarkan yang terdapat dalam direktori kongsi. Apabila melaksanakan arahan, anda akan diminta untuk menetapkan kata laluan. Anda boleh menambah pilihan tambahan -ip dan -dns untuk pengesahan lengkap nod yang berinteraksi.
Hasil daripada melaksanakan arahan, kami akan menerima sijil dan kunci peribadi dalam format PKCS#12, dilindungi oleh kata laluan. Yang tinggal hanyalah memindahkan fail yang dijana p12 ke direktori konfigurasi:
Terdapat satu lagi pilihan keselamatan - penapisan alamat IP (tersedia dalam langganan dari peringkat Emas). Membolehkan anda membuat senarai putih alamat IP dari mana anda dibenarkan untuk mengakses nod.
Melindungi data di luar kelompok Elasticsearch
Di luar kluster bermaksud menyambungkan alat luaran: Kibana, Logstash, Beats atau pelanggan luaran yang lain.
Untuk mengkonfigurasi sokongan untuk https (bukan http), tambah baris baharu pada elasticsearch.yml:
Selepas menambah kekunci, nod Elasticsearch sedia untuk disambungkan melalui https. Kini mereka boleh dilancarkan.
Langkah seterusnya ialah mencipta kunci untuk menyambungkan Kibana dan menambahnya pada konfigurasi. Berdasarkan sijil yang sudah ada dalam direktori kongsi, kami akan menjana sijil dalam format PEM (PKCS#12 Kibana, Logstash dan Beats belum menyokong):
Kekunci ada di sana, jadi yang tinggal hanyalah menukar konfigurasi Kibana supaya ia mula menggunakannya. Dalam fail konfigurasi kibana.yml, tukar http kepada https dan tambahkan baris dengan tetapan sambungan SSL. Tiga baris terakhir mengkonfigurasi komunikasi selamat antara penyemak imbas pengguna dan Kibana.
Oleh itu, tetapan selesai dan akses kepada data dalam kelompok Elasticsearch disulitkan.
Jika anda mempunyai soalan tentang keupayaan Elastic Stack pada langganan percuma atau berbayar, memantau tugasan atau mencipta sistem SIEM, tinggalkan permintaan kepada borang maklumbalas di laman web kami.