MongoDB® के साथ शुरुआत करना आसान है। हालांकि, आप इसकी नई सुविधाओं के साथ कई समस्याओं का सामना कर सकते हैं जो निरंतर आधार पर उभरती हैं। सुरक्षा ऐसा ही एक चिंता का क्षेत्र है, जो इस ब्लॉग का फोकस है।
परिचय
MongoDB एप्लिकेशन के साथ सुरक्षा बनाए रखना डेटाबेस एप्लिकेशन के लिए महत्वपूर्ण है। आपको लूप होल की पहचान करने और डेटाबेस या एप्लिकेशन सुरक्षा के प्रकारों और विधियों को जानने में सक्षम होना चाहिए ताकि डेटाबेस को खतरों से बचाया जा सके। सुरक्षा तकनीकी कार्यान्वयन गाइड (STIG) का सख्ती से पालन करने से MongoDB को काफी हद तक सुरक्षित करने में मदद मिलती है। समय-समय पर ऑडिटिंग भी सिस्टम या डेटाबेस में प्रमुख खामियों की पहचान करने में मदद करती है ताकि आप सिस्टम या डेटाबेस को विभिन्न खतरों से बचा सकें।
यह ब्लॉग MongoDB को सुरक्षित रखने के लिए दस टिप्स को कवर करता है।
टिप 1: हमेशा ऑथेंटिकेशन सक्षम करें
ऑथेंटिकेशन सक्षम करना एक अच्छा अभ्यास है और MongoDB को सुरक्षित करने का सबसे सरल तरीका है। याद रखें, कभी-कभी सक्षम की गई सबसे सरल सुरक्षा सुविधा सिस्टम को उसकी अधिकतम सीमा तक सुरक्षित कर सकती है और इस प्रकार संगठन को डेटा उल्लंघन से बचा सकती है जिसकी लागत लाखों डॉलर हो सकती है।
MongoDB में ऑथेंटिकेशन सक्षम करने के लिए mongod.conf कॉन्फ़िगरेशन फाइल में निम्नलिखित पंक्तियाँ जोड़ें:
Security:
Authentication: on
निम्नलिखित छवि DB-स्तरीय सुरक्षा को दर्शाती है:
छवि स्रोत: https://www.slideshare.net
टिप 2: जटिल पासवर्ड का उपयोग करें
यह टिप केवल सामान्य ज्ञान है। ज्यादातर मामलों में, किसी भी एप्लिकेशन या डेटाबेस के लिए उपयोग किया जाने वाला सबसे बुनियादी, सरल पासवर्ड 12345 या ABC123 है। हालांकि, ये सरल पासवर्ड सिस्टम को क्रैक करने और मूल्यवान डेटा चुराने के लिए पसंद का हथियार हैं।
चूंकि MongoDB पासवर्ड के लिए किसी लॉकआउट विकल्प की पेशकश नहीं करता है, इसलिए हैकर्स के लिए सबसे सरल पासवर्ड आज़माकर मिनटों में डेटाबेस या एप्लिकेशन को क्रैक करना और उसमें घुसना आसान है।
टिप 3: भूमिकाओं द्वारा उपयोगकर्ताओं को अधिकृत करें
MongoDB डिफ़ॉल्ट रूप से एक्सेस कंट्रोल सक्षम नहीं करता है। आप MongoDB शेल को इनिशियलाइज़ करते समय कीवर्ड --auth का उपयोग करके ऑथोराइज़ेशन सक्षम कर सकते हैं।
हर किसी को डेटाबेस एडमिनिस्ट्रेट नहीं करना चाहिए। भले ही डेटाबेस में ऑथेंटिकेशन सक्षम हो, सभी को प्रशासनिक अधिकार न दें। इसके बजाय, सर्वोत्तम अभ्यास के रूप में, उपयोगकर्ताओं को अधिकृत करने के लिए हमेशा कुछ भूमिकाएं बनाएं।
कुछ उपयोगकर्ता भूमिकाएं स्थापित करने से प्रत्येक उपयोगकर्ता के लिए जटिलता कम हो जाती है और बाद में आपदा का कारण बनने वाले खाते के उल्लंघन का जोखिम बहुत कम हो जाता है।
भूमिका के साथ एक उपयोगकर्ता बनाने के लिए, निम्नलिखित कमांड चलाएं:
db.createUser({user:"admin", pwd:"X1eL#pM0C12", roles:[{role:"userAdminAnyDatabase", db:"admin"}]})
टिप 4: एक रीप्लिकेशन कीफाइल जोड़ें
एक रीप्लिकेशन कीफाइल को सक्षम करने से MongoDB में ऑथेंटिकेशन स्वचालित रूप से सक्षम हो जाता है। इस सुविधा के सक्षम होने के साथ, केवल वे होस्ट जिनमें यह फाइल स्थापित है, रीप्लिका सेट में शामिल हो सकते हैं।
एक सक्षम रीप्लिकेशन कीफाइल MongoDB में डेटा एन्क्रिप्शन भी सुनिश्चित करती है, जो सुरक्षा की एक अतिरिक्त परत प्रदान करती है। आप अपनी पसंद की किसी भी विधि का उपयोग करके एक कीफाइल जनरेट कर सकते हैं, कीफाइल को रीप्लिका सेट सदस्यों में कॉपी कर सकते हैं, और फिर एक्सेस कंट्रोल सक्षम के साथ रीप्लिका सेट शुरू कर सकते हैं।
mongod.conf में निम्नलिखित पंक्तियाँ जोड़कर रीप्लिकेशन कीफाइल को सक्षम करें:
Security:
KeyFile: <KeyFile का पथ>
निम्नलिखित छवि कीफाइल ऑथेंटिकेशन को दर्शाती है:
छवि स्रोत: https://www.slideshare.net
टिप 5: डिफ़ॉल्ट पोर्ट का उपयोग न करें
अपने MongoDB इंस्टेंस से कनेक्ट करने के लिए कभी भी किसी डिफ़ॉल्ट पोर्ट का उपयोग न करें। ज्यादातर समय, हैकर्स हमला करने से पहले केवल डिफ़ॉल्ट या मानक पोर्ट नंबरों को स्कैन करते हैं। MongoDB द्वारा उपयोग किए जाने वाले कुछ डिफ़ॉल्ट पोर्ट 27017, 27018, 27019, 2700X, आदि हैं।
mongod.conf में डिफ़ॉल्ट पोर्ट नंबर बदलना आसान है।
टिप 6: एक अच्छा बैकअप दृष्टिकोण रखें
हमेशा सुनिश्चित करें कि आपके पास डेटा की नवीनतम कॉपी है ताकि यह सुनिश्चित हो सके कि आपका ऑपरेशन लॉग (oplog) उस क्षण से पॉइंट-इन-टाइम (PIT) रिकवरी के लिए तैयार है जब कोई हमला हुआ था।
किसी भी प्रकार के हमले के लिए एक फूलप्रूफ डिजास्टर रिकवरी सेटअप के साथ तैयार रहें।
टिप 7: अपने डेटाबेस तक सार्वजनिक पहुंच अक्षम करें
अपने एप्लिकेशन की समीक्षा करें कि क्या इसे डेटाबेस तक किसी बाहरी खाते की पहुंच की आवश्यकता है। यदि ऐसा कोई खाता मौजूद है, तो उन्हें ऑथेंटिकेशन और एन्क्रिप्शन का उपयोग करने के लिए सेट करें।
आप mongod.conf में होस्ट इंटरनेट प्रोटोकॉल (IP) पते को बाइंड करके सार्वजनिक पहुंच को भी अक्षम कर सकते हैं।
टिप 8: ऑपरेटिंग सिस्टम स्तर पर फ़ायरवॉल नियम सक्षम करें और VPN का उपयोग करें
फ़ायरवॉल नेटवर्क पर सिस्टम तक पहुंच को फ़िल्टर और कंट्रोल करने के लिए सुरक्षा की एक अतिरिक्त परत प्रदान करते हैं। MongoDB सर्वर पर, होस्ट पर फ़ायरवॉल नियम सक्षम करें या क्लाउड होस्टिंग में सुरक्षा समूह।
हमेशा सुनिश्चित करें कि आप केवल विश्वसनीय स्रोतों को mongod इंस्टेंस तक पहुंच देते हैं। सर्वर के लिए IP पते या पोर्ट रेंज को बाधित करके क्लाउड होस्टिंग को अधिक सुरक्षित बनाएं।
VPN का उपयोग विभिन्न स्तरों के एन्क्रिप्शन, प्रमाणीकरण के कई स्तरों, और सभी क्लाइंट्स के लिए ऑथोराइज़ेशन के साथ अपने डेटाबेस सिस्टम तक प्रमाणित पहुंच प्रदान करने के लिए करें।
टिप 9: सुरक्षा मुद्दों के लिए डेटाबेस सिस्टम का नियमित रूप से ऑडिट करें
डेटाबेस या होस्ट सिस्टम का नियमित रूप से ऑडिट करें ताकि यह देखा जा सके कि क्या कोई उल्लंघन है या किसी उपयोगकर्ता खाते ने उनकी भूमिकाओं और विशेषाधिकारों के आधार पर आवश्यक विशेषाधिकारों के अलावा उच्च विशेषाधिकार दिए हैं।
यदि परीक्षण उद्देश्यों के लिए उच्च विशेषाधिकार दिए गए थे, तो सिस्टम को फिर से सुरक्षित करने के लिए उन्हें रद्द करना सुनिश्चित करें।
टिप 10: बाहर से डेटाबेस एक्सेस को मान्य और परीक्षण करें
आप या आपकी टीम को पैठ परीक्षण या SQL इंजेक्शन का उपयोग करके डेटाबेस सिस्टम का सुरक्षा मुद्दों के लिए परीक्षण करना चाहिए ताकि यह देखा जा सके कि क्या वे सिस्टम का शोषण करते हैं। सुनिश्चित करें कि बाहरी दुनिया से आपके डेटाबेस के लिए कुछ भी उजागर नहीं है।
आप उस परीक्षण के लिए कई टूल का उपयोग कर सकते हैं, जैसे nmap, telnet, आदि।
निष्कर्ष
यह ब्लॉग आपको दैनिक MongoDB प्रशासन के लिए कुछ बुनियादी सुरक्षा अभ्यासों को कॉन्फ़िगर करने में मदद करता है। अपने MongoDB डेटाबेस एप्लिकेशन को सुरक्षित करने के लिए इन टिप्स और वर्णित टूल का उपयोग करें।
आप MongoDB मॉनिटरिंग सर्विस (MMS) का उपयोग अधिकांश सुरक्षा-संबंधी सुविधाओं को मॉनिटर और कॉन्फ़िगर करने के लिए भी कर सकते हैं, बजाय mongo शेल का उपयोग करने के।
कोई भी टिप्पणी करने या प्रश्न पूछने के लिए फीडबैक टैब का उपयोग करें।
हमारे प्रमाणित डेटाबेस एडमिनिस्ट्रेटर और डेटाबेस सेवाओं के बारे में और जानें।