संपादित 1 एक महीना पहले द्वारा ExtremeHow संपादकीय टीम
सुरक्षाविंडोमोंगोडीबीडेटाबेसप्रमाणीकरणएन्क्रिप्शनविकासकॉन्फ़िगरेशनडेटा सुरक्षाएक्सेस नियंत्रण
अनुवाद अपडेट किया गया 1 एक महीना पहले
MongoDB एक लोकप्रिय NoSQL डेटाबेस है, जो अपनी स्केलेबिलिटी और फ्लेक्सिबिलिटी के लिए जाना जाता है। हालांकि, अन्य किसी भी डेटाबेस की तरह, अनधिकृत पहुंच और संभावित डाटा के खतरों को रोकने के लिए MongoDB को सही तरीके से सुरक्षित करना आवश्यक है। विशेष रूप से जब Windows सिस्टम पर MongoDB को डिप्लॉय किया जाता है, तो ऑपरेटिंग सिस्टम के अपने सुरक्षा विचार होते हैं। इस लेख में, हम उन महत्वपूर्ण कदमों का अन्वेषण करेंगे जो आपको Windows पर MongoDB को सुरक्षित करने के लिए उठाने चाहिए।
सुरक्षा सुविधाओं को सेट अप करने से पहले, यह सुनिश्चित करें कि आपने MongoDB का नवीनतम संस्करण इंस्टॉल किया है। नए संस्करणों में अक्सर महत्वपूर्ण सुरक्षा अपडेट और फिक्स होते हैं। आप MongoDB कम्युनिटी सर्वर वेबपेज से नवीनतम संस्करण डाउनलोड कर सकते हैं।
डिफ़ॉल्ट रूप से, MongoDB प्रमाणीकरण को लागू नहीं करता है, जिससे सर्वर से जुड़ने वाले किसी भी व्यक्ति को डेटा तक पहुंचने और उसे संशोधित करने की अनुमति मिलती है। अपने MongoDB इंस्टेंस को सुरक्षित करने के लिए, प्रमाणीकरण को सक्षम करना अनिवार्य है। प्रमाणीकरण सेट अप करने के लिए इन चरणों का पालन करें:
पहले, आपको एक एडमिन यूजर को एक यूजरनाम और पासवर्ड के साथ बनाना होगा। इन चरणों का पालन करें:
> mongo > use admin > db.createUser({user: "adminUser", pwd: "securePassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
यह कमांड adminUser
नाम के साथ एक एडमिनिस्ट्रेटर यूजर बनाता है और पासवर्ड securePassword
देता है। यूजर को userAdminAnyDatabase
भूमिका दि जाती है, जो उन्हें किसी भी डेटाबेस पर यूजर्स को प्रबंधित करने की अनुमति देती है।
MongoDB कॉन्फ़िगरेशन फ़ाइल को संशोधित करें, जो आमतौर पर Windows इंस्टॉलेशनों के लिए C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg
में स्थित होती है। security
अनुभाग के तहत निम्न लाइन जोड़ें:
security: authorization: "enabled"
कॉन्फ़िगरेशन फ़ाइल को अपडेट करने के बाद, परिवर्तन लागू करने के लिए MongoDB सेवा को पुनरारंभ करें:
> net stop MongoDB > net start MongoDB
डिफ़ॉल्ट रूप से, MongoDB सभी IP पतों से कनेक्शनों के लिए सुनता है। यदि आपका सर्वर इंटरनेट के लिए खुला है, तो यह एक सुरक्षा जोखिम हो सकता है। एक्सेस को सीमित करने और सुरक्षा में सुधार करने के लिए, MongoDB को एक विशिष्ट नेटवर्क इंटरफ़ेस से बाइंड करें:
अपने mongod.cfg
में, net
अनुभाग में जाकर bindIp
पैरामीटर को संशोधित करें:
net: bindIp: 127.0.0.1
उपरोक्त सेटिंग्स यह सुनिश्चित करती हैं कि MongoDB केवल एक ही मशीन से कनेक्शनों को स्वीकार करता है। यदि रिमोट एक्सेस की आवश्यकता हो, तो अपनी नेटवर्क आवश्यकताओं के आधार पर IP पतों को समायोजित करें।
आपके डेटाबेस की सुरक्षा के लिए एक फ़ायरवॉल एक आवश्यक घटक है। यह सुनिश्चित करें कि आपने MongoDB पर आने वाले कनेक्शनों को सीमित करने के लिए अपने Windows मशीन पर एक फ़ायरवॉल कॉन्फ़िगर किया हुआ है। आप Windows फ़ायरवॉल को विस्तारित सुरक्षा के साथ उपयोग करके इनबाउंड नियम बना सकते हैं जो केवल आपके द्वारा निर्दिष्ट पोर्ट पर ट्रैफ़िक की अनुमति देते हैं (डिफ़ॉल्ट: MongoDB के लिए 27017)।
ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) और सिक्योर सॉकेट्स लेयर (SSL) MongoDB क्लाइंट और सर्वर के बीच एन्क्रिप्टेड संचार चैनल प्रदान करते हैं। इन्हें सक्षम करने के लिए, आपको एक मान्य SSL प्रमाणपत्र की आवश्यकता होगी। यहाँ हैकी MongoDB को TLS/SSL के लिए कैसे कॉन्फ़िगर किया जाए उसका सरल दृश्य:
एक प्रमाणपत्र प्राधिकरण (CA) का उपयोग करके एक SSL प्रमाणपत्र उत्पन्न करें या विकास के दौरान एक स्व-हस्ताक्षरित प्रमाणपत्र बनाएं। उत्पादन के लिए, एक विश्वसनीय CA का उपयोग करना सबसे अच्छा है।
अपने mongod.cfg
, में, नेट अनुभाग के तहत जोड़ें:
net: tls: mode: "requireTLS" certificateKeyFile: "C:\\path\\to\\mongodb-cert.pem"
C:\\path\\to\\mongodb-cert.pem
को अपने SSL प्रमाणपत्र फ़ाइल के पथ से बदलें।
संकीर्णता या हमले की स्थिति में डेटा हानि से बचने के लिए अपने MongoDB डेटाबेस का नियमित रूप से बैकअप लेना महत्वपूर्ण है। MongoDB mongodump
नामक यूटिलिटी प्रदान करता है। इन बैकअप को सुरक्षित रूप से संग्रहीत करें और mongorestore
का उपयोग करके रिस्टोर प्रक्रिया का नियमित रूप से परीक्षण करें।
निगरानी और ऑडिट किसी भी संभावित सुरक्षा घटनाओं की पहचान के लिए महत्वपूर्ण है। पता करें कि आपके डेटाबेस तक कौन पहुंच रहा है और वे कौन से ऑपरेशन कर रहे हैं, इसके लिए MongoDB की अंतर्निहित ऑडिटिंग और लॉगिंग क्षमताओं का उपयोग करें:
mongod.cfg
फ़ाइल को संशोधित करके यह सुनिश्चित करें कि ऑडिटिंग कॉन्फ़िगर की गई है:
auditLog: destination: file path: "C:\\path\\to\\audit.log" format: BSON
उन्नत निगरानी और अलर्टिंग के लिए MongoDB एटलस का उपयोग करने पर विचार करें। आप ऑपरेटिंग सिस्टम पर उपलब्ध लॉग्स और प्रदर्शन काउंटरों का उपयोग करके लोकल निगरानी को भी कॉन्फ़िगर कर सकते हैं।
अपने उपयोगकर्ताओं को न्यूनतम पहुंच अधिकार देकर न्यूनतम विशेषाधिकार सिद्धांत को लागू करें। MongoDB के भूमिका-आधारित पहुंच नियंत्रण (RBAC) प्रणाली का उपयोग करके भूमिकाओं और पहुंच अनुमतियों को प्रतिबंधित करें:
> use admin > db.createUser({user: "readOnlyUser", pwd: "safePassword", roles: [ { role: "read", db: "yourDatabase" } ]})
यह कमांड yourDatabase
के लिए रीड-ओनली एक्सेस के साथ एक यूजर बनाता है।
अंततः, नए खतरों से सुरक्षित रहने के लिए, हमेशा अपने MongoDB इंस्टेंस को अद्यतन रखें। MongoDB, Inc. की सुरक्षा अपडेट और घोषणाओं पर ध्यान बनाएं।
Windows सिस्टम पर MongoDB को सुरक्षित करना कई परतों में शामिल है, जिसमें उचित प्रमाणीकरण और नेटवर्क सेटिंग्स, एन्क्रिप्शन का उपयोग, निगरानी, और एक्सेस नियंत्रण के लिए सर्वश्रेष्ठ प्रथाओं का कार्यान्वयन शामिल है। इस गाइड में बताए गए चरणों का पालन करके, आप अपने MongoDB डेटाबेस की सुरक्षा में महत्वपूर्ण रूप से सुधार कर सकते हैं और अपने डेटा को अनधिकृत एक्सेस और खतरों से सुरक्षित कर सकते हैं।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं