কম্পিউটার টিউটোরিয়াল

MongoDB সিকিউরিটি সেরা অনুশীলন: আপনার ডেটা এখনই সুরক্ষিত করুন

MongoDB®-এ শুরু করা সহজ। তবে এর চলমান নতুন ফিচারগুলোর সাথে আপনি বেশ কিছু সমস্যায় পড়তে পারেন। এমন একটি চিন্তার বিষয় হচ্ছে সিকিউরিটি, যা এই ব্লগের ফোকাস।

ভূমিকা

MongoDB অ্যাপ্লিকেশন Junto সিকিউরিটি বজায় রাখা ডেটাবেস অ্যাপ্লিকেশনের জন্য অত্যন্ত গুরুত্বপূর্ণ। আপনাকে লুপহোলগুলো চিহ্নিত করতে এবং ডেটাবেস বা অ্যাপ্লিকেশন সিকিউরিটির টাইপ ও মেথড জানতে হবে ডেটাবেসকে হুমকি থেকে রক্ষা করতে। Security Technical Implementation Guide (STIG) কঠোরভাবে মেনে চলা MongoDB কে বড় পরিমাণে সুরক্ষিত করতে সাহায্য করে। সময় সময়ে অডিট করাও সিস্টেম বা ডেটাবেসের মূল ত্রুটিগুলো চিহ্নিত করতে সাহায্য করে যাতে আপনি সিস্টেম বা ডেটাবেসকে বিভিন্ন হুমকি থেকে রক্ষা করতে পারেন।

এই ব্লগটি MongoDB সুরক্ষিত রাখার জন্য দশটি টিপ কভার করে।

টিপ ১: সর্বদা অথেন্টিকেশন সক্রিয় রাখুন

অথেন্টিকেশন সক্রিয় করা একটি ভালো অভ্যাস এবং MongoDB সুরক্ষিত করার সবচেয়ে সহজ উপায়। মনে রাখবেন, কখনও কখনও সক্রিয় করা সবচেয়ে সহজ সিকিউরিটি ফিচার সিস্টেমকে সর্বোচ্চ حد পর্যন্ত রক্ষা করতে পারে এবং এইভাবে সংস্থাকে মিলিয়ন ডলারের ডেটা ব্রিচ থেকে বাঁচাতে পারে।

mongod.conf কনফিগারেশন ফাইলে নিচের লাইনগুলো যোগ করুন MongoDB-এ অথেন্টিকেশন সক্রিয় করতে:

Security: Authentication: on 

নিচের ছবিটি DB-লেভেল সিকিউরিটি ইলাস্ট্রেট করে:

MongoDB সিকিউরিটি সেরা অনুশীলন: আপনার ডেটা এখনই সুরক্ষিত করুন

ছবির সোর্স: https://www.slideshare.net

টিপ ২: জটিল পাসওয়ার্ড ব্যবহার করুন

এই টিপটি শুধু সাধারণ জ্ঞান। অধিকাংশ ক্ষেত্রে, যেকোনো অ্যাপ্লিকেশন বা ডেটাবেসের জন্য ব্যবহৃত সবচেয়ে বেসিক, সিম্পল পাসওয়ার্ড হচ্ছে 12345 বা ABC123। কিন্তু এই সিম্পল পাসওয়ার্ডগুলো সিস্টেম ক্র্যাক করে মূল্যবান ডেটা চুরি করার পছন্দের অস্ত্র।

কারণ MongoDB পাসওয়ার্ডের জন্য কোনো লকআউট অপশন অফার করে না, হ্যাকাররা সহজে সিম্পল পাসওয়ার্ড চেষ্টা করে মিনিটের মধ্যে ডেটাবেস বা অ্যাপ্লিকেশন ক্র্যাক করে 안으로 ঢুকতে পারে।

টিপ ৩: ভূমিকা অনুযায়ী ইউজার অথরাইজ করুন

MongoDB ডিফল্টভাবে অ্যাক্সেস কন্ট্রোল সক্রিয় করে না। MongoDB শেল ইনিশিয়ালাইজ করার সময় --auth কিওয়ার্ড ব্যবহার করে অথরাইজেশন সক্রিয় করতে পারেন।

সবাই ডেটাবেস অ্যাডমিনিস্টার করতে পারবেন না। এমনকি ডেটাবেসে অথেন্টিকেশন সক্রিয় থাকলেও, সবাইকে অ্যাডমিনিস্ট্রেটিভ রাইট দেবেন না। বরং, সেরা অনুশীলন হিসেবে, সর্বদা কিছু rolę তৈরি করুন ইউজার অথরাইজ করার জন্য।

নির্দিষ্ট ইউজার ভূমিকা সেট আপ করা প্রতিটি ইউজারের জটিলতা কমিয়ে দেয় এবং পরবর্তী সময়ে आपদা আনার একটি অ্যাকাউন্ট ব্রিচের রিস্ক উল্লেখযোগ্যভাবে কমিয়ে দেয়।

ভূমিকা সহ একটি ইউজার তৈরি করতে, নিচের কমান্ড চালান:

db.createUser({user:"admin", pwd:"X1eL#pM0C12", roles:[{role:"userAdminAnyDatabase", db:"admin"]}) 

টিপ ৪: একটি রিপ্লিকেশন কীফাইল যোগ করুন

একটি রিপ্লিকেশন কীফাইল সক্রিয় করা MongoDB-এ স্বয়ংক্রিয়ভাবে অথেন্টিকেশন সক্রিয় করে। এই ফিচার সক্রিয় থাকলে, শুধু এই ফাইল ইনস্টল করা হোস্টগুলো রিপ্লিকা সেটে যোগদান করতে পারে।

একটি সক্রিয় রিপ্লিকেশন কীফাইল MongoDB-এ ডেটা এনক্রিপশনও নিশ্চিত করে, যা অতিরিক্ত একটি সুরক্ষা স্তর প্রদান করে। আপনি আপনার পছন্দের যেকোনো পদ্ধতিতে একটি কীফাইল জেনারেট করতে পারেন, কীফাইলটি রিপ্লিকা সেট সদস্যদের কপি করতে পারেন, এবং তারপর অ্যাক্সেস কন্ট্রোল সক্রিয় करके রিপ্লিকা সেট শুরু করতে পারেন।

mongod.conf-এ নিচের লাইনগুলো যোগ করুন রিপ্লিকেশন কীফাইল সক্রিয় করতে:

Security: KeyFile: <Path to KeyFile> 

নিচের ছবিটি কীফাইল অথেন্টিকেশন ইলাস্ট্রেট করে:

MongoDB সিকিউরিটি সেরা অনুশীলন: আপনার ডেটা এখনই সুরক্ষিত করুন

ছবির সোর্স: https://www.slideshare.net

টিপ ৫: ডিফল্ট পোর্ট ব্যবহার করবেন না

আপনার MongoDB ইনস্ট্যান্সগুলোর সাথে কানেক্ট করার জন্য কখনো ডিফল্ট পোর্ট ব্যবহার করবেন না। অধিকাংশ সময়, হ্যাকাররা শুধু ডিফল্ট বা স্ট্যান্ডার্ড পোর্ট নম্বর স্ক্যান করে আক্রমণ চালান। MongoDB ব্যবহৃত কিছু ডিফল্ট পোর্ট হচ্ছে 27017, 27018, 27019, 2700X, ইত্যাদি।

mongod.conf-এ ডিফল্ট পোর্ট নম্বরগুলো পরিবর্তন করা সহজ।

টিপ ৬: একটি ভালো ব্যাকআপ পদ্ধতি রাখুন

সবসময় নিশ্চিত করুন যে আপনার কাছে ডেটার লেটেস্ট কপি আছে যাতে আপনার অপারেশন লগ (oplog) একটি আক্রমণের মুহূর্ত থেকে পয়েন্ট-ইন-টাইম (PIT) রিকভারির জন্য প্রস্তুত থাকে।

যেকোনো ধরনের আক্রমণের জন্য একটি ফুল-প্রুফ ডিজাস্টার রিকভারি সেটআপের সাথে প্রস্তুত रहুন।

টিপ ৭: আপনার ডেটাবেসে পাবলিক অ্যাক্সেস নিষ্ক্রিয় করুন

আপনার অ্যাপ্লিকেশন রিভিউ করুন দেখতে যাতে এটি ডেটাবেসে যেকোনো এক্সটার্নাল অ্যাকাউন্ট অ্যাক্সেসের প্রয়োজন আছে কিনা। যদি এমন কোনো অ্যাকাউন্ট থাকে, তবে সেগুলোকে অথেন্টিকেশন এবং এনক্রিপশন ব্যবহার করতে সেট করুন।

আপনি mongod.conf-এ হোস্ট ইন্টারনেট প্রোটোকল (IP) অ্যাড্রেস বাইন্ড করে পাবলিক অ্যাক্সেস নিষ্ক্রিয় করতে পারেন।

টিপ ৮: অপারেটিং সিস্টেম লেভেলে ফায়ারওয়াল নিয়ম সক্রিয় করুন এবং VPN ব্যবহার করুন

ফায়ারওয়াল নেটওয়ার্কের ওপর একটি সিস্টেমে অ্যাক্সেস ফিল্টার এবং কন্ট্রোল করার জন্য একটি অতিরিক্ত সুরক্ষা স্তর প্রদান করে। MongoDB সার্ভারগুলোর ওপর, হোস্ট বা ক্লাউড হোস্টিং-এ সিকিউরিটি গ্রুপগুলোর ওপর ফায়ারওয়াল নিয়ম সক্রিয় করুন।

সবসময় নিশ্চিত করুন যে আপনি শুধু বিশ্বস্ত সোর্সগুলোর কাছে mongod ইনস্ট্যান্সগুলোর অ্যাক্সেস দিচ্ছেন। IP অ্যাড্রেস বা পোর্ট রেঞ্জ বাধা দিন সার্ভারগুলোর জন্য ক্লাউড হোস্টিং আরও সুরক্ষিত করতে।

VPN ব্যবহার করুন আপনার ডেটাবেস সিস্টেমে সার্টিফাইড অ্যাক্সেস প্রদানের জন্য বিভিন্ন লেভেলের এনক্রিপশন, একাধিক লেভেলের অথেন্টিকেশন, এবং সব ক্লায়েন্টের জন্য অথরাইজেশন।

টিপ ৯: ডেটাবেস সিস্টেমকে নিয়মিত অডিট করুন সিকিউরিটি ইস্যুর জন্য

ডেটাবেস বা হোস্ট সিস্টেমকে নিয়মিত অডিট করুন দেখতে যে কীভাবে কোনো ব্রিচ আছে কিনা অথবা কোনো ইউজার অ্যাকাউন্ট তাদের ভূমিকা এবং বিশেষাধিকার বাদে এলিভেটেড প্রিভিলেজ দিয়েছে কিনা।

যদি টেস্টিং উদ্দেশ্যে এলিভেটেড প্রিভিলেজ দেওয়া হয়েছিল, তবে সিস্টেমকে পুনরায় সুরক্ষিত করতে সেগুলো রিভোক করা নিশ্চিত করুন।

টিপ ১০: বাইরের দিক থেকে ডেটাবেস অ্যাক্সেস যাচাই ও পরীক্ষা করুন

আপনি বা আপনার টিম পেনিট্রেশন টেস্টিং বা SQL ইনজেকশন ব্যবহার করে ডেটাবেস সিস্টেমকে সিকিউরিটি ইস্যুর জন্য পরীক্ষা করুন দেখতে যে কি সেগুলো সিস্টেম এক্সপ্লอยিট করতে পারে। নিশ্চিত করুন যে বাইরের জগত থেকে আপনার ডেটাবেসে কিছু এক্সপোজড নেই।

আপনি এই টেস্টের জন্য অনেক টুল ব্যবহার করতে পারেন, যেমন nmap, telnet, ইত্যাদি।

উপসংহার

এই ব্লগটি আপনাকে ডেইলি MongoDB অ্যাডমিনিস্ট্রেশনের জন্য কিছু বেসিক সিকিউরিটি অনুশীলন কনফিগার করতে সাহায্য করে। আপনার MongoDB ডেটাবেস অ্যাপ্লিকেশন সুরক্ষিত করতে এই টিপস এবং বর্ণিত টুলগুলো ব্যবহার করুন।

আপনি MongoDB Monitoring Service (MMS)-ও ব্যবহার করতে পারেন অধিকাংশ সিকিউরিটি-সম্পর্কিত ফিচার মনিটর এবং কনফিগার করতে mongo শেল ব্যবহার করার পরিবর্তে।

ফিডব্যাক ট্যাব ব্যবহার করে যেকোনো মন্তব্য বা প্রশ্ন করুন।

আমাদের সার্টিফাইড ডেটাবেস অ্যাডমিনিস্ট্রেটর এবং ডেটাবেস সার্ভিস সম্পর্কে আরও জানুন।

  1. ব্রাউজারের সিকিউরিটি কঠোর করার ৫ টিপস

  2. MongoDB টিপস: পার্ট ১ - উন্নত ডেটাবেস ব্যবস্থাপনার জন্য অপরিহার্য কৌশল

  3. উন্নত MongoDB অপ্টিমাইজেশন: পার্ট ২

  4. ObjectRocket MongoDB জিরো-ডে ভালনারেবিলিটি (CVE-2013-1892) প্যাচ রিলিজ করেছে