Transport Layer Security (TLS) সেটআপ

Latest Technologies - ইলাস্টিকসার্চ (ElasticSearch) - Elasticsearch Security | NCTB BOOK

Transport Layer Security (TLS) Elasticsearch-এ সেটআপ করা

Transport Layer Security (TLS) Elasticsearch-এ নোডগুলির মধ্যে এবং ক্লায়েন্ট (যেমন Kibana) ও ক্লাস্টারের মধ্যে নিরাপদ যোগাযোগ নিশ্চিত করতে ব্যবহৃত হয়। TLS সক্রিয় করলে Elasticsearch ডেটা এনক্রিপ্টেড ফরম্যাটে আদান-প্রদান করে, যা ডেটা সুরক্ষার জন্য অত্যন্ত গুরুত্বপূর্ণ। TLS সক্রিয় করার মাধ্যমে আপনি নিশ্চিত করতে পারেন যে আপনার ক্লাস্টার সিকিউর এবং এনক্রিপ্টেড।

TLS সেটআপ করার ধাপসমূহ

TLS সেটআপ করতে, আপনাকে সার্টিফিকেট তৈরি, Elasticsearch কনফিগারেশন, এবং নোডগুলির মধ্যে সঠিক সার্টিফিকেট ডিস্ট্রিবিউশন করতে হবে। নিচে ধাপে ধাপে প্রক্রিয়াটি ব্যাখ্যা করা হলো।

ধাপ ১: Elasticsearch সার্টিফিকেট তৈরি করা

Elasticsearch TLS সার্টিফিকেট তৈরি করার জন্য elasticsearch-certutil টুল ব্যবহার করতে পারেন। এটি Elasticsearch-এ অন্তর্ভুক্ত থাকে এবং সার্টিফিকেট জেনারেট করতে ব্যবহৃত হয়।

a) Certificate Authority (CA) তৈরি করা

প্রথমে একটি Certificate Authority (CA) তৈরি করুন, যা TLS সার্টিফিকেট সাইন করবে:

bin/elasticsearch-certutil ca
  • এই কমান্ড চালালে একটি elastic-stack-ca.p12 ফাইল তৈরি হবে। এটি আপনার CA সার্টিফিকেট।

b) Node সার্টিফিকেট তৈরি করা

এবার, প্রতিটি নোডের জন্য সার্টিফিকেট তৈরি করতে elasticsearch-certutil টুল ব্যবহার করুন:

bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
  • কমান্ডটি চালানোর পর, আপনাকে elastic-stack-ca.p12 ফাইলের পাথ দিতে হবে এবং প্রতিটি নোডের জন্য সার্টিফিকেট তৈরি হবে।
  • একটি .p12 ফাইল (Keystore) তৈরি হবে, যা প্রতিটি নোডে TLS কনফিগারেশনের জন্য ব্যবহৃত হবে।

ধাপ ২: Elasticsearch কনফিগারেশন ফাইলে TLS সক্রিয় করা

Elasticsearch-এর elasticsearch.yml কনফিগারেশন ফাইলে TLS কনফিগারেশন যোগ করতে হবে। প্রতিটি নোডে নিম্নলিখিত সেটিংস যুক্ত করুন:

# Transport Layer TLS Configuration
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /path/to/your/node-cert.p12
xpack.security.transport.ssl.truststore.path: /path/to/your/node-cert.p12

# HTTP Layer TLS Configuration (Optional: For HTTP/HTTPS)
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: /path/to/your/node-cert.p12
xpack.security.http.ssl.truststore.path: /path/to/your/node-cert.p12
  • Transport Layer Configuration: এখানে প্রতিটি নোডের মধ্যে যোগাযোগ সিকিউর করতে TLS এনক্রিপশন সক্রিয় করা হয়েছে। keystore.path এবং truststore.path-এ যে .p12 ফাইলটি তৈরি করেছিলেন তার পাথ যুক্ত করুন।
  • HTTP Layer Configuration (Optional): যদি আপনি HTTP API এনক্রিপ্ট করতে চান, তাহলে HTTP লেয়ারে TLS এনক্রিপশন সক্রিয় করুন।

ধাপ ৩: Elasticsearch সার্ভার রিস্টার্ট করা

কনফিগারেশন পরিবর্তনের পরে প্রতিটি Elasticsearch নোড রিস্টার্ট করুন:

bin/elasticsearch
  • সার্ভার রিস্টার্ট করার পরে, TLS সক্রিয় হবে এবং নোডগুলির মধ্যে এনক্রিপ্টেড কমিউনিকেশন শুরু হবে।

ধাপ ৪: Kibana-তে TLS কনফিগার করা (Optional)

যদি Kibana ব্যবহার করে থাকেন, তাহলে Elasticsearch-এর সাথে সিকিউর কানেকশন কনফিগার করতে হবে। kibana.yml ফাইলে TLS কনফিগারেশন যুক্ত করুন:

elasticsearch.hosts: ["https://your-elasticsearch-node:9200"]
elasticsearch.ssl.certificateAuthorities: ["/path/to/elastic-stack-ca.pem"]
elasticsearch.ssl.verificationMode: full
  • elasticsearch.hosts: আপনার Elasticsearch নোডের HTTPS URL।
  • elasticsearch.ssl.certificateAuthorities: আপনার CA সার্টিফিকেট (elastic-stack-ca.pem) এর পাথ, যা Kibana সার্ভারে রাখতে হবে।
  • verificationMode: full সেট করুন, যাতে Kibana এবং Elasticsearch-এর মধ্যে TLS সার্টিফিকেট পুরোপুরি ভেরিফাই হয়।

ধাপ ৫: Testing এবং Validation

TLS সঠিকভাবে কাজ করছে কি না, তা যাচাই করতে:

  • Elasticsearch Logs চেক করুন (elasticsearch.log) যদি কোনো TLS সম্পর্কিত এরর বা ওয়ার্নিং থাকে।
  • Kibana Logs চেক করুন যদি Kibana এবং Elasticsearch-এর মধ্যে TLS কনফিগারেশন নিয়ে কোনো সমস্যা হয়।
  • curl Command ব্যবহার করে Elasticsearch HTTP API যাচাই করুন:
curl -u elastic:password --cacert /path/to/elastic-stack-ca.pem https://your-elasticsearch-node:9200
  • যদি TLS সঠিকভাবে কনফিগার করা থাকে, তাহলে আপনি Elasticsearch-এর রেসপন্স পাবেন।

TLS সেটআপের Best Practices

  1. Use Strong Certificates: সর্বদা স্ট্রং এনক্রিপশন এবং লং সার্টিফিকেট ভ্যালিডিটি নিশ্চিত করুন।
  2. Regularly Rotate Certificates: নিয়মিতভাবে সার্টিফিকেট রোটেট করুন, যাতে কোনো কম্প্রোমাইজ হলে দ্রুত রিকভারি সম্ভব হয়।
  3. Limit Access to Keystores and Truststores: Keystore এবং Truststore ফাইলগুলোর অ্যাক্সেস শুধুমাত্র অ্যাডমিনিস্ট্রেটরদের কাছে সীমাবদ্ধ রাখুন।
  4. Enable HTTP TLS (HTTPS): HTTP API এর জন্য HTTPS চালু করুন, যাতে ক্লায়েন্ট এবং সার্ভারের মধ্যে নিরাপদ যোগাযোগ নিশ্চিত হয়।

উপসংহার

Elasticsearch-এ TLS সেটআপ করা ডেটা সিকিউরিটি নিশ্চিত করার একটি গুরুত্বপূর্ণ ধাপ। উপরের ধাপগুলো অনুসরণ করে, আপনি Elasticsearch নোডগুলোর মধ্যে এবং ক্লায়েন্ট ও সার্ভারের মধ্যে TLS এনক্রিপশন সক্রিয় করতে পারবেন, যা ক্লাস্টারকে সুরক্ষিত রাখবে এবং ডেটা লিকেজ বা অননুমোদিত অ্যাক্সেস প্রতিরোধ করবে।

Content added By
Promotion