Redis তে SSL/TLS Encryption কনফিগার করা নিরাপত্তা বাড়ানোর একটি গুরুত্বপূর্ণ পদক্ষেপ, বিশেষত যখন Redis সার্ভারটি পাবলিক বা নিরাপত্তাহীন নেটওয়ার্কে অ্যাক্সেস করা হয়। Redis, ডিফল্টভাবে, SSL/TLS সমর্থন করে না, তবে আপনি stunnel বা Redis 6.x বা তার পরবর্তী সংস্করণে SSL/TLS সক্রিয় করতে পারেন।
এখানে আমি দুটি পদ্ধতি ব্যাখ্যা করব: একটি stunnel ব্যবহার করে এবং অন্যটি সরাসরি Redis 6.x সংস্করণে SSL/TLS কনফিগার করার জন্য।
1. stunnel ব্যবহার করে Redis তে SSL/TLS Encryption কনফিগার করা
stunnel হল একটি TLS/SSL প্রোটোকল গেটওয়ে, যা SSL/TLS এনক্রিপশন প্রদান করতে সক্ষম। আপনি Redis সার্ভারের সাথে SSL/TLS যোগ করতে stunnel ব্যবহার করতে পারেন।
stunnel ইনস্টলেশন
Ubuntu/Debian-এ stunnel ইনস্টল করা:
sudo apt update sudo apt install stunnel4CentOS/RHEL-এ stunnel ইনস্টল করা:
sudo yum install stunnel
stunnel কনফিগারেশন
SSL সার্টিফিকেট তৈরি করা: Redis সার্ভারের জন্য SSL সার্টিফিকেট এবং প্রাইভেট কি তৈরি করতে:
openssl genpkey -algorithm RSA -out redis.key openssl req -new -x509 -key redis.key -out redis.crtstunnel কনফিগারেশন ফাইল তৈরি করা:
stunnelকনফিগারেশন ফাইল তৈরি করুন (/etc/stunnel/redis.conf):[redis-server] accept = 0.0.0.0:6379 connect = 127.0.0.1:6379 cert = /etc/stunnel/redis.crt key = /etc/stunnel/redis.key- এখানে
acceptপোর্টে SSL কানেকশন গ্রহণ করা হবে, এবংconnectপোর্টে মূল Redis সার্ভারের সাথে যোগাযোগ হবে। certএবংkeyফাইলের অবস্থান নির্দিষ্ট করুন, যেখানে আপনার SSL সার্টিফিকেট এবং প্রাইভেট কী রাখা হয়েছে।
- এখানে
stunnel সার্ভিস চালু করা:
stunnelকনফিগারেশন ফাইল ব্যবহার করে সার্ভিস চালু করতে:sudo stunnel /etc/stunnel/redis.confRedis সার্ভার কনফিগার করা: Redis সার্ভারের
redis.confফাইলটি খুলুন এবংbindএবংportনির্দেশিকাগুলি সেট করুন:bind 127.0.0.1 port 6379- Redis সার্ভারের জন্য
stunnelএর মাধ্যমে সংযোগ স্বয়ংক্রিয়ভাবে SSL এনক্রিপশন সহ হবে।
- Redis সার্ভারের জন্য
Redis ক্লায়েন্ট কনফিগারেশন: Redis ক্লায়েন্টে SSL সংযোগের জন্য আপনি স্ট্যান্ডার্ড Redis ক্লায়েন্ট ব্যবহার করতে পারেন, তবে ক্লায়েন্ট-এ SSL এর জন্য কনফিগারেশন করতে হবে। উদাহরণস্বরূপ,
redis-cliব্যবহার করতে:redis-cli -h <hostname> -p <ssl-port> --tls
2. Redis 6.x বা তার পরবর্তী সংস্করণে SSL/TLS কনফিগার করা
Redis 6.0 বা তার পরবর্তী সংস্করণে আপনি সরাসরি SSL/TLS কনফিগারেশন করতে পারবেন, যেটি stunnel ব্যবহার না করে Redis সার্ভারের মধ্যে SSL এনক্রিপশন চালু করতে সাহায্য করে।
Redis 6.x তে SSL/TLS কনফিগারেশন
Redis সার্ভারে SSL সক্রিয় করা: Redis সার্ভারের কনফিগারেশন ফাইল
redis.conf-এ নিচের সেটিংসগুলো যোগ করুন:tls-port 6379 tls-cert-file /etc/redis/redis.crt tls-key-file /etc/redis/redis.key tls-ca-cert-file /etc/redis/ca.crt tls-auth-clients no- tls-port: SSL/TLS সক্রিয় করার জন্য ব্যবহার করা পোর্ট।
- tls-cert-file: SSL সার্টিফিকেটের পাথ।
- tls-key-file: প্রাইভেট কী ফাইলের পাথ।
- tls-ca-cert-file: CA সার্টিফিকেট ফাইলের পাথ (যদি আপনি ক্লায়েন্টদের যাচাই করতে চান)।
- tls-auth-clients: ক্লায়েন্টদের অথেনটিকেশন সক্ষম বা অক্ষম করতে।
Redis সার্ভার পুনরায় চালু করা: Redis সার্ভারের কনফিগারেশন পরিবর্তন করার পর সার্ভার পুনরায় চালু করুন:
sudo systemctl restart redis-serverRedis ক্লায়েন্ট কনফিগারেশন: Redis ক্লায়েন্টে SSL সংযোগের জন্য, আপনাকে Redis-CLI ব্যবহার করে
--tlsঅপশন ব্যবহার করতে হবে:redis-cli -h <hostname> -p 6379 --tls --cert /etc/redis/redis.crt --key /etc/redis/redis.key --cacert /etc/redis/ca.crt--cert: সার্ভারের সার্টিফিকেট।--key: সার্ভারের প্রাইভেট কী।--cacert: ক্লায়েন্টের জন্য CA সার্টিফিকেট।
SSL/TLS কনফিগারেশন চেক করা
Redis সার্ভারের SSL সংযোগ চেক করা: Redis সার্ভারটি SSL সংযোগ গ্রহণ করছে কিনা তা চেক করতে, আপনি
redis-cliব্যবহার করতে পারেন:redis-cli -h <hostname> -p 6379 --tlsTLS/SSL সার্ভার স্ট্যাটাস চেক করা: Redis সার্ভারের SSL স্ট্যাটাস চেক করতে:
redis-server --tls
সারাংশ
Redis তে SSL/TLS Encryption কনফিগার করার মাধ্যমে আপনি ডেটা ট্রান্সমিশনের নিরাপত্তা বাড়াতে পারেন। আপনি stunnel ব্যবহার করে SSL এনক্রিপশন যুক্ত করতে পারেন, অথবা Redis 6.0 বা তার পরবর্তী সংস্করণে সরাসরি SSL/TLS সক্রিয় করে সংযোগ সুরক্ষা নিশ্চিত করতে পারেন। এই প্রক্রিয়া আপনার Redis সার্ভার এবং ক্লায়েন্টের মধ্যে ডেটা ট্রান্সফারের নিরাপত্তা ও গোপনীয়তা নিশ্চিত করতে সাহায্য করবে।
Read more