অ্যাপাচি সলর (Apache Solr) একটি ওপেন-সোর্স সার্চ প্ল্যাটফর্ম যা Apache Lucene লাইব্রেরির উপর ভিত্তি করে তৈরি এবং এটি ডিস্ট্রিবিউটেড সার্চ, ইনডেক্সিং, এবং ডেটা অ্যানালাইসিসের জন্য ব্যবহৃত হয়। সলরের মাধ্যমে ইনডেক্স করা ডেটা এবং সার্চ কুয়েরি অনলাইনে ট্রান্সফার করা হয়, এবং এটি নিরাপদ এবং সুরক্ষিত রাখতে SSL/TLS (Secure Sockets Layer / Transport Layer Security) ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ।
SSL/TLS হল একটি ক্রিপ্টোগ্রাফিক প্রোটোকল যা ডেটার নিরাপত্তা নিশ্চিত করে এবং সার্ভার এবং ক্লায়েন্টের মধ্যে ডেটা ট্রান্সমিশনকে এনক্রিপ্ট করে। সলরের মাধ্যমে SSL/TLS ব্যবহার করে ডেটা এনক্রিপশন সেটআপ করা হয়, যাতে সার্চ কুয়েরি এবং রেসপন্স নিরাপদভাবে ট্রান্সফার করা যায়।
এই টিউটোরিয়ালে, আমরা Solr SSL/TLS কনফিগারেশন এবং ডেটা এনক্রিপশন সেটআপের প্রক্রিয়া নিয়ে আলোচনা করব।
SSL/TLS এর মাধ্যমে Data Encryption in Solr
SSL/TLS সলরে HTTPS প্রোটোকল ব্যবহার করে নিরাপদ যোগাযোগ প্রতিষ্ঠা করে। SSL সাধারণত ওয়েব সার্ভার এবং ক্লায়েন্টের মধ্যে ডেটার গোপনীয়তা এবং নিরাপত্তা নিশ্চিত করতে ব্যবহৃত হয়, বিশেষ করে যখন সংবেদনশীল তথ্য যেমন পাসওয়ার্ড, ক্রেডিট কার্ড নম্বর বা ব্যক্তিগত তথ্য ট্রান্সফার করা হয়।
SSL/TLS কনফিগারেশন প্রক্রিয়া:
SSL/TLS সলরে কনফিগার করতে আপনাকে প্রথমে সার্টিফিকেট এবং কী তৈরি করতে হবে, তারপর সেগুলি সলরের কনফিগারেশনে অ্যাড করতে হবে।
Step 1: SSL/TLS Certificate Generation
SSL/TLS সুরক্ষিত সংযোগ প্রতিষ্ঠা করার জন্য একটি SSL Certificate এবং Private Key প্রয়োজন। আপনি যদি একটি পাবলিক সার্টিফিকেট ব্যবহার করতে চান, তবে Certificate Authority (CA) থেকে সার্টিফিকেট পেতে হবে। আপনি যদি self-signed certificate তৈরি করতে চান, তবে এটি OpenSSL বা Java Keytool ব্যবহার করে তৈরি করা যেতে পারে।
Self-Signed Certificate Creation using OpenSSL:
openssl genpkey -algorithm RSA -out solr.key -pkeyopt rsa_keygen_bits:2048
openssl req -new -key solr.key -out solr.csr
openssl x509 -req -in solr.csr -signkey solr.key -out solr.crt
এখানে:
- solr.key: প্রাইভেট কি।
- solr.crt: সার্টিফিকেট ফাইল।
Step 2: Configuring SSL/TLS in Solr
সলরে SSL কনফিগার করতে সলরের jetty সার্ভারের কনফিগারেশন ফাইল jetty-ssl.xml ব্যবহার করতে হয়। আপনি সলরের solr.in.sh অথবা solr.in.cmd ফাইলের মাধ্যমে SSL/TLS সক্রিয় করতে পারবেন।
Configuring Jetty for SSL:
Solr Configuration File Update: সলরের
solr.in.sh(Linux) অথবাsolr.in.cmd(Windows) ফাইলে SSL সংক্রান্ত কনফিগারেশন অ্যাড করুন।Example (Linux):
SOLR_SSL_ENABLED=true SOLR_SSL_KEY_STORE=/<path-to-solr-dir>/solr.key SOLR_SSL_KEY_STORE_PASSWORD=changeit SOLR_SSL_TRUST_STORE=/<path-to-solr-dir>/solr.crt SOLR_SSL_TRUST_STORE_PASSWORD=changeit SOLR_SSL_NEED_CLIENT_AUTH=false SOLR_SSL_WANT_CLIENT_AUTH=falseএখানে:
- SOLR_SSL_ENABLED=true: SSL সক্রিয় করা হবে।
- SOLR_SSL_KEY_STORE: সলরের প্রাইভেট কী ফাইলের অবস্থান।
- SOLR_SSL_TRUST_STORE: সার্টিফিকেট ফাইলের অবস্থান।
Jetty SSL Configuration File: jetty-ssl.xml ফাইলটি সলরের conf/ ডিরেক্টরিতে পাওয়া যাবে। এখানে, আপনি সার্টিফিকেট এবং প্রাইভেট কী ফাইলের পথ উল্লেখ করতে পারবেন।
Example (jetty-ssl.xml):
<Call name="addConnector"> <Arg> <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> <Arg name="port" type="int"><Property name="jetty.port" default="8983"/></Arg> <Set name="maxIdleTime">300000</Set> <Set name="keystore">/<path-to-solr-dir>/solr.key</Set> <Set name="keyPassword">changeit</Set> <Set name="truststore">/<path-to-solr-dir>/solr.crt</Set> <Set name="trustPassword">changeit</Set> <Set name="needClientAuth">false</Set> </New> </Arg> </Call>
Step 3: Starting Solr with SSL
SSL কনফিগার করার পর সলর সার্ভারটি HTTPS প্রোটোকল ব্যবহার করে শুরু করতে হবে।
bin/solr start -Djetty.ssl=true
এটি সলর সার্ভারকে SSL সক্রিয় করে চালু করবে, এবং আপনি HTTPS প্রোটোকল ব্যবহার করে সলর অ্যাডমিন প্যানেল অ্যাক্সেস করতে পারবেন।
https://localhost:8983/solr
Step 4: Verifying SSL Configuration
SSL কনফিগারেশন সফলভাবে সম্পন্ন হয়েছে কিনা যাচাই করতে, সলরের admin interface বা API থেকে HTTPS ব্যবহার করে সলর সার্ভার চেক করুন।
curl -k https://localhost:8983/solr/admin/info/system
এটি সার্ভারের সিস্টেম সম্পর্কিত তথ্য প্রদান করবে, যেখানে SSL/TLS কনফিগারেশন যাচাই করা যাবে।
Advantages of Using SSL/TLS in Solr
- Data Security: SSL/TLS এনক্রিপশন ডেটার নিরাপত্তা নিশ্চিত করে, বিশেষ করে যখন সলরের সার্চ কুয়েরি এবং রেসপন্স ওয়েব সার্ভারের মাধ্যমে ট্রান্সফার হয়।
- Privacy Protection: এটি নিশ্চিত করে যে সার্চ রিকোয়েস্ট এবং রেসপন্স ট্রান্সমিশনের সময় অন্য কেউ ডেটা দেখতে বা মডিফাই করতে পারবে না।
- Compliance: অনেক প্রতিষ্ঠান বা প্রশাসনিক প্রতিষ্ঠানের জন্য ডেটা এনক্রিপশন একটি বাধ্যতামূলক নিরাপত্তা ব্যবস্থা (যেমন GDPR বা HIPAA) হতে পারে।
- Authentication: SSL/TLS সার্টিফিকেট ক্লায়েন্ট এবং সার্ভারের মধ্যে পারস্পরিক বিশ্বাসযোগ্যতা যাচাই করে, যা অ্যাপ্লিকেশন নিরাপদ করতে সহায়তা করে।
Conclusion
SSL/TLS Encryption সলরে ডেটার নিরাপত্তা এবং গোপনীয়তা নিশ্চিত করতে একটি অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য। এটি ডেটা ট্রান্সফার চলাকালে এনক্রিপশন প্রদান করে, যা সার্চ কুয়েরি এবং রেসপন্সের নিরাপত্তা বৃদ্ধি করে। সলরে SSL কনফিগার করা হলে এটি HTTPS প্রোটোকল ব্যবহার করে সমস্ত ডেটা ট্রান্সফার সুরক্ষিত রাখে, যা সিস্টেমের নিরাপত্তা এবং স্কেলেবিলিটি উন্নত করতে সহায়তা করে।
Read more