ProHoster > وبلاگ > اداره > Elastic under lock and key: فعال کردن گزینه های امنیتی خوشه Elasticsearch برای دسترسی از داخل و خارج
Elastic under lock and key: فعال کردن گزینه های امنیتی خوشه Elasticsearch برای دسترسی از داخل و خارج
Elastic Stack یک ابزار شناخته شده در بازار سیستم های SIEM (در واقع نه تنها آنها) است. این می تواند داده های با اندازه های مختلف را جمع آوری کند، چه حساس و چه نه خیلی حساس. اگر دسترسی به عناصر Elastic Stack محافظت نشود، کاملاً صحیح نیست. به طور پیشفرض، همه عناصر خارج از جعبه Elastic (کلکتورهای Elasticsearch، Logstash، Kibana و Beats) روی پروتکلهای باز اجرا میشوند. و در خود کیبانا احراز هویت غیر فعال است. همه این تعاملات را می توان ایمن کرد و در این مقاله به شما خواهیم گفت که چگونه این کار را انجام دهید. برای راحتی، روایت را به 3 بلوک معنایی تقسیم کردیم:
مدل دسترسی به داده مبتنی بر نقش
امنیت داده در یک خوشه Elasticsearch
ایمن سازی داده ها در خارج از یک خوشه Elasticsearch
جزئیات زیر برش.
مدل دسترسی به داده مبتنی بر نقش
اگر Elasticsearch را نصب کنید و به هیچ وجه آن را تنظیم نکنید، دسترسی به همه فهرست ها برای همه باز خواهد بود. خوب، یا کسانی که می توانند از فر استفاده کنند. برای جلوگیری از این امر، Elasticsearch یک الگو دارد که با شروع اشتراک Basic (که رایگان است) در دسترس است. از نظر شماتیک چیزی شبیه این به نظر می رسد:
آنچه در تصویر است
کاربران همه کسانی هستند که می توانند با استفاده از اطلاعات کاربری خود وارد شوند.
نقش مجموعه ای از حقوق است.
حقوق مجموعه ای از امتیازات است.
امتیازها مجوزهایی برای نوشتن، خواندن، حذف و غیره هستند. (لیست کامل امتیازات)
منابع عبارتند از نمایهها، اسناد، فیلدها، کاربران و سایر موجودیتهای ذخیرهسازی (الگوی نقش برای برخی منابع فقط با اشتراکهای پولی در دسترس است).
به طور پیش فرض Elasticsearch دارد کاربران جعبه، که به آن متصل هستند نقش های جعبه. هنگامی که تنظیمات امنیتی را فعال کردید، می توانید بلافاصله از آنها استفاده کنید.
برای فعال کردن امنیت در تنظیمات Elasticsearch، باید آن را به فایل پیکربندی اضافه کنید (به طور پیش فرض این elasticsearch/config/elasticsearch.yml) خط جدید:
xpack.security.enabled: true
پس از تغییر فایل پیکربندی، Elasticsearch را راه اندازی یا راه اندازی مجدد کنید تا تغییرات اعمال شوند. مرحله بعدی تخصیص رمز عبور به کاربران جعبه است. بیایید این کار را به صورت تعاملی با استفاده از دستور زیر انجام دهیم:
[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]
ما بررسی می کنیم:
[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
می توانید به پشت خود ضربه بزنید - تنظیمات در سمت Elasticsearch تکمیل شده است. اکنون زمان پیکربندی Kibana است. اگر اکنون آن را اجرا کنید، خطاهایی ظاهر می شود، بنابراین مهم است که یک فروشگاه کلید ایجاد کنید. این کار در دو دستور (user کیبانا و رمز عبور وارد شده در مرحله ایجاد رمز عبور در Elasticsearch):
اگر همه چیز درست باشد، کیبانا شروع به درخواست ورود و رمز عبور می کند. اشتراک پایه شامل یک الگوی نقش مبتنی بر کاربران داخلی است. با شروع با Gold، می توانید سیستم های احراز هویت خارجی - LDAP، PKI، Active Directory و سیستم های Single sign-on را به هم متصل کنید.
حقوق دسترسی به اشیاء داخل Elasticsearch نیز می تواند محدود شود. با این حال، برای انجام همین کار برای اسناد یا فیلدها، به اشتراک پولی نیاز دارید (این لوکس با سطح پلاتینیوم شروع می شود). این تنظیمات در رابط Kibana یا از طریق در دسترس هستند امنیت API. میتوانید از طریق منوی آشنای Dev Tools بررسی کنید:
هنگامی که Elasticsearch در یک خوشه اجرا می شود (که رایج است)، تنظیمات امنیتی در کلاستر مهم می شوند. برای برقراری ارتباط امن بین گره ها، Elasticsearch از پروتکل TLS استفاده می کند. برای تنظیم تعامل ایمن بین آنها، به گواهی نیاز دارید. ما یک گواهی و کلید خصوصی در قالب PEM تولید می کنیم:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
پس از اجرای دستور بالا، در دایرکتوری /../elasticsearch آرشیو ظاهر می شود elastic-stack-ca.zip. در داخل آن یک گواهینامه و یک کلید خصوصی با پسوندها پیدا خواهید کرد crt и کلید به ترتیب. توصیه می شود آنها را در یک منبع مشترک قرار دهید، که باید از تمام گره های خوشه قابل دسترسی باشد.
اکنون هر گره به گواهینامه ها و کلیدهای خصوصی بر اساس موارد موجود در فهرست مشترک نیاز دارد. هنگام اجرای دستور، از شما خواسته می شود که یک رمز عبور تعیین کنید. میتوانید گزینههای اضافی -ip و -dns را برای تأیید کامل گرههای تعاملی اضافه کنید.
در نتیجه اجرای دستور، یک گواهینامه و یک کلید خصوصی با فرمت PKCS#12 دریافت می کنیم که با یک رمز عبور محافظت می شود. تنها چیزی که باقی می ماند انتقال فایل تولید شده است p12 به دایرکتوری پیکربندی:
گزینه امنیتی دیگری وجود دارد - فیلتر آدرس IP (در اشتراک های سطح طلا موجود است). به شما امکان میدهد لیستهای سفید آدرسهای IP ایجاد کنید که از آنها اجازه دسترسی به گرهها را دارید.
ایمن سازی داده ها در خارج از یک خوشه Elasticsearch
خارج از خوشه به معنای اتصال ابزارهای خارجی است: Kibana، Logstash، Beats یا سایر مشتریان خارجی.
برای پیکربندی پشتیبانی برای https (به جای http)، خطوط جدیدی به elasticsearch.yml اضافه کنید:
پس از افزودن کلیدها، گره های Elasticsearch آماده اتصال از طریق https هستند. اکنون می توان آنها را راه اندازی کرد.
مرحله بعدی ایجاد یک کلید برای اتصال کیبانا و اضافه کردن آن به پیکربندی است. بر اساس گواهی که قبلاً در دایرکتوری مشترک قرار دارد، گواهینامهای در قالب PEM تولید میکنیم (PKCS#12 Kibana، Logstash و Beats هنوز پشتیبانی نمیکنند):
کلیدها وجود دارند، بنابراین تنها چیزی که باقی می ماند این است که پیکربندی Kibana را تغییر دهید تا شروع به استفاده از آنها کند. در فایل پیکربندی kibana.yml، http را به https تغییر دهید و خطوط را با تنظیمات اتصال SSL اضافه کنید. سه خط آخر ارتباط امن بین مرورگر کاربر و کیبانا را پیکربندی می کند.
بنابراین، تنظیمات تکمیل شده و دسترسی به داده ها در خوشه Elasticsearch رمزگذاری شده است.
اگر در مورد قابلیت های Elastic Stack در اشتراک های رایگان یا پولی، نظارت بر وظایف یا ایجاد یک سیستم SIEM سؤالی دارید، درخواست خود را به فرم انتقادات و پیشنهادات در وب سایت ما