لچکدار لاک اپ: اندر اور باہر رسائی کے لیے Elasticsearch کلسٹر سیکورٹی کے اختیارات کو فعال کرنا

لچکدار لاک اپ: اندر اور باہر رسائی کے لیے Elasticsearch کلسٹر سیکورٹی کے اختیارات کو فعال کرنا

لچکدار اسٹیک SIEM سسٹمز مارکیٹ میں ایک معروف ٹول ہے (دراصل، نہ صرف وہ)۔ یہ بہت سارے مختلف سائز کا ڈیٹا اکٹھا کر سکتا ہے، دونوں حساس اور بہت حساس نہیں۔ یہ مکمل طور پر درست نہیں ہے اگر لچکدار اسٹیک عناصر تک رسائی خود محفوظ نہیں ہے۔ پہلے سے طے شدہ طور پر، تمام لچکدار آؤٹ آف دی باکس عناصر (Elasticsearch، Logstash، Kibana، اور Beats کلیکٹر) کھلے پروٹوکول پر چلتے ہیں۔ اور خود کبانہ میں توثیق غیر فعال ہے۔ ان تمام تعاملات کو محفوظ بنایا جا سکتا ہے اور اس مضمون میں ہم آپ کو بتائیں گے کہ یہ کیسے کریں۔ سہولت کے لیے، ہم نے بیانیہ کو 3 سیمنٹک بلاکس میں تقسیم کیا:

  • کردار پر مبنی ڈیٹا تک رسائی کا ماڈل
  • Elasticsearch کلسٹر کے اندر ڈیٹا سیکیورٹی
  • Elasticsearch کلسٹر سے باہر ڈیٹا کو محفوظ کرنا

کٹ کے نیچے تفصیلات۔

کردار پر مبنی ڈیٹا تک رسائی کا ماڈل

اگر آپ Elasticsearch انسٹال کرتے ہیں اور اسے کسی بھی طرح سے ٹیون نہیں کرتے ہیں، تو تمام اشاریہ جات تک رسائی ہر کسی کے لیے کھلی ہوگی۔ ٹھیک ہے، یا وہ جو curl استعمال کر سکتے ہیں. اس سے بچنے کے لیے، Elasticsearch کا ایک رول ماڈل ہے جو بنیادی سبسکرپشن (جو کہ مفت ہے) سے شروع ہوتا ہے۔ منصوبہ بندی سے یہ کچھ اس طرح لگتا ہے:

لچکدار لاک اپ: اندر اور باہر رسائی کے لیے Elasticsearch کلسٹر سیکورٹی کے اختیارات کو فعال کرنا

تصویر میں کیا ہے۔

  • صارفین ہر وہ شخص ہیں جو اپنی اسناد کا استعمال کرتے ہوئے لاگ ان کر سکتے ہیں۔
  • کردار حقوق کا ایک مجموعہ ہے۔
  • حقوق مراعات کا مجموعہ ہیں۔
  • مراعات لکھنے، پڑھنے، حذف کرنے وغیرہ کی اجازتیں ہیں۔ (مراعات کی مکمل فہرست)
  • وسائل اشاریہ جات، دستاویزات، فیلڈز، صارفین، اور دیگر سٹوریج ادارے ہیں (کچھ وسائل کے لیے رول ماڈل صرف بامعاوضہ سبسکرپشنز کے ساتھ دستیاب ہے)۔

بطور ڈیفالٹ 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 سائیڈ پر سیٹنگز مکمل ہو گئی ہیں۔ اب کبانا کو ترتیب دینے کا وقت آگیا ہے۔ اگر آپ اسے ابھی چلاتے ہیں تو غلطیاں ظاہر ہوں گی، اس لیے کلیدی اسٹور بنانا ضروری ہے۔ یہ دو کمانڈز میں کیا جاتا ہے (user کباب اور Elasticsearch میں پاس ورڈ بنانے کے مرحلے پر درج کردہ پاس ورڈ:

[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.username
[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.password

اگر سب کچھ درست ہے تو کبانا لاگ ان اور پاس ورڈ مانگنا شروع کر دے گا۔ بنیادی رکنیت میں اندرونی صارفین پر مبنی رول ماڈل شامل ہے۔ گولڈ سے شروع کرتے ہوئے، آپ بیرونی تصدیقی نظام - LDAP، PKI، ایکٹو ڈائریکٹری اور سنگل سائن آن سسٹمز کو جوڑ سکتے ہیں۔

لچکدار لاک اپ: اندر اور باہر رسائی کے لیے Elasticsearch کلسٹر سیکورٹی کے اختیارات کو فعال کرنا

Elasticsearch کے اندر اشیاء تک رسائی کے حقوق بھی محدود ہو سکتے ہیں۔ تاہم، دستاویزات یا فیلڈز کے لیے ایسا کرنے کے لیے، آپ کو ایک ادا شدہ سبسکرپشن کی ضرورت ہوگی (یہ لگژری پلاٹینم لیول سے شروع ہوتی ہے)۔ یہ ترتیبات کبانا انٹرفیس میں یا اس کے ذریعے دستیاب ہیں۔ سیکیورٹی API. آپ پہلے سے واقف ڈیو ٹولز مینو کے ذریعے چیک کر سکتے ہیں:

کردار بنانا

PUT /_security/role/ruslan_i_ludmila_role
{
  "cluster": [],
  "indices": [
    {
      "names": [ "ruslan_i_ludmila" ],
      "privileges": ["read", "view_index_metadata"]
    }
  ]
}

صارف بنانا

POST /_security/user/pushkin
{
  "password" : "nataliaonelove",
  "roles" : [ "ruslan_i_ludmila_role", "kibana_user" ],
  "full_name" : "Alexander Pushkin",
  "email" : "[email protected]",
  "metadata" : {
    "hometown" : "Saint-Petersburg"
  }
}

Elasticsearch کلسٹر کے اندر ڈیٹا سیکیورٹی

جب Elasticsearch ایک کلسٹر میں چلتا ہے (جو عام ہے)، کلسٹر کے اندر سیکیورٹی کی ترتیبات اہم ہو جاتی ہیں۔ نوڈس کے درمیان محفوظ مواصلت کے لیے، Elasticsearch TLS پروٹوکول کا استعمال کرتا ہے۔ ان کے درمیان محفوظ تعامل قائم کرنے کے لیے، آپ کو ایک سرٹیفکیٹ کی ضرورت ہے۔ ہم PEM فارمیٹ میں ایک سرٹیفکیٹ اور نجی کلید تیار کرتے ہیں:

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem

مندرجہ بالا کمانڈ پر عمل کرنے کے بعد، ڈائریکٹری میں /../elasticsearch آرکائیو ظاہر ہو جائے گا elastic-stack-ca.zip. اس کے اندر آپ کو ایک سرٹیفکیٹ اور ایکسٹینشن کے ساتھ ایک نجی کلید ملے گی۔ crt и کلید بالترتیب یہ مشورہ دیا جاتا ہے کہ انہیں مشترکہ وسائل پر رکھیں، جو کلسٹر کے تمام نوڈس سے قابل رسائی ہونا چاہیے۔

ہر نوڈ کو اب اس کے اپنے سرٹیفکیٹس اور پرائیویٹ کلیدوں کی ضرورت ہے جو مشترکہ ڈائریکٹری میں موجود ہیں۔ کمانڈ پر عمل کرتے وقت، آپ سے پاس ورڈ سیٹ کرنے کو کہا جائے گا۔ آپ انٹرایکٹنگ نوڈس کی مکمل تصدیق کے لیے اضافی اختیارات -ip اور -dns شامل کر سکتے ہیں۔

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.key

کمانڈ پر عمل کرنے کے نتیجے میں، ہمیں PKCS#12 فارمیٹ میں ایک سرٹیفکیٹ اور ایک نجی کلید ملے گی، جو پاس ورڈ سے محفوظ ہے۔ جو کچھ باقی ہے وہ تیار کردہ فائل کو منتقل کرنا ہے۔ p12 کنفیگریشن ڈائرکٹری میں:

[elastic@node1 ~]$ mv elasticsearch/elastic-certificates.p12 elasticsearch/config

فارمیٹ میں سرٹیفکیٹ میں پاس ورڈ شامل کریں۔ p12 ہر نوڈ پر کی اسٹور اور ٹرسٹ اسٹور میں:

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

پہلے سے جانا جاتا ہے۔ elasticsearch.yml سرٹیفکیٹ ڈیٹا کے ساتھ لائنیں شامل کرنا باقی ہے:

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

ہم تمام Elasticsearch نوڈس لانچ کرتے ہیں اور اس پر عمل درآمد کرتے ہیں۔ curl کے. اگر سب کچھ صحیح طریقے سے کیا گیا تھا، تو کئی نوڈس کے ساتھ جواب دیا جائے گا:

[elastic@node1 ~]$ curl node1:9200/_cat/nodes -u elastic:password                                                                                    
172.18.0.3 43 75 4 0.00 0.05 0.05 dim * node2                                                                                                                     
172.18.0.4 21 75 3 0.00 0.05 0.05 dim - node3                                                                                                                     
172.18.0.2 39 75 4 0.00 0.05 0.05 dim - node1

ایک اور سیکیورٹی آپشن ہے - آئی پی ایڈریس فلٹرنگ (گولڈ لیول سے سبسکرپشنز میں دستیاب)۔ آپ کو IP پتوں کی سفید فہرستیں بنانے کی اجازت دیتا ہے جہاں سے آپ کو نوڈس تک رسائی کی اجازت ہے۔

Elasticsearch کلسٹر سے باہر ڈیٹا کو محفوظ کرنا

کلسٹر کے باہر کا مطلب بیرونی ٹولز کو جوڑنا ہے: کبانا، لاگ اسٹاش، بیٹس یا دیگر بیرونی کلائنٹس۔

لچکدار لاک اپ: اندر اور باہر رسائی کے لیے Elasticsearch کلسٹر سیکورٹی کے اختیارات کو فعال کرنا

https (http کے بجائے) کے لیے سپورٹ کنفیگر کرنے کے لیے، elasticsearch.yml میں نئی ​​لائنیں شامل کریں:

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12

کیونکہ سرٹیفکیٹ پاس ورڈ سے محفوظ ہے، اسے ہر نوڈ پر کی اسٹور اور ٹرسٹ اسٹور میں شامل کریں:

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password

چابیاں شامل کرنے کے بعد، Elasticsearch نوڈس https کے ذریعے جڑنے کے لیے تیار ہیں۔ اب انہیں لانچ کیا جا سکتا ہے۔

اگلا مرحلہ کبانا کو جوڑنے کے لیے ایک کلید بنانا اور اسے کنفیگریشن میں شامل کرنا ہے۔ مشترکہ ڈائریکٹری میں پہلے سے موجود سرٹیفکیٹ کی بنیاد پر، ہم PEM فارمیٹ میں ایک سرٹیفکیٹ تیار کریں گے (PKCS#12 Kibana، Logstash اور Beats ابھی تک تعاون نہیں کرتے):

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.key --pem

جو کچھ باقی ہے وہ کبانا کنفیگریشن کے ساتھ فولڈر میں بنائی گئی چابیاں کھولنا ہے۔

[elastic@node1 ~]$ unzip elasticsearch/certificate-bundle.zip -d kibana/config

چابیاں وہاں موجود ہیں، لہذا جو کچھ باقی ہے وہ ہے کبانا کی ترتیب کو تبدیل کرنا تاکہ یہ ان کا استعمال شروع کردے۔ kibana.yml کنفیگریشن فائل میں، HTTP کو https میں تبدیل کریں اور SSL کنکشن کی ترتیبات کے ساتھ لائنیں شامل کریں۔ آخری تین لائنیں صارف کے براؤزر اور کبانا کے درمیان محفوظ مواصلت کو ترتیب دیتی ہیں۔

elasticsearch.hosts: ["https://${HOSTNAME}:9200"]
elasticsearch.ssl.certificateAuthorities: /shared_folder/ca/ca.crt
elasticsearch.ssl.verificationMode: certificate
server.ssl.enabled: true
server.ssl.key: /../kibana/config/instance/instance.key
server.ssl.certificate: /../kibana/config/instance/instance.crt

اس طرح، ترتیبات مکمل ہو جاتی ہیں اور Elasticsearch کلسٹر میں ڈیٹا تک رسائی کو انکرپٹ کیا جاتا ہے۔

اگر آپ کے پاس مفت یا بامعاوضہ سبسکرپشنز، کاموں کی نگرانی یا SIEM سسٹم بنانے پر لچکدار اسٹیک کی صلاحیتوں کے بارے میں سوالات ہیں، تو ایک درخواست بھیجیں۔ رائے فارم ہماری ویب سائٹ پر

Habré پر لچکدار اسٹیک کے بارے میں ہمارے مزید مضامین:

لچکدار اسٹیک میں مشین لرننگ کو سمجھنا (عرف Elasticsearch، عرف ELK)

لچکدار تلاش کا سائز

ماخذ: www.habr.com

نیا تبصرہ شامل کریں