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_server_encryption_internode_encryption=all
    conf_cassandra_server_encryption_keystore=/opt/apigee/data/apigee-cassandra/keystore.node0
    conf_cassandra_server_encryption_keystore_password=keypass
    conf_cassandra_server_encryption_truststore=/opt/apigee/data/apigee-cassandra/truststore.node0
    conf_cassandra_server_encryption_truststore_password=trustpass
        
    # Optionally set the following to enable 2-way TLS or mutual TLS
    conf_cassandra_server_encryption_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 এনক্রিপশন পরিষেবা শুরু হয়েছে কিনা তা নির্ধারণ করতে, নিম্নলিখিত মেসেজের জন্য সিস্টেম লগ চেক করুন:
    Internode messaging enabled TLS protocols
    Internode messaging enabled cipher suites
    

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

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

  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 ফাইলে নতুন কীস্টোর ভ্যালুতে নিচে দেখানো প্রপার্টি আপডেট করুন:
    conf_cassandra_server_encryption_keystore=NEW_KEYSTORE_PATH
    conf_cassandra_server_encryption_keystore_password=NEW_KEYSTORE_PASSWORD
      

    NEW_KEYSTORE_PATH হল ডিরেক্টরির পাথ যেখানে কীস্টোর ফাইলটি আছে এবং NEW_KEYSTORE_PASSWORD হল সার্টিফিকেট তৈরি করার সময় সেট করা কীস্টোর পাসওয়ার্ড, যা পরিশিষ্টে ব্যাখ্যা করা হয়েছে।

  5. Cassandra পরিষেবা বন্ধ করুন:
    /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