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

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

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

Cassandra ইন্টারনোড এনক্রিপশন চালু করতে, ক্লাস্টারের সব নোডে নিচে উল্লেখ করা পদ্ধতি অনুসরণ করুন। আপনাকে প্রতিটি নোডের সর্বজনীন সার্টিফিকেট সব নোডে ডিস্ট্রিবিউট করতে হবে। এটি করার পরে, প্রতিটি নোডের ট্রাস্টস্টোরে node0.cer, node1.cer ইত্যাদি সার্টিফিকেট থাকবে। প্রতিটি নোডের কীস্টোরে শুধুমাত্র নিজস্ব ব্যক্তিগত কী থাকবে। যেমন, node0-এর কীস্টোরে শুধু node0.pem থাকবে। আপনাকে প্রতিটি নোডে এনক্রিপশন চালু করতে হবে, একবারে একটি।

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

  1. পরিশিষ্ট-এ উল্লেখ করা ধাপগুলি অনুসরণ করে সার্ভার সার্টিফিকেট জেনারেট করুন যাতে সেল্ফ-সাইনড কী ও সার্টিফিকেট তৈরি করা যায়।

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

  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 নোডে ট্রাস্টস্টোর ডিস্ট্রিবিউট করতে scp-এর মতো কপি ইউটিলিটি ব্যবহার করুন প্রতিটি নোডের মাধ্যমে ব্যবহার করা হচ্ছে এমন বর্তমান ট্রাস্টস্টোর পরিবর্তন করে।
  3. নতুন ট্রাস্টস্টোর লোড করতে এবং নতুন কীগুলি কার্যকর হওয়ার আগে তাদের জন্য বিশ্বাস স্থাপন করতে ক্লাস্টারের একটি রোলিং রিস্টার্ট করুন:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra restart
  4. ক্লাস্টারের প্রতিটি Cassandra নোডে, cassandra.properties ফাইলে নতুন কিস্টোর ভ্যালুতে নিচে দেখানো প্রপার্টি আপডেট করুন:
    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 কীস্টোর ও কী, দুটির জন্যই কীপাস একই হতে হবে।
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