Redis তে Authentication এবং Authorization কনফিগার করা

Security in Redis - রেডিস (Redis) - Database Tutorials

358

Redis তে Authentication এবং Authorization কনফিগারেশন গুরুত্বপূর্ণ সুরক্ষা ব্যবস্থা, যা Redis সার্ভারে অ্যাক্সেস কন্ট্রোল এবং ডেটার নিরাপত্তা নিশ্চিত করতে সহায়তা করে। Redis-এ Authentication এবং Authorization কনফিগার করার মাধ্যমে, আপনি সার্ভারের অযাচিত অ্যাক্সেস সীমিত করতে পারেন এবং নিশ্চিত করতে পারেন যে শুধুমাত্র অনুমোদিত ব্যবহারকারীরা ডেটা অ্যাক্সেস করতে পারে।


1. Redis Authentication (পাসওয়ার্ড দিয়ে সুরক্ষা)

Redis-এ Authentication এর মাধ্যমে আপনি একটি পাসওয়ার্ড সেট করতে পারেন, যার মাধ্যমে ব্যবহারকারী শুধুমাত্র পাসওয়ার্ড প্রদান করলে Redis সার্ভারে অ্যাক্সেস করতে পারবে।

Authentication কনফিগারেশন:

Redis-এ পাসওয়ার্ড সেট করার জন্য আপনাকে redis.conf কনফিগারেশন ফাইলে requirepass প্যারামিটার ব্যবহার করতে হবে। এটি Redis সার্ভারে অ্যাক্সেসের জন্য একটি পাসওয়ার্ড নির্ধারণ করবে।

কনফিগারেশন:

  1. redis.conf ফাইল খুলুন:

    sudo nano /etc/redis/redis.conf
    
  2. requirepass প্যারামিটারটি যোগ করুন: পাসওয়ার্ড সেট করতে, requirepass প্যারামিটারটি ব্যবহার করুন এবং পাসওয়ার্ড উল্লেখ করুন। উদাহরণ:

    requirepass mystrongpassword
    
  3. Redis সার্ভার রিস্টার্ট করুন: কনফিগারেশন পরিবর্তনের পরে Redis সার্ভার রিস্টার্ট করতে হবে:

    sudo systemctl restart redis
    

Authentication পরীক্ষা:

Redis CLI-তে সঠিক পাসওয়ার্ড দিয়ে অ্যাক্সেস পরীক্ষা করতে:

redis-cli
auth mystrongpassword

পাসওয়ার্ড সঠিক হলে Redis সার্ভার আপনাকে সফলভাবে সংযুক্ত করবে।

অথেনটিকেশন ব্যর্থ হলে:

যদি ভুল পাসওয়ার্ড প্রদান করেন, Redis আপনাকে ERR Client sent AUTH, but no password is set এরকম একটি ত্রুটি বার্তা প্রদর্শন করবে।


2. Redis Authorization (অ্যাক্সেস কন্ট্রোল)

Redis-এর নিজস্ব authorization ব্যবস্থা খুব সীমিত। Redis-এ কিছু ধরনের role-based authorization বা "multiple users" কনসেপ্ট নেই, তবে আপনি কিছু সাধারণ কনফিগারেশন দ্বারা সার্ভারের অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন। Redis-এ authorization মূলত read-only access এবং write access নির্ধারণে সীমাবদ্ধ।

Read-Only Access সেট করা:

Redis সার্ভারে শুধুমাত্র পড়ার (read-only) অনুমতি দিতে, আপনি readonly প্যারামিটারটি ব্যবহার করতে পারেন।

কনফিগারেশন:

  1. redis.conf ফাইল খুলুন:

    sudo nano /etc/redis/redis.conf
    
  2. readonly প্যারামিটার সেট করুন: যদি আপনি একটি রেপ্লিকা (slave) সার্ভার সেটআপ করছেন এবং শুধুমাত্র পড়ার অনুমতি দিতে চান, তাহলে readonly প্যারামিটারটি ব্যবহার করতে হবে:

    readonly yes
    

    এর ফলে রেপ্লিকা সার্ভারটি শুধুমাত্র ডেটা পড়তে পারবে, লেখার (write) অপারেশন করতে পারবে না।

Authorization with ACL (Access Control List):

Redis 6.0 এর পর, Redis-এ ACL (Access Control List) ব্যবহার করে উন্নত authorization কনফিগার করা সম্ভব হয়েছে। এটি ব্যবহারকারীদের নির্দিষ্ট অধিকার দেয়, যেমন read-only, read-write, বা admin

ACL-এ Authorization কনফিগারেশন:
  1. Redis 6 বা তার পরবর্তী সংস্করণে ACL চালু করা: ACL ব্যবহার করতে হলে, redis.conf ফাইলে aclfile প্যারামিটারটি নির্ধারণ করতে হবে।

    উদাহরণ:

    aclfile /etc/redis/users.acl
    
  2. ACL ফাইল তৈরি এবং ব্যবহারকারীদের অনুমতি সেট করা: একটি নতুন ACL ফাইল তৈরি করুন যেখানে বিভিন্ন ব্যবহারকারীর জন্য permissions নির্ধারণ করা যাবে।

    users.acl ফাইলের উদাহরণ:

    user default on >password ~* +@all
    user read_only_user on ~* +get +keys -set
    user admin_user on >adminpassword ~* +@admin +@all
    

    এখানে:

    • default ব্যবহারকারীর জন্য একটি পাসওয়ার্ড সেট করা হয়েছে এবং সমস্ত কমান্ডের অনুমতি রয়েছে।
    • read_only_user ব্যবহারকারীর জন্য শুধুমাত্র GET এবং KEYS কমান্ডের অনুমতি দেওয়া হয়েছে, কিন্তু SET কমান্ড নিষিদ্ধ করা হয়েছে।
    • admin_user ব্যবহারকারীর জন্য সমস্ত কমান্ডের পূর্ণ অনুমতি এবং admin গ্রুপের অধিকার রয়েছে।
  3. Redis সার্ভার রিস্টার্ট করুন: কনফিগারেশন পরিবর্তনের পর Redis সার্ভার রিস্টার্ট করতে হবে:

    sudo systemctl restart redis
    
  4. ACL পরীক্ষা: নতুন ব্যবহারকারীর অ্যাক্সেস পরীক্ষা করার জন্য Redis CLI-এ auth কমান্ড দিয়ে পাসওয়ার্ড দিয়ে সংযোগ করুন এবং অনুমতি পরীক্ষা করুন।

3. Redis-এর সাথে নিরাপত্তা উন্নত করার জন্য অতিরিক্ত পদক্ষেপ

  • ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS/SSL): Redis ডিফল্টভাবে এনক্রিপশন সমর্থন করে না, তবে আপনি TLS/SSL ব্যবহার করে Redis সংযোগ নিরাপদ করতে পারেন।
  • Firewall Rules: Redis সাধারণত 6379 পোর্টে চলে, তবে আপনি সার্ভারের ফায়ারওয়ালে Redis পোর্টটি ব্লক করতে পারেন এবং শুধুমাত্র নির্দিষ্ট IP ঠিকানাগুলি থেকে অ্যাক্সেস অনুমোদন করতে পারেন।
  • Disable commands: Redis-এর কিছু কমান্ড যেমন FLUSHDB, FLUSHALL বিপজ্জনক হতে পারে, তাই আপনি rename-command ব্যবহার করে কমান্ডগুলিকে নিষ্ক্রিয় করতে পারেন।

    উদাহরণ:

    rename-command FLUSHDB ""
    rename-command FLUSHALL ""
    

সারাংশ

  • Authentication: Redis-এ requirepass ব্যবহার করে পাসওয়ার্ড সেট করা হয়, যাতে শুধুমাত্র অনুমোদিত ব্যবহারকারীরা অ্যাক্সেস করতে পারে।
  • Authorization: Redis-এর ACL ব্যবহারের মাধ্যমে বিভিন্ন ব্যবহারকারীর জন্য ভিন্ন ভিন্ন অধিকার দেওয়া যায়, যেমন read-only বা full access।
  • Redis সিকিউরিটি উন্নত করতে firewall rules, TLS/SSL এবং command renaming পদ্ধতিও ব্যবহার করা যেতে পারে।
Content added By
Promotion

Are you sure to start over?

Loading...