امنیت در ElasticSearch و Kibana

الستیک یک موتور جستجوی بسیار قوی و سریعه که هر چیزی رو میتونید توش بریزید و بخونیدفرض رو بر این میزارم که میدونید چیه و اگرهم نمی دونستید لینک یک مقاله که تقریبا کامل توضیح دادن رو میزارم https://virgool.io/@mkay1375/%D9%86%D8%B5%D8%A8-elasticsearch-%D9%88-kibana-%D9%86%D8%B3%D8%AE%D9%87-%DB%B7-%D8%A8%D9%87-%D8%B5%D9%88%D8%B1%D8%AA-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-e5xeqzmummlc تا قبل از نسخه 8 ، پک (x-pack) امنیتی روش فعال نبود و باید خودمون نصب میکردیم ولی تو نسخه 8 به بعد این پک به صورت پیش فرض همراه elastic نصب میشه (بعضی وقت ها تو نسخه 8 به بالا تنظیمات خودکار عمل نمیکنه و پک نصب نمیشه) که باید خودمون تنظیماتشو وارد کنیم پک امنیتی بهتون امکانات زیادی میده ولی دوتا از مهمترین هاش SSL و Login کاربر هست که لینک اجرا بر روی https فعال میشه و صفحه ورود کاربر هم بهش اضافه میشهبریم برای نصباول فایل فشرده الستیک رو دانلود کنید و یکجایی اکسترکت کنیدداخل پوشه الستیک میشیم و داخل bin میریم و cmd رو باز میکنیم و تایپ میکنیم elasticsearch و صبر میکنیم تا سرویس کامل اجرا بشه بعد داخل مرورگر localhost:9200 رو وارد میکنیماگر روی https باز شد و رمز خواست که فبها ولی اگر روی http باز شد و از اونجا که تو کیبانا ورژن 8 به بالا با ادرس https الستیک ارتباط میگیره پس باید الستیک هم روی https باز کنیم.برای اینکار باید مراحل زیر رو بریمداخل پوشه الستیک پوشه bin رو باز میکنیم و cmd رو میزنیم دستورات زیر رو وارد میکنیمelasticsearch-certutil caاین نام رو وارد میکنیم elastic-stack-ca.p12 و اینتر میزنیمدر قسمت ورود رمز میتونید رمز دلخواه را وارد کنید یا خالی بزارید و اینتر بزنیدیک فایل با همان اسم elastic-stack-ca.p12 در پوشه اصلی برنامه یعنی یک پوشه عقبتر ساخته میشهفایل رو به داخل پوشه config منتقل میکنیم بعد دوباره در خط فرمان دستور زیر را وارد میکنیمelasticsearch-certutil httpبعد به ترتیب مقابل هر سوالی که میپرسه مقادیر زیر رو وارد کنید و اینتر بزنیدGenerate a CSR? = nUse an existing CA? = yCA Path: = elastic-stack-ca.p12Password for elastic-stack-ca.p12: = میتونید رمز بدید یا خالی اینتر بزنیدFor how long should your certificate be valid? = 5yGenerate a certificate per node? [y/N] = nEnter all the hostnames .... = localhostIs this correct [Y/n] = yDo you wish to change any of these options? [y/N] = nProvide a password for the &quothttp.p12&quot file: = اینتر بزنیدWhat filename should be used for the output zip file? = اینتر بزنید یک فایل با نام elasticsearch-ssl-http.zip در پوشه اصلی ساخته میشهاکسترکتش بدید و برید داخلش، پوشه الستیک و فایل http.p12 رو در پوشه config برنامه کپی کنیدتو پوشه config فایل elasticsearch.yml رو با نوت پد باز کنید و کدهای زیر رو به آخرش اضافه کنید# Enable security featuresxpack.security.enabled: truexpack.security.enrollment.enabled: true# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agentsxpack.security.http.ssl: enabled: true keystore.path: http.p12# Connections are encrypted and require user authenticationhttp.host: [_local_, _site_]حالا برید تو پوشه bin و دستور elasticsearch رو در خط فرمان داس وارد کنیدو تو مرورگر ادرس http://localhost:9200 رو وارد کنید. میبینید دیگه صفحه الستیک باز نمیشهحالا ادرس https://localhost:9200 رو وارد کنید (با https). صفحه الستیک باز شدبرای اینکه دوباره برگردیم حالت قبلی و با http خالی باز بشه کافیه فقط فایل elasticsearch.yml با ادیتور باز کنید و مقدار xpack.security.enrollment.enabled: false رو برابر false قرار بدیدحالا ازتون نام کاربری و رمز ورود میخواداگر رمز رو دارید وارد کنید اگر ندارید با دستور زیر رمز جدید رو جنریت کنیدelasticsearch-reset-password -u elasticکلمه elastic نام کاربری ادمین پیش فرض در الستیکهاگر رمز رو داد که حله اگر نداد و خطایی داد این مرحله رو قبل از تمام مراحل بالا بریدحالا بریم سراغ کیباناکیبانا رو دانلود کنید یکجا اکسترکت بدیدبرید داخل پوشه کیبانا و داخل پوشه bin و cmd رو اجرا کنید و تایپ کنید kibana و اینتر بزنید.سرویس کیبانا اجرا میشهاگر همه چیز درست باشه تصویر زیر رو میبیندحالا تو مرورگر ادرس http://localhost:5601 رو باز کنید تا پنل ادمین کیبانا باز بشهمیتونید از دو طریق ادامه بدید 1-توکن2-تنظیم دستیبرای روش اول اگر اولین بار که الستیک رو اجرا میکنید توکن رو میده و اونو یه جایی ذخیره کردید وارد اینجا کنید در غیر اینصورت داخل پوشه الستیک بعدش داخل bin و دستور زیر رو اجرا کنید و توکن جدید رو بگیرید و در پنل کیبانا وارد کنید elasticsearch-create-enrollment-tokenبرای روش دوم تنظیم دستی رو بزنید. ادرس url الستیک رو وارد کنید برید مرحله بعدتو مرحله بعد اگر رمز کیبانا رو ندارید با دستور زیر رمز جدید کیبانا رو جنریت کنید و تو کادر بزارید و ...elasticsearch-reset-password -u kibana_systemاطلاعات کاملتر رو میتونید از لینک های زیر بخونید https://www.elastic.co/guide/en/elasticsearch/reference/current/security-basic-setup.html https://www.elastic.co/guide/en/elasticsearch/reference/current/security-basic-setup-https.html