Kerberos হল একটি কম্পিউটার নেটওয়ার্ক অথেন্টিকেশন প্রোটোকল যা নিরাপদভাবে একে অপরের পরিচয় নিশ্চিত করতে ব্যবহৃত হয়। Hadoop ইকোসিস্টেমে, যেখানে অনেকগুলো ডিস্ট্রিবিউটেড সিস্টেমের মধ্যে ডেটা শেয়ার এবং প্রক্রিয়া করা হয়, নিরাপত্তা খুবই গুরুত্বপূর্ণ। Hadoop-এ Kerberos ইন্টিগ্রেশন ব্যবহার করে নিরাপত্তা নিশ্চিত করা হয়, যা হাদুপ ক্লাস্টারের মধ্যে Authentication, Authorization, এবং Confidentiality নিশ্চিত করতে সাহায্য করে।
Kerberos কী?
Kerberos একটি সিকিউরিটি প্রোটোকল যা ব্যবহারকারীদের এবং সার্ভিসদের একে অপরকে পরিচিত করার জন্য ডিজাইন করা হয়েছে। এটি একে অপরের সাথে নিরাপদভাবে যোগাযোগ করতে সক্ষম করে এবং একটি নিরাপদ অথেন্টিকেশন মেকানিজম সরবরাহ করে। Hadoop ক্লাস্টারের প্রতিটি নোড এবং ব্যবহারকারীকে আগে থেকেই অথেন্টিকেট করা হয়, যাতে শুধুমাত্র অনুমোদিত পক্ষই ডেটার অ্যাক্সেস পেতে পারে।
Hadoop এবং Kerberos এর মধ্যে ইন্টিগ্রেশন
Hadoop-এ Kerberos ব্যবহার করার মাধ্যমে আমরা নিশ্চিত করতে পারি যে ডেটা এবং রিসোর্সের অ্যাক্সেস শুধুমাত্র অনুমোদিত ব্যবহারকারীদের কাছে সীমাবদ্ধ থাকবে। Hadoop-এর বিভিন্ন উপাদান যেমন HDFS, YARN, Hive, HBase, Spark, ইত্যাদি Kerberos এর মাধ্যমে অথেন্টিকেট করা যেতে পারে। যখন একটি Kerberos প্রটোকল Hadoop ক্লাস্টারে ইন্টিগ্রেট করা হয়, তখন ক্লাস্টারের সব কম্পোনেন্টের মধ্যে যোগাযোগ নিরাপদ হয়।
Hadoop এ Kerberos Integration-এ নিরাপত্তা ব্যবস্থা
1. Authentication (অথেন্টিকেশন)
Kerberos প্রোটোকল Authentication প্রক্রিয়াকে সম্পাদন করে, যা নিশ্চিত করে যে হাদুপ ক্লাস্টারের মধ্যে কোনো ব্যবহারকারী বা সিস্টেম নির্দিষ্ট সেবা ব্যবহার করতে পারবে শুধুমাত্র যদি তার পরিচয় সঠিক হয়। যখন একটি ব্যবহারকারী বা সার্ভিস ক্লাস্টারে সংযোগ করার চেষ্টা করে, Kerberos সেটি একটি টিকিট প্রদান করে, যা দিয়ে তাদের শনাক্ত করা হয়।
Kerberos Authentication Workflow:
- Client Request: ক্লায়েন্ট একটি সেবা অ্যাক্সেস করার জন্য একটি টিকিট পান।
- Authentication Server (AS): ক্লায়েন্ট যখন সেবা অ্যাক্সেস করতে চায়, তখন Authentication Server (AS) সঠিকভাবে প্রমাণীকরণ করে এবং টিকিট প্রদান করে।
- Ticket Granting Ticket (TGT): AS সঠিকভাবে ক্লায়েন্টের পরিচয় নিশ্চিত করলে, একটি TGT প্রদান করে।
- Service Ticket: ক্লায়েন্টটি যখন একটি নির্দিষ্ট সেবার জন্য টিকিট চায়, তখন এটি Ticket Granting Service (TGS)-এ যোগাযোগ করে। TGS সঠিক সার্ভিস টিকিট প্রদান করে, যা ব্যবহারকারী বা সার্ভিসকে সেবাটি ব্যবহার করার অনুমতি দেয়।
2. Authorization (অধিকার প্রদান)
Authorization নিশ্চিত করে যে শুধুমাত্র অনুমোদিত ব্যবহারকারীরা বা সিস্টেম গুলি নির্দিষ্ট কার্যক্রম করতে পারবে। Kerberos ব্যবহারকারীর পরিচয়ের সঙ্গে সুনির্দিষ্ট রোল বা অধিকার যুক্ত করে দেয়, যেমন কোন ব্যবহারকারী কোন ডেটাতে অ্যাক্সেস পাবে এবং কোন কাজগুলো করতে পারবে।
3. Confidentiality (গোপনীয়তা)
Kerberos-এর মাধ্যমে সমস্ত ডেটা সংক্রমণকে এনক্রিপ্ট করা হয়, যাতে মধ্যবর্তী কোনো পক্ষ ডেটাটি আক্রমণ করতে না পারে। এটি Confidentiality নিশ্চিত করে, যার মাধ্যমে সিস্টেমের মধ্যে প্রেরিত সমস্ত ডেটা সুরক্ষিত থাকে।
Hadoop ক্লাস্টারে Kerberos ইন্টিগ্রেশন কনফিগারেশন
Kerberos KDC (Key Distribution Center) কনফিগারেশন:
- Kerberos KDC Setup: Kerberos Key Distribution Center (KDC) সেটআপ করতে হবে, যা হাদুপ ক্লাস্টারের সকল ব্যবহারকারী এবং সার্ভিসের জন্য টিকিট প্রদান করবে। এটি সাধারণত krb5.conf ফাইলে কনফিগার করা হয়।
- KDC Configuration Example:
[realms]
EXAMPLE.COM = {
kdc = kerberos.example.com
admin_server = kerberos.example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
Hadoop Configuration for Kerberos Authentication:
- hdfs-site.xml:
<configuration>
<property>
<name>dfs.namenode.kerberos.principal</name>
<value>hdfs/your-namenode-host@EXAMPLE.COM</value>
</property>
<property>
<name>dfs.datanode.kerberos.principal</name>
<value>hdfs/your-datanode-host@EXAMPLE.COM</value>
</property>
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
</configuration>
- core-site.xml:
<configuration>
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode-host:9000</value>
</property>
</configuration>
- hadoop-env.sh:
export HADOOP_OPTS="$HADOOP_OPTS -Djava.security.auth.login.config=/etc/hadoop/conf/jaas.conf"
- JAAS Configuration:
jaas.confফাইল ব্যবহার করে Kerberos অ্যাথেন্টিকেশন কনফিগার করতে হবে।
Client {
com.sun.security.auth.module.Krb5LoginModule required
principal="user@EXAMPLE.COM"
keyTab="/path/to/keytab";
};
Hadoop সিস্টেমের অন্যান্য কম্পোনেন্টের জন্য Kerberos কনফিগারেশন:
HDFS, YARN, Hive, HBase ইত্যাদির জন্য তাদের respective configuration files-এ Kerberos অথেন্টিকেশন কনফিগার করা হয়। উদাহরণস্বরূপ:
- YARN:
<property>
<name>yarn.resourcemanager.kerberos.principal</name>
<value>yarn/your-rm-host@EXAMPLE.COM</value>
</property>
Kerberos এর সুবিধা
- নিরাপত্তা: Kerberos অ্যাথেন্টিকেশন এবং এনক্রিপশনের মাধ্যমে ডেটার নিরাপত্তা নিশ্চিত করে।
- ডিস্ট্রিবিউটেড সিস্টেমের জন্য উপযুক্ত: Hadoop-এর মতো ডিস্ট্রিবিউটেড সিস্টেমে Kerberos কার্যকরভাবে নিরাপত্তা পরিচালনা করতে সক্ষম।
- ট্রাস্টেড সিস্টেম: হাদুপ ক্লাস্টারের মধ্যে সমস্ত সার্ভিসের মধ্যে নিরাপদ যোগাযোগের জন্য Kerberos একটি ট্রাস্টেড অথেন্টিকেশন মেকানিজম সরবরাহ করে।
সারাংশ
Kerberos-এর মাধ্যমে Hadoop ক্লাস্টারে নিরাপত্তা নিশ্চিত করা যায়। এটি Authentication, Authorization, এবং Confidentiality নিশ্চিত করার জন্য প্রয়োজনীয় নিরাপত্তা ব্যবস্থা প্রদান করে। Hadoop সিস্টেমের প্রতিটি কম্পোনেন্টে Kerberos ইন্টিগ্রেশন নিরাপদ এবং কার্যকরী ডেটা ট্রান্সফার, ব্যবহারকারীর প্রবেশাধিকার নিয়ন্ত্রণ এবং সিস্টেমের মধ্যে নিরাপদ যোগাযোগ সক্ষম করে।
Read more