Apigee mTLS-এর ভূমিকা

Apigee mTLS ফিচার, Private Cloud ক্লাস্টারের জন্য আপনার Edge-এর কম্পোনেন্টের মধ্যে হওয়া কমিউনিকেশনকে সুরক্ষিত করে। এটি পরিষেবা মেশ কনফিগার ও ইনস্টল করার জন্য একটি ইন্ডাস্ট্রি-স্ট্যান্ডার্ড পদ্ধতি প্রদান করে। এটি প্যাকেজ ম্যানেজমেন্ট ও কনফিগারেশন অটোমেশনকে সাপোর্ট করে।

আর্কিটেকচারাল ওভারভিউ

কম্পোনেন্টের মধ্যে সুরক্ষিত যোগাযোগ প্রদান করতে, Apigee mTLS একটি সার্ভিস মেশ ব্যবহার করে যা কম্পোনেন্টের মধ্যে সুরক্ষিত, পারস্পরিকভাবে যাচাইকৃত TLS কানেকশন স্থাপন করে।

নিম্নলিখিত ছবিতে Apigee কম্পোনেন্টের মধ্যে কানেকশন দেখানো হয়েছে যা Apigee mTLS সুরক্ষিত করে (in red)। ছবিতে দেখানো পোর্টগুলি হল উদাহরণ; প্রতিটি কম্পোনেন্ট ব্যবহার করতে পারে এমন রেঞ্জের তালিকার জন্য পোর্ট ব্যবহার দেখুন।

(মনে রাখবেন যে "M" দিয়ে চিহ্নিত পোর্টগুলি কম্পোনেন্ট ম্যানেজ করার জন্য ব্যবহার করা হয় এবং ম্যানেজমেন্ট সার্ভার যাতে অ্যাক্সেস করতে পারে তার জন্য কম্পোনেন্টে অবশ্যই খোলা থাকতে হবে।)

উপরের ডায়াগ্রামে যেমন দেখানো হয়েছে, ক্লাস্টারের বেশিরভাগ কম্পোনেন্টের মধ্যে কানেকশনে Apigee mTLS নিরাপত্তা যোগ করে, যার মধ্যে এগুলি অন্তর্ভুক্ত:

সোর্স গন্তব্য
ম্যানেজমেন্ট সার্ভার Router, MP, QPid, LDAP, Postgres, Zookeeper এবং Cassandra নোড
রাউটার লুপব্যাক; Qpid, Zookeeper এবং Cassandra নোড
মেসেজ প্রসেসর লুপব্যাক; Qpid, Zookeeper এবং Cassandra নোড
ZooKeeper এবং Cassandra অন্যান্য Zookeeper ও Cassandra নোড
Edge UI SMTP (শুধুমাত্র এক্সটার্নাল IDP-এর জন্য)
Postgres অন্যান্য Postgres, Zookeeper এবং Cassandra নোড

মেসেজ এনক্রিপশন/ডিক্রিপশন

Apigee mTLS সার্ভিস মেশে Consul সার্ভার থাকে যা আপনার ক্লাস্টারের প্রতিটি ZooKeeper নোডে এবং ক্লাস্টারের প্রতিটি নোডে নিম্নলিখিত Consul পরিষেবাগুলি চালায়:

  • একটি ইগ্রেস প্রক্সি যা হোস্ট নোডে আউটগোয়িং মেসেজ ইন্টারসেপ্ট করে। এই পরিষেবা আউটগোয়িং মেসেজ গন্তব্যে পাঠানোর আগে এনক্রিপ্ট করে।
  • একটি ইনগ্রেস প্রক্সি যা হোস্ট নোডে ইনকামিং মেসেজ ইন্টারসেপ্ট করে। এই পরিষেবা ইনকামিং মেসেজকে তার গন্তব্যে পাঠানোর আগে ডিক্রিপ্ট করে।

যেমন, ম্যানেজমেন্ট সার্ভার যখন রাউটারে কোনও মেসেজ পাঠায়, তখন ইগ্রেস প্রক্সি সার্ভিস আউটগোয়িং মেসেজ ইন্টারসেপ্ট করে, এনক্রিপ্ট করে এবং তারপর রাউটারে পাঠায়। রাউটারের নোড মেসেজটি পেলে, ইনগ্রেস প্রক্সি সার্ভিস মেসেজটি ডিক্রিপ্ট করে এবং তারপর প্রসেস করার জন্য রাউটার কম্পোনেন্টে পাস করে।

এইসব কিছু Edge কম্পোনেন্টের ক্ষেত্রে স্বচ্ছভাবে ঘটে: Consul প্রক্সি পরিষেবার মাধ্যমে করা এনক্রিপশন ও ডিক্রিপশন প্রসেস সম্পর্কে তারা কিছু জানে না।

এছাড়াও, Apigee mTLS iptables ইউটিলিটি ব্যবহার করে, এটি একটি Linux ফায়ারওয়াল পরিষেবা যা ট্রাফিক রিডাইরেকশন ম্যানেজ করে।

প্রয়োজনীয়তা

Apigee mTLS ইনস্টল করার আগে, আপনার এনভায়রনমেন্টকে নিম্নলিখিত প্রয়োজনীয়তা পূরণ করতে হবে:

নিম্নলিখিত বিভাগে এইসব প্রয়োজনীয়তার প্রতিটি সম্পর্কে বিস্তারিত বিবরণ দেওয়া হয়েছে।

ভার্সন, প্ল্যাটফর্ম ও টোপোলজি

নিচের সারণীতে mTLS সংক্রান্ত প্রয়োজনীয়তা তালিকাভুক্ত করা হয়েছে:

এই ব্যাজ অর্জন করার জন্য প্রয়োজনীয় যোগ্যতা বিবরণ
বিভিন্ন ভার্সন
  • 4.51.00
  • 4.50.00
  • 4.19.06
টোপোলজি অন্তত তিনটি Zookeeper নোড অন্তর্ভুক্ত করতে হবে। এর ফলে, আপনি শুধু ৫, ৯, ১২ (মাল্টি-ডেটা সেন্টার) বা ১৩টি নোড ব্যবহার করে এমন টপোলজিতে Apigee mTLS ইনস্টল করতে পারবেন। আরও তথ্যের জন্য, ইনস্টলেশন টপোলজি দেখুন।
প্ল্যাটফর্ম/অপারেটিং সিস্টেম

কোনও নির্দিষ্ট OS-এ Apigee mTLS কাজ করে কিনা তা নির্ধারণ করতে নিম্নলিখিত মানগুলি ব্যবহার করুন:

অপারেটিং সিস্টেম প্রাইভেট ক্লাউডের যে ভার্সনে কাজ করে
v4.19.06 v4.50.00 v4.51.00
CentOS
RedHat Enterprise Linux (RHEL)
Oracle Linux
৭.৫, ৭.৬, ৭.৭ 7.5, 7.6, 7.7, 7.8, 7.9 ৭.৫, ৭.৬, ৭.৭, ৭.৮, ৭.৯, ৮.০

মনে রাখবেন, Apigee mTLS যে Private Cloud-এর জন্য Apigee Edge-এর সংশ্লিষ্ট ভার্সনে চলছে, সেই ভার্সনে কাজ করে এমন সব OS-এ Apigee mTLS কাজ নাও করতে পারে।

যেমন, v4.19.06 যদি CentOS x এবং y-এ কাজ করে, তার মানে এই নয় যে v4.19.06-এর জন্য Apigee mTLS, CentOS x এবং y-এ কাজ করবে।

ইউটিলিটি/প্যাকেজ

Apigee mTLS-এর জন্য আপনার ক্লাস্টারের প্রতিটি মেশিনে নিম্নলিখিত প্যাকেজগুলি ইনস্টল এবং চালু থাকতে হবে, যার মধ্যে আপনার অ্যাডমিনিস্ট্রেশন মেশিন অন্তর্ভুক্ত, ইনস্টলেশন প্রক্রিয়া শুরু করার আগে:

ইউটিলিটি/প্যাকেজ বিবরণ ইনস্টল করার পরে সরিয়ে দিলে চলবে?
base64 ইনস্টলেশন স্ক্রিপ্টের মধ্যে ডেটা যাচাই করে।
gnu-bash
gnu-sed
gnu-grep
ইনস্টলেশন স্ক্রিপ্ট এবং অন্যান্য সাধারণ টুল দ্বারা ব্যবহৃত।
iptables ডিফল্ট ফায়ারওয়াল, firewalld-এর জায়গায় এটি ব্যবহার করা হয়।
iptables-services iptables ইউটিলিটির জন্য কার্যকারিতা প্রদান করে।
lsof ইনস্টলেশন স্ক্রিপ্ট দ্বারা ব্যবহৃত।
nc iptablesটি রুট যাচাই করে।
openssl প্রাথমিক বুটস্ট্র্যাপিং প্রসেস চলাকালীন স্থানীয়ভাবে সার্টিফিকেটে সাইন করে।

ইনস্টলেশনের সময়, আপনি অ্যাডমিনিস্ট্রেশন মেশিনে Consul প্যাকেজও ইনস্টল করেন যাতে আপনি ক্রেডেনশিয়াল ও এনক্রিপশন কী জেনারেট করতে পারেন।

apigee-mtls প্যাকেজটি ক্লাস্টারে ZooKeeper নোডে ইনগ্রেস এবং ইগ্রেস প্রক্সি সহ Consul সার্ভারগুলি ইনস্টল এবং কনফিগার করে।

ব্যবহারকারীর অ্যাকাউন্টের অনুমতি

ইনস্টল করার আগে, নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করুন অথবা বিশেষ সুবিধার অ্যাক্সেস আছে এমন অ্যাকাউন্টে আপনার অ্যাক্সেস আছে কিনা তা নিশ্চিত করুন।

ক্লাস্টারের প্রতিটি নোডে Apigee mTLS ইনস্টলেশন কার্যকর করে এমন অ্যাকাউন্টকে অবশ্যই নিম্নলিখিত কাজগুলি করতে পারতে হবে:

  • Apigee কম্পোনেন্ট শুরু, বন্ধ, রিস্টার্ট ও ইনিশিয়ালাইজ করা
  • ফায়ারওয়াল সংক্রান্ত নিয়ম সেট করা
  • নতুন OS/সিস্টেম ব্যবহারকারীর অ্যাকাউন্ট তৈরি করুন
  • systemctl-এর মাধ্যমে পরিষেবা চালু, বন্ধ, শুরু, স্টপ ও মাস্ক করুন

অ্যাডমিনিস্ট্রেশন মেশিন (সাজেস্ট করা হয়েছে)

Apigee সাজেস্ট করে যে আপনার ক্লাস্টারের মধ্যে একটি নোড থাকা উচিত যার উপর আপনি এই ডকুমেন্টে বর্ণিত বিভিন্ন প্রশাসনিক কাজ করতে পারেন, যার মধ্যে রয়েছে:

  1. HashiCorp Consul 1.6.2 ইনস্টল করুন।
  2. সার্টিফিকেট/কী পেয়ার এবং গসিপ এনক্রিপশন কী জেনারেট ও ডিস্ট্রিবিউট করুন।
  3. কনফিগারেশন ফাইল আপডেট ও ডিস্ট্রিবিউট করুন।

অ্যাডমিনিস্ট্রেশন মেশিন সেট-আপ করার সময়:

  • এতে আপনার রুট অ্যাক্সেস আছে কিনা তা নিশ্চিত করুন।
  • এতে apigee-service এবং apigee-setup ইউটিলিটি ডাউনলোড ও ইনস্টল করুন, যেমনটি Edge apigee-setup ইউটিলিটি ইনস্টল করুন-এ বর্ণনা করা হয়েছে।
  • অ্যাডমিনিস্ট্রেশন মেশিন থেকে ক্লাস্টারের সব নোড অ্যাক্সেস করতে আপনি যাতে scp/ssh ব্যবহার করতে পারেন তা নিশ্চিত করুন। আপনার কনফিগারেশন ফাইল ও ক্রেডেনশিয়াল ডিস্ট্রিবিউট করার জন্য এটি প্রয়োজন।

পোর্ট ব্যবহার ও অ্যাসাইনমেন্ট

এই বিভাগে Apigee mTLS-এর সাথে Consul-এর যোগাযোগে সহায়তা করার জন্য পোর্ট ব্যবহার ও পোর্ট অ্যাসাইনমেন্টের বিবরণ দেওয়া হয়েছে।

পোর্ট ব্যবহার: apigee-mtls রান করছে এমন সব নোড

ক্লাস্টারের যেসব নোড apigee-mtls পরিষেবা ব্যবহার করে, সেগুলিকে অবশ্যই লোকালহোস্ট (127.0.0.1)-এর পরিষেবা থেকে কানেকশনের অনুমতি দিতে হবে। এটি Consul প্রক্সিগুলিকে অন্যান্য পরিষেবার সাথে যোগাযোগ করতে দেয় কারণ তারা ইনকামিং এবং আউটগোয়িং মেসেজ প্রসেস করে।

পোর্ট ব্যবহার: Consul সার্ভার নোড (ZooKeeper-এ চলা নোড)

ক্লাস্টারের সব নোড থেকে অনুরোধ গ্রহণ করার জন্য আপনাকে Consul সার্ভার নোডে (ZooKeeper রান করা নোড) নিম্নলিখিত বেশিরভাগ পোর্ট খুলতে হবে:

নোড Consul সার্ভার পোর্ট বিবরণ প্রোটোকল এক্সটার্নাল mtls-এজেন্টদের অনুমতি দিন
*
Consul সার্ভার (ZooKeeper নোড) 8300 ক্লাস্টারে সব Consul সার্ভার কানেক্ট করে। RPC
8301 ক্লাস্টারের মধ্যে মেম্বারশিপ ও ব্রডকাস্ট মেসেজ ম্যানেজ করে। UDP/TCP
8302 WAN পোর্ট যা মাল্টি-ডেটা সেন্টার কনফিগারেশনে মেম্বারশিপ এবং ব্রডকাস্ট মেসেজ ম্যানেজ করে। UDP/TCP
8500 একই নোডের প্রসেস থেকে Consul সার্ভার API-তে HTTP কানেকশন ম্যানেজ করে।

এই পোর্ট রিমোট কমিউনিকেশন বা কোঅর্ডিনেশনের জন্য ব্যবহার করা হয় না; এটি শুধু লোকালহোস্টে শোনে।

HTTP
8502 ক্লাস্টারের অন্যান্য নোড থেকে Consul Server API-তে gRPC+HTTPS কানেকশন ম্যানেজ করে। gRPC+HTTPS
8503 ক্লাস্টারের অন্যান্য নোড থেকে Consul সার্ভার API-তে HTTPS কানেকশন ম্যানেজ করে। HTTPS
8600 Consul সার্ভারের DNS ম্যানেজ করে। UDP/TCP
* Apigee সাজেস্ট করে যে আপনি ইনবাউন্ড অনুরোধ শুধুমাত্র ক্লাস্টার মেম্বারদের মধ্যে সীমাবদ্ধ রাখুন (ক্রস-ডেটাস্টোর সহ)। আপনি iptables-এর মাধ্যমে এটি করতে পারবেন।

এই সারণীতে যেমন দেখানো হয়েছে, consul-server কম্পোনেন্ট (ZooKeeper নোড) রান করা নোডগুলিকে অবশ্যই ক্লাস্টারের সব মেম্বারের জন্য পোর্ট 8301, 8302, 8502 এবং 8503 খুলতে হবে, যেগুলি apigee-mtls পরিষেবা রান করছে, এমনকি ডেটা সেন্টার জুড়েও। যেসব নোড ZooKeeper চালাচ্ছে না সেগুলির ক্ষেত্রে এই পোর্টগুলি খোলার প্রয়োজন নেই।

সব Consul নোডের জন্য পোর্ট অ্যাসাইনমেন্ট (ZooKeeper চালানো নোড সহ)

Consul কমিউনিকেশন সাপোর্ট করতে, নিম্নলিখিত Apigee কম্পোনেন্ট রান করা নোডগুলিকে অবশ্যই নিম্নলিখিত রেঞ্জের মধ্যে পোর্টে বাহ্যিক কানেকশনের অনুমতি দিতে হবে:

Apigee কম্পোনেন্ট ব্যাপ্তি প্রতি নোডে প্রয়োজনীয় পোর্টের সংখ্যা
Apigee mTLS ১০৭০০ থেকে ১০৭৯৯ 1
Cassandra ১০১০০ থেকে ১০১৯৯ 2
মেসেজ প্রসেসর ১০৫০০ থেকে ১০৫৯৯ 2
OpenLDAP ১০২০০ থেকে ১০২৯৯ 1
Postgres ১০৩০০ থেকে ১০৩৯৯ 3
Qpid ১০৪০০ থেকে ১০৪৯৯ 2
রাউটার ১০৬০০ থেকে ১০৬৯৯ 2
ZooKeeper ১০০০১ থেকে ১০০৯৯ 3

Consul সহজ লিনিয়ার পদ্ধতিতে পোর্ট অ্যাসাইন করে। যেমন, আপনার ক্লাস্টারে দুটি Postgres নোড থাকলে, প্রথম নোড দুটি পোর্ট ব্যবহার করে, তাই Consul এটিকে ১০৩০০ এবং ১০৩০১ পোর্ট অ্যাসাইন করে। দ্বিতীয় নোডও দুটি পোর্ট ব্যবহার করে, তাই Consol সেই নোডে ১০৩০২ ও ১০৩০৩ অ্যাসাইন করে। এটি সব ধরনের কম্পোনেন্টের ক্ষেত্রে প্রযোজ্য।

আপনি দেখতে পাচ্ছেন যে, টোপোলজির উপর নির্ভর করে পোর্টের আসল সংখ্যা: আপনার ক্লাস্টারে দুটি Postgres নোড থাকলে, আপনাকে চারটি পোর্ট খুলতে হবে (দুটি নোড, প্রতিটির জন্য দুটি পোর্ট)।

এগুলি মনে রাখবেন:

  • Consul প্রক্সি Apigee পরিষেবার মতো একই পোর্টে শুনতে পারে না।
  • Consul-এর শুধুমাত্র একটি পোর্ট অ্যাড্রেস স্পেস আছে। কনসাল প্রক্সি পোর্ট অ্যাসাইনমেন্ট অবশ্যই ক্লাস্টার জুড়ে অনন্য হতে হবে, যার মধ্যে ডেটা সেন্টার অন্তর্ভুক্ত। এর অর্থ হল, হোস্ট A-তে প্রক্সি A যদি পোর্ট 15000-এ শোনে, তাহলে হোস্ট B-তে প্রক্সি B পোর্ট 15000-এ শুনতে পারবে না।
  • আগে যেমন বর্ণনা করা হয়েছে, টোপোলজির উপর নির্ভর করে ব্যবহৃত পোর্টের সংখ্যা পরিবর্তিত হয়।

মাল্টি-ডেটা সেন্টার কনফিগারেশনে, mTLS রান করা সব হোস্টকে পোর্ট ৮৩০২ খুলতে হবে।

Apigee mTLS যে ডিফল্ট পোর্ট ব্যবহার করে তা আপনি কাস্টমাইজ করতে পারবেন। এটি কীভাবে করবেন সেই সম্পর্কে তথ্যের জন্য, প্রক্সি পোর্ট রেঞ্জ কাস্টমাইজেশন দেখুন।

সীমাবদ্ধতা

Apigee mTLS-এর নিম্নলিখিত সীমাবদ্ধতা আছে:

  • ইন্টার-নোড Cassandra কমিউনিকেশন (পোর্ট ৭০০০) এনক্রিপ্ট করে না
  • কনফিগারেশন ও সেট-আপ আইডেমপোটেন্ট নয়। এর অর্থ হল, আপনি একটি নোডে কোনও পরিবর্তন করলে, আপনাকে সব নোডে একই পরিবর্তন করতে হবে; সিস্টেম আপনার হয়ে অন্য কোনও নোডে সেই পরিবর্তন প্রয়োগ করে না। আরও তথ্যের জন্য, আগে থেকে থাকা apigee-mtls কনফিগারেশন পরিবর্তন করুন দেখুন।

পরিভাষা

এই বিভাগে নিম্নলিখিত পরিভাষা ব্যবহার করা হয়:

শব্দ সংজ্ঞা
ক্লাস্টার প্রাইভেট ক্লাউড ইনস্টলেশনের জন্য আপনার Edge তৈরি করে এমন মেশিনের গ্রুপ।
Consul Apigee mTLS-এর মাধ্যমে ব্যবহৃত সার্ভিস মেশ। Consul কীভাবে আপনার Private Cloud কমিউনিকেশন সুরক্ষিত করে সেই সম্পর্কে তথ্যের জন্য, Consul-এর নিরাপত্তা মডেল দেখুন।
mTLS Mutually Authenticated TLS.
পরিষেবা মেশ একটি ওভারলে নেটওয়ার্ক (বা নেটওয়ার্কের মধ্যে নেটওয়ার্ক)।
TLS ট্রানজ্যাকশন লেয়ার সিকিউরিটি। নিরাপদ যোগাযোগের জন্য একটি ইন্ডাস্ট্রি-স্ট্যান্ডার্ড প্রমাণীকরণ প্রোটোকল।