Cassandra ইন্টারনোড এনক্রিপশন চালু করা

TLS ব্যবহার করে ক্লাস্টারের মধ্যে নোড থেকে নোডে ডেটা যাতায়াত করার সময় ইন্টারনোড (বা নোড-টু-নোড) এনক্রিপশন তা সুরক্ষিত রাখে। এই পৃষ্ঠায় Edge for Private Cloud-এ TLS ব্যবহার করে Cassandra ইন্টারনোড এনক্রিপশন কীভাবে চালু করতে হয় তা ব্যাখ্যা করা হয়েছে। এইসব ধাপ পারফর্ম করতে, আপনাকে অবশ্যই Cassandra রিংয়ের বিবরণ সম্পর্কে জানতে হবে।

Cassandra ইন্টারনোড এনক্রিপশন চালু করা

Cassandra ইন্টারনোড এনক্রিপশন চালু করতে এইসব ধাপ অনুসরণ করুন:

  1. পরিশিষ্ট লিঙ্কে উল্লেখ করা ধাপগুলি অনুসরণ করে সার্ভার সার্টিফিকেট তৈরি করুন এবং সেল্ফ-সাইন করা কী তৈরি করুন।

    নিচে উল্লেখ করা ধাপগুলি ধরে নেয় যে আপনি পরিশিষ্টে ব্যাখ্যা করা keystore.node0 ও truststore.node0 তৈরি করেছেন, সেইসাথে কীস্টোর ও ট্রাস্টস্টোর পাসওয়ার্ডও তৈরি করেছেন। পরবর্তী ধাপগুলি সম্পূর্ণ করার আগে প্রতিটি নোডে প্রাথমিক ধাপ হিসেবে কীস্টোর ও ট্রাস্টস্টোর তৈরি করতে হবে ।

  2. /opt/apigee/customer/application/cassandra.properties ফাইলে নিম্নলিখিত প্রপার্টি যোগ করুন। ফাইলটি না থাকলে, এটি তৈরি করুন।
    conf_cassandra_internode_encryption=all
    conf_cassandra_keystore=/opt/apigee/data/apigee-cassandra/keystore.node0
    conf_cassandra_keystore_password=keypass
    conf_cassandra_truststore=/opt/apigee/data/apigee-cassandra/truststore.node0
    conf_cassandra_truststore_password=trustpass
    # Optionally set the following to enable 2-way TLS or mutual TLS
    # conf_cassandra_require_client_auth=true
  3. নিশ্চিত করুন যে ফাইল cassandra.properties-এর মালিকানা apigee ব্যবহারকারীর কাছে আছে:
    chown apigee:apigee \
    /opt/apigee/customer/application/cassandra.properties

প্রতিটি Cassandra নোডে নিম্নলিখিত ধাপগুলি এক এক করে এক্সিকিউট করুন, যাতে ব্যবহারকারীদের জন্য কোনও ডাউনটাইম না করেই পরিবর্তনগুলি কার্যকর হয়:

  1. Cassandra পরিষেবা বন্ধ করুন:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra stop
  2. Cassandra পরিষেবা রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra start
  3. TLS এনক্রিপশন পরিষেবা চালু হয়েছে কিনা তা নির্ধারণ করতে, নিম্নলিখিত মেসেজের জন্য সিস্টেম লগ চেক করুন:
    Starting Encrypted Messaging Service on TLS port

সার্টিফিকেট রোটেশন পারফর্ম করা

সার্টিফিকেট রোটেট করতে, এইসব ধাপ অনুসরণ করুন:

  1. আগে থেকে থাকা Cassandra নোডের ট্রাস্টস্টোরে, প্রতিটি অনন্যভাবে তৈরি কী পেয়ারের জন্য সার্টিফিকেট যোগ করুন (পরিশিষ্ট দেখুন) যাতে পুরনো সার্টিফিকেট ও নতুন সার্টিফিকেট একই ট্রাস্টস্টোরে থাকে:
    keytool -import -v -trustcacerts -alias NEW_ALIAS \
    -file CERT -keystore EXISTING_TRUSTSTORE

    যেখানে NEW_ALIAS হল এন্ট্রি শনাক্ত করার অনন্য স্ট্রিং, CERT হল যোগ করার জন্য সার্টিফিকেট ফাইলের নাম এবং EXISTING_TRUSTSTORE হল Cassandra নোডে আগে থেকে থাকা ট্রাস্টস্টোরের নাম।

  2. ক্লাস্টারের সবকটি Cassandra নোডে truststore ডিস্ট্রিবিউট করতে, scp-এর মতো কপি ইউটিলিটি ব্যবহার করুন এবং প্রতিটি নোড বর্তমানে যে truststore ব্যবহার করছে সেটি রিপ্লেস করুন।
  3. নতুন ট্রাস্টস্টোর লোড করতে এবং নতুন কীগুলি চালু হওয়ার আগে সেগুলির জন্য বিশ্বাস স্থাপন করতে ক্লাস্টারের একটি রোলিং রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra restart
  4. ক্লাস্টারের প্রতিটি Cassandra নোডে, cassandra.properties ফাইলে নতুন keystore ভ্যালুতে নিচে দেখানো প্রপার্টি আপডেট করুন:
    conf_cassandra_keystore=NEW_KEYSTORE_PATH
    conf_cassandra_keystore_password=NEW_KEYSTORE_PASSOWRD
    
      

    where NEW_KEYSTORE_PATH is the path to the directory where the keystore file is located and NEW_KEYSTORE_PASSWORD is the keystore password set when the certificates were created, as explained in the Appendix.

  5. Stop the Cassandra service:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra stop
  6. Cassandra পরিষেবা রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra start
  7. সব নোডের মধ্যে কমিউনিকেশন সফলভাবে স্থাপন করা হলে, পরবর্তী Cassandra নোডে যান। মনে রাখবেন: সব নোডের মধ্যে কমিউনিকেশন ঠিকমতো প্রতিষ্ঠিত হলে তবেই পরবর্তী নোডে যান।

পরিশিষ্ট

নিম্নলিখিত উদাহরণ থেকে ইন্টারনোড এনক্রিপশন ধাপগুলি সম্পন্ন করার জন্য প্রয়োজনীয় সার্ভার সার্টিফিকেট কীভাবে প্রস্তুত করতে হয় তা জানুন। উদাহরণে দেখানো কমান্ডে নিম্নলিখিত প্যারামিটার ব্যবহার করা হয়েছে:

প্যারামিটার বিবরণ
node0 নোড শনাক্ত করার জন্য কোনও অনন্য স্ট্রিং।
keystore.node0 কীস্টোরের নাম। কমান্ড ধরে নেয় যে এই ফাইলটি বর্তমান ডিরেক্টরিতে আছে।
keypass কীস্টোর ও কী, দুটির ক্ষেত্রেই keypass একই হতে হবে।
dname node0-এর IP অ্যাড্রেস 10.128.0.39 হিসেবে শনাক্ত করে।
-validity এই ফ্ল্যাগে সেট করা ভ্যালু, তৈরি হওয়া কী পেয়ারকে ১০ বছরের জন্য বৈধ করে তোলে।
  1. নিম্নলিখিত ডিরেক্টরিতে যান:
    cd /opt/apigee/data/apigee-cassandra
  2. বর্তমান ডিরেক্টরিতে keystore.node0 নামের ফাইল তৈরি করতে, নিম্নলিখিত কমান্ড রান করুন:
    keytool -genkey -keyalg RSA -alias node0 -validity 3650 \
    -keystore keystore.node0 -storepass keypass \
    -keypass keypass -dname "CN=10.128.0.39, OU=None, \
    O=None, L=None, C=None"

    গুরুত্বপূর্ণ: ভালো করে দেখে নিন যে কী পাসওয়ার্ড ও কীস্টোর পাসওয়ার্ড একই আছে।

  3. আলাদা ফাইলে সার্টিফিকেট এক্সপোর্ট করুন:
    keytool -export -alias node0 -file node0.cer \
    -keystore keystore.node0
  4. নিশ্চিত করুন যে ফাইলটি শুধুমাত্র apigee ব্যবহারকারীর কাছেই পাঠযোগ্য এবং অন্য কারও কাছে নয়:
    $ chown apigee:apigee \
    /opt/apigee/data/apigee-cassandra/keystore.node0
    $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0
  5. নোডের ট্রাস্টস্টোরে জেনারেট করা সার্টিফিকেট node0.cer ইমপোর্ট করুন:
    keytool -import -v -trustcacerts -alias node0 \
    -file node0.cer -keystore truststore.node0

    উপরের কমান্ডটি আপনাকে একটি পাসওয়ার্ড সেট করতে বলে। এটি হল ট্রাস্টস্টোর পাসওয়ার্ড এবং আপনি আগে যে কীস্টোর পাসওয়ার্ড সেট করেছেন সেটির থেকে এটি আলাদা হতে পারে। সার্টিফিকেট বিশ্বাস করার জন্য প্রম্পট করা হলে, yes লিখুন।

  6. কোনও কী ছাড়াই সার্টিফিকেটের PEM ফাইল তৈরি করতে openssl ব্যবহার করুন। মনে রাখবেন, cqlsh জেনারেট করা ফর্ম্যাটের সার্টিফিকেটের সাথে কাজ করে না।
    $ keytool -importkeystore -srckeystore keystore.node0 \
    -destkeystore node0.p12 -deststoretype PKCS12 -srcstorepass \
    keypass -deststorepass keypass
    $ openssl pkcs12 -in node0.p12 -nokeys -out node0.cer.pem \
    -passin pass:keypass
    $ openssl pkcs12 -in node0.p12 -nodes -nocerts -out node0.key.pem -passin pass:keypass
  7. নোড-টু-নোড এনক্রিপশনের জন্য, প্রতিটি নোডে node0.cer ফাইল কপি করুন এবং প্রতিটি নোডের ট্রাস্টস্টোরে এটি ইমপোর্ট করুন।
    keytool -import -v -trustcacerts -alias node0 \
    -file node0.cer -keystore truststore.node1
  8. কীস্টোর ও ট্রাস্টস্টোর ফাইলে সার্টিফিকেট আছে কিনা তা চেক করতে keytool -list ব্যবহার করুন:
    $ keytool -list -keystore keystore.node0
    $ keytool -list -keystore truststore.node0