Apigee mTLS-এর ভূমিকা

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

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

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

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

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

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

সোর্স গন্তব্য
ম্যানেজমেন্ট সার্ভার রাউটার, 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 পরিষেবা মেশে কনসাল সার্ভার থাকে যা আপনার ক্লাস্টারের প্রতিটি ZooKeeper নোডে এবং ক্লাস্টারের প্রতিটি নোডে নিম্নলিখিত কনসাল পরিষেবা চলে:

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

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

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

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

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

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

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

টপোলজি সংক্রান্ত প্রয়োজনীয়তা

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

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

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. কনফিগারেশন ফাইল আপডেট ও ডিস্ট্রিবিউট করুন।

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

  • নিশ্চিত করুন যে আপনার কাছে এটির রুট অ্যাক্সেস আছে।
  • Edge apigee-setup ইউটিলিটি ইনস্টল করুন লিঙ্কে যেভাবে বর্ণনা করা হয়েছে সেইভাবে apigee-service ও 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 Server 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 নোড) রান করা নোডগুলিকে apigee-mtls পরিষেবা রান করা ক্লাস্টারের সব মেম্বারদের জন্য পোর্ট ৮৩০১, ৮৩০২, ৮৫০২ ও ৮৫০৩ খুলতে হবে। এমনকি ডেটা সেন্টার জুড়েও এটি করতে হবে। যেসব নোডে ZooKeeper রান করছে না, সেগুলিতে এই পোর্টগুলি খোলার প্রয়োজন নেই।

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

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

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

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

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

নিম্নলিখিত বিষয়গুলি মনে রাখবেন:

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

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

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

সীমাবদ্ধতা

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

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

পরিভাষা

এই বিভাগে নিম্নলিখিত শব্দগুলি ব্যবহার করা হয়েছে:

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